views:

915

answers:

4

Just trying to get a more thorough understanding of the major differences between windows(desktop) application and web application development. All my knowledge and experience has been as a web application developer, with c# and the .net framework. I am interested to know if it's common for developers to be skilled in both areas, i.e. WPF(desktop) development.

Does windows application development follow different methodologies, testing methodologies etc? When I think of things like installing a windows app, and users who install applications to use, also thinking about how the software is updated, it seems that the processes involved in this type of development are alot more structured and have "less room for error".

Do you think that someone who has had no WPF experience, or windows app experience, but has a .net background, have enough knowledge to confidently design and develop a WPF application (as a team lead), or that if a project of that nature comes along, then someone who has that experience in delivering a WPF app shoudl be sought after?

+1  A: 

There are both differencies and similarities on many different levels, but one difference that I find to be of great importance is that of the request-based nature of web application versus the more stateful nature of windows applications. I have seen a few developers (mainly those moving in the opposite direction though) having a hard time to get their head around this.

Fredrik Mörk
+1  A: 

I think that with any platform it's better to have a lead developer who has at least some experience with it. WPF is a relatively new platform, so a WPF-experienced lead developer would be harder to find.

As a web developer, you might actually do better with WPF than someone with WinForms experience, since you wouldn't be struggling with your preconceptions of how to best build a Windows application. A few years ago I took classes in Portuguese, and I found that I had a much easier time learning the language than the native Spanish speakers did. Because the two languages are so similar, they kept slipping back into Spanish.

MusiGenesis
A: 

I don't have any WPF experience, but I'm good with WinForms and I've done some web apps as well.

The biggest difference between the two, in my experience, is knowing how a Form's lifecycle works, and being able to distinguish identical terminology with different meanings (i.e., the Form Unload event). I found this really confusing coming from a WinForms background.

Jon Seigel
+1  A: 

I've worked in both and in terms of richness and development time WinForms blows Web out of the water, especially since technologies like ClickOnce greatly reduce deployment headaches. With winforms you only have to code against the platform and not take into consideration a huge number of other factors.

The whole request/response is usually, IMO cumbersome and sometimes unreliable, not to mention the growing number of browsers to support, varying standards to development and the learning curve of the page lifecycle, oh and of course the increasing trend of advertising splashed all over the place.

However, what web apps have brought us is beyond what WinForms could hope to achieve, so although there's a learning curve and increased development time there are obvious rewards to reap.

We (and I imagine most organistions) tend to use windows applications for administration purposes where a rich user interface is desirable in the minimal amount of time, after all, why would you want to waste a web servers resources when there's probably 99% available CPU on each users PC...?

Mantorok