Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which Windows GUI frameworks are currently worth learning? [closed]

I'm planning to write a Windows app to help myself with some exploratory testing tasks (note taking, data generation, defect logging) and I've got stuck at the early stage of choosing a framework/language. My sole experience is with web development and from what I can see, WinForms, WPF, Silverlight, Swing etc are all simultaneously obsolete and thriving depending on who you ask.

While my main aim is to create the app, obviously I'd like to learn something useful while doing so rather than picking up skills with something that's never going to be seen on a project at work. Which Java or C# frameworks would people recommend learning?

like image 397
Dave Avatar asked Mar 17 '12 17:03

Dave


People also ask

What is the best GUI for Windows?

GitKraken is one of the best-known Git GUI tools for Windows, Linux, and Mac.

What is a cross platform GUI?

A cross-platform GUI is a great tool for designing apps and software that can run seamlessly on: Android, iOS, macOS, Windows, and Linux.

What GUI library does Windows use?

The Windows UI Library (WinUI) is a native user experience (UX) framework for both Windows desktop and UWP applications. By incorporating the Fluent Design System into all experiences, controls, and styles, WinUI provides consistent, intuitive, and accessible experiences using the latest user interface (UI) patterns.

What GUI framework does Visual Studio use?

Visual Studio 2010, itself, uses Windows Presentation Foundation for it's user interface. It can be used to create applications using any GUI framework, however, and comes with template projects for WPF, Windows Forms, and MFC (C++) for GUIs.


2 Answers

Note: consider when this answer was posted (2012). Since then, things have changed a bit, for example Silverlight has been deprecated.


Native Applications

For employment: Well, nowadays most companies (at least most companies from Oman and the UAE, where I live) are slowly migrating to the cloud. However there are still some opportunities for native app development. The most demanding framework nowadays, is, ( no.. not WPF ), it's Windows Forms!

Why plain old Windows Forms instead of the awesome WPF? One reason, legacy apps. Nowadays most companies only start small scale GUI Application projects, mainly Business applications. For that, WPF will be very expensive since they already have a work-force experienced in Windows Forms, and a lot of legacy code, however for WPF they will have to create a new code-base, and that's pretty risky. So the best thing to keep you employed is Windows Forms.

For new projects: However, if by 'worth learning', you mean, new, ambitious and glamorous. Then WPF may be the best choice for you. It depends on what your requirements are, really.

The Cloud

Now, for the cloud. Java FX and Silverlight are both currently head to head. However Java FX may have an edge since it supports a greater number of platforms. But then again, Silverlight has all the power and resources of Microsoft behind it, and it's ideal for Windows Phone development.

Comparison

For a comparison, here's what you get by each toolkit:

Windows Presentation Foundation:

  • The power and resources of Microsoft
  • Ideal for creating new Desktop Applications
  • Eye candy
  • Awesome API
  • XAML, best way to separate design from logic
  • Create Apps for the Cloud (but they only work on Windows with .NET though)
  • Windows Phone can run a subset of WPF

Windows Forms:

  • Used to possess the power and resources of Microsoft, now WPF has that
  • Ideal for maintaining legacy applications
  • A well-trained workforce, if you're an entrepreneur
  • Pretty mature API
  • Supports more platforms than WPF (through Mono)

Java FX:

  • Create Apps for the Cloud
  • Backed by Oracle
  • Pretty nice API
  • Cross-platform, runs on most PCs, smart phones are a problem.

Silverlight:

  • Create Apps for the Cloud
  • Backed by Microsoft
  • Pretty awesome API
  • XAML
  • Cross-platform, runs on Mac and PC, runs on Windows Phone.

GTK#:

  • Cross-platform, runs on most PCs, runs on no smart phone.
  • Backed by the Open-Source world
  • Endorsed by Mono
  • Ideal for creating Apps for Gnome.

Swing:

  • Cross-platforms, runs on most PCs, smart phones are a problem.
  • Pretty mature
  • Ideal for creating 2D games, using Java2D

Conclusion

As you say:

While my main aim is to create the app, obviously I'd like to learn something useful while doing so rather than picking up skills with something that's never going to be seen on a project at work.

Well, the frameworks you are most likely to see at work (if you don't for mainstream companies like Microsoft, Oracle, Google etc. ) are Windows Forms and WPF. At least that's what most companies use here. So those are what I recommend. JavaFX and Silverlight also look like they have potential and may be used in the near future.

like image 136
ApprenticeHacker Avatar answered Oct 13 '22 01:10

ApprenticeHacker


WPF. Best support for Windows. BTW, it's not obsolete.

like image 21
alex.b Avatar answered Oct 12 '22 23:10

alex.b