What user interface technology to use?

OK .. Sorry to ask the frequently asked question again, but I AM CONFERENCE!

My requirements first.

  • Development / deployment in Windows XP / 7.
  • Easy to use and visually appealing to a less experienced user.
  • Regular reporting of data by a nonprofit organization.
  • Having .NET as the preferred end, as I have already devoted a year to learning C # and the framework.

Now my problems.

  • There are so many conflicting opinions on the Internet. Some say that WinForms is dead, and WPF is the way to go.
  • I almost thought about WPF when I read this: http://www.riagenic.com/archives/363 . He says WPF is dead!
  • Should I just give up on desktop technology and website focus? Of course, it will be easier to deploy, but even with complete trust, I will not lose the advantages of the OS that have desktop technology?
+7
user-interface
source share
6 answers

WPF is here now, and it works now and is "dead" or not, it doesn’t disappear in a hurry (Visual Studio is built with WPF, as this expression forbids Microsoft from playing ScottGu anyway, my opinion is that you can count on that that it will be supported - for the developer - for now).

Build your application correctly and at the end the “WPF” bit will be essentially just a presentation layer on top of your application, so you will have the opportunity to adapt to changes in the future.

In terms of skills ... WPF may or may not be dead, but Silverlight definitely has some legs, and the skills are pretty much portable (and XAML is very similar).

+2
source share

Hmm, the tricky question is mainly because there are many options available:

  • Windows forms
  • WPF
  • Silverlight
  • HTML5 / Asp.Net

Contrary to whoever says “X is dead,” all 4 technologies are alive and well . Moreover, all these technologies are different from each other, there is no simple prescribed answer “Use X” that everyone can give, since each technology is suitable in different situations. The choice of which one to use depends entirely on the specific requirements that you have.

I will start by looking at your requirements one by one:

1. Development / deployment in Windows XP / 7.

Any / all of the above are suitable for use with Windows XP / 7.

2. Easy to use and visually appealing to a less experienced user.

It is completely possible to use any of the above methods to create easy-to-use and visually attractive interfaces, however, it is worth noting that these technologies are very different from each other - the HTML5 application will have a completely different appearance (not necessarily better or worse) than, for example , a Windows Forms application.

Without knowing more about the specific requirements, it is difficult to say more at this stage, however, of course, you should not exclude any options simply on the basis of convenience and appearance, since other factors (including general Polish) will have a much greater effect .

3. Regular reporting of data by a non-profit organization.

If you have any specific requirements for displaying reports, you can look in the report / chart libraries available for each of the above technologies.

Although there are various options for displaying reports + graphs in all 4, you may find that some options stand out.

4. Having .NET as the preferred end.

All of the above are .Net technologies.

Next, consider some other considerations you should consider (in order of priority)

Are you already familiar with one or more of these technologies?

If you already have experience in developing web applications (for example), then if other requirements do not exclude a web application, you may prefer a web solution.

Decide between the web interface and the Windows-based interface.

At this point, you must choose between a web interface and a Windows-based interface.

I would always opt for a Windows-based application (such as WPF or Windows Forms) if there is no good reason to approve a web application, since you are much less limited in terms of how the user interface should behave using Windows.

Look at the merits of each technology

At this point you should be in two races - WPF and Windows Forms and HTML5 vs. Silverlight. If you did not have previous experience, you will need to consider the individual merits of each technology (including deployment problems - WPF and Silverlight require at least 3.0 or higher for installation on the client) to make an informed decision - this may be a good time to look to some simple prototypes.

If the choice is between HTML5 and Silverlight, then I'm afraid I can’t help, since my experience with Silverlight is limited, however, if your choice is between WPF and Windows Forms, then my advice will be to choose Windows Forms, if only you have a requirement that would be difficult to achieve in Windows Forms, and easy in WPF.

WPF is fantastic in some things (like displaying custom grids or flashy animations), however, if you don't need any of these things, then Windows Forms is simpler, more mature, and (IMO) easier to understand, although a Windows Forms application may not have fancy graphics, at the end this polish determines whether the application is really attractive and easy to use, and in my experience Windows Forms applications are easier to polish.

+11
source share

I would recommend starting with WinForms,
Feels "closer" to the development of ASP.NET, console applications, etc .; at least in my experience (to some extent in your situation).

WinForms will (as far as I know) never fully realize.

<h / "> <B> Added:

To meet your specific requirements, the only one where WinForms and WPF can differ significantly.
"2. Easy to use and visually appealing to a less experienced user."

Based on a strict ASP.NET-C # background, I played with them to such an extent that I had some basic (and compiled ;-) applications that use either.

My grandmother would not dare to touch WPF, the main WinForms would like "not so tech savvy", first of all, for their acquaintance and for this "safe (predictable)".

Still added ...: Regarding the rejection of desktop technology for anything that works in the browser, it guarantees a thorough experience in both. In terms of ease of development and good, basically the ease of all aspects; If you do not have a specific situation that can only be solved by applications hosted in a browser, I would not recommend it.

My two cents: ASP.NET has simplified the transition to WinForms; then ASP.NET + WinForms + HTML / JS / etc made WPF quite accessible. I could be a bat here, but for me there is a certain way of knowing .NET.

+3
source share

ask yourself if you need something that cannot be provided in webapp?

from your description, it looks like you can do this without using winforms or wpf, and just ASP.NET with WebForms.

+1
source share

Of course, it will be easier to deploy, but even with complete trust, I will not lose the benefits of the OS that have desktop technology?

Given complete trust, you can even have .NET controls added to a web page and running inside a browser (IE only) that can access O / S (for example, through PInvoke).

+1
source share

Winforms is much more convenient than WPF, but not so visually attractive, so you need to decide what is more important to you, and not what others' opinions about the future of the user interface are. Web applications have their place and basically where you want all computers to have access to the same interface and saved data without having to install anything on client computers. This is good for enterprise intranets for applications such as time management and scheduling applications, etc. If you are looking for something that will be personalized for the computer that will run it, you definitely want the desktop application to use winforms or wpf. If it is for corporate computers, you may prefer winforms only for minimal resource use.

+1
source share

All Articles