tjackenpacken / taskbar-groups

Lightweight utility for organizing the taskbar through groups
MIT License
2.51k stars 204 forks source link

[Request] Port the whole app to WPF #72

Open xXNickznXx opened 3 years ago

xXNickznXx commented 3 years ago

What do you think about a port to WPF? In my opinion its much better. A nice comparison is here: https://www.educba.com/winforms-vs-wpf/

Some specific advantages in the project:

I already started with it and ported most of the things (Currently working on porting the latest release & latest commits). And I also reworked the ui:

You can say no, then its just for me (I don't want to compete with your app) You can test it on my fork if you want: https://github.com/xXNicksonXx/taskbar-groups

PikeNote commented 3 years ago

Porting to WPF could be quite interesting and that had been what I was thinking from the start.

My only real concern is complications + process about porting it over. I think my thought currently about it is that I want to get most features in and polish the app just a bit more.

It could be a good thing to do to also permanently solve ( #64 ) and have everything under one window rather than multiple instances.

Once the changes have slowed and more or less stabilized with less bugs, I think porting to WPF would be an interesting idea.

I will definitely take a look at your fork and perhaps if you'd like you could help in future porting of the app if that idea ever goes through.

I had used a bit of WPF before but, I to be honest, need to study and read up on the structure a bit more as that had been unclear to me in the past.

This would be quite a good learning experience. Out of curiosity, how does fitting everything into one window work in WPF?

xXNickznXx commented 3 years ago

The functionality part is quite the same. The main difference is how the ui is built, there is no C# code generated, the whole ui is built in XAML.

This would be quite a good learning experience. Out of curiosity, how does fitting everything into one window work in WPF?

You just instantiate the UserControls like you do it in WinForms. I have created a logic that allows you to edit the same group only once, but you can open up as many new groups as you want.

64 is fixed with this logic.

PikeNote commented 3 years ago

Hmm, couldn't that also be done easily in the current WinForms aswell? Further reading into WPF, the learning curve does seem to be quite steep with XML. To take full advantage of WPF, things like data binding should be used and all that. Practices would have to be set from the beginning instead of using the code-behind technique of programming. I personally haven't build anything in anything like XML or HTML so it'll be a bit hard for me.

Honestly I think my stance here is to keep WinForms as that is working along with the fact that it most likely isn't advantageous to swap mid-development. There isn't too much benefit as I would foresee other than easier dynamic/responsive pages. I believe it would be the best to continue using WinForms and down the line somewhere in the future consider a port to WPF once time is freed up and updates have slowed. There isn't any major issues with WinForms currently so I don't see a urgent need to switch.

This is honestly up to @tjackenpacken in the end however. My main concern with porting now is having to learn + port along with patching bugs and halt feature updates for a while. It would be better personally to make the application feel more like a finished product first.

xXNickznXx commented 3 years ago

Yeah, I see your point, its definitely harder to learn. My first touch with it was some years ago and came back into it now. I also need to learn it more, especially the best practices. And I dont want to force @tjackenpacken, you or others to learn WPF.

I will still continue to port it over, even if its just for me, to improve my knowledge.

But the decision is definitely by @tjackenpacken.

PikeNote commented 3 years ago

One last thing about the topic, may I use your idea to implement that into the main client? I like the implementation of several editors built into the client and the experience seems very smooth than what we have now.

xXNickznXx commented 3 years ago

Sure you can! I have no copyright on it ;)

tjackenpacken commented 3 years ago

Hi!

The reason it's made in winforms is as you were on to, that i have not worked with WPF yet. I am however not sure about if WPF is the right way to go. I have been thinking about looking into UWP, since it would open up the TaskbarManager class and programmatically pin/prompt user to pin groups to the taskbar.

I am also thinking about transitioning to .NET 5.0, however is UWP not yet supported in 5.0, but will be in post 3.0 releases.

The downside with UWP is that it would lock the program to only work with Windows 10 users.

@xXNicksonXx are you familiar with UWP? Do you see any other factors to consider when chosing between WPF/UWP?

xXNickznXx commented 3 years ago

Hi @tjackenpacken

I never worked with UWP before. But as I can tell from reading some documentation and blogs about UWP, the UI is also written with xaml and the functionality behind with C#. So in that point its very similar, except that you use other libraries.

As you already said, the downside is that the app will only work on windows 10.

An advantage is, its easier to add the app to the microsoft store, as requested here

Because I've never worked with it before, I can't say what else is different.