NEWBIE: Development and maintenance time for Windows Forms vs ASP.NET?

Dear Experts,

My company is trying to decide between Windows Forms and ASP.NET (browser-based).  I'm looking for (a lot of) general advice...

In particular, could anyone compare the development and maintenance times for the same UI written in Windows Forms vs. ASP.NET?  

I know "it depends!", but if we made the following assumptions:

  We are equally skilled at both technologies (We're not, but for the sake of comparison, let's pretend.)
  We would be working in Visual Studio 2005 in either case.
  We would be using C# exclusively if Windows Forms.
  The UI is fairly complex, with a few dozen interconnected screens and connections to an MS SQL db.
  We're ignoring deployment issues for now (That's a different question...)
  We're just looking for ballpark advice, like: "This is usually about twice as fast as that...".

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

BrianMc1958Author Commented:
Actually, if anyone would like to say A LOT, that would be even more appreciated...
As a general advice I would look at these issues first

   -  You will be reaching any user anywhere in the world that has a browser
   -  Updates to UI are transparent to the user, deploy to IIS and user sees immediately

   -  Nowhere near as good as WinForms when it comes to complex UI
   -  I don't personally like fiddling with HTML and Server Controls  (personal opinion, maybe biased)

   -  Excellent for complex UI

   -  Updates to UI need to be installed on each user's PC (You can make automatic updates but that is extra effort)

I would think of who the application is for.  A small group of people?  People from several countries, or world wide.  The wider the audience the more ASP.NET is suitable.  Winforms are richer and probably faster than Webforms but you cannot deploy worldwide without much effort

Development and maintenance both depend on the knowledge of developers.  Yes you did say that but that is all it comes to
Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

In general, if done 'correctly', the development time for BOTH UI approaches should be about the same - notice I said "if done correctly' - by that I mean that the development approach should be n-tier.

The Back-end Data Accessa layer talks to the DataBase and the Business Layer - and thus does not care at all how the User will be involved (web-based or windows based is 100% IRRELEVANT)

The Business Layer talks to the DataAccess layer and the User Interface layer, and again, the specific user interface layer implementation is 100% IRRELEVANT.

It is only the User Interface layer (which would be a set of Windows Forms OR a set of web-pages) talks to the Business layer (to get waht ever is to be displayed to the user, and to get what ever that user wants to have processed), and to the User.  it is only at this point the the Application cares how to interact with the user, and that should consist of show the user something, or get someting from the user - there should be almost NO 'processing' of the data in the User Interface - and to the User, HOW the processing, and Data storage is accomplished are again 100% IRRELEVANT - the user interface simply requires that when something is requested, it can be gotten, and when something is to be processed and stored, it can be - how that happens is IRRELEVANT.

The vast majority of the development effort on the project will be in the Business Logic Layer, and the Data Access Layer, and those will be equally applicable to a web-based version of the application or a windows based version.

In fact, I worked on such a development effort, with VB.NET, about a year ago, and the development of the Two versions of the User interface (a web-based interface and a Windows based interface), both of which were essentially IDENTICAL in functionality, was very easy.  The Interface development portion of the entire project (for both interface versions, in total) amounted to about 15% of the total developement time for the ENTIRE PROJECT. 85% of the time was spent on the 'back-end' work.

BrianMc1958Author Commented:
To gbzhhu:  The application  is for a small group of people who share an intranet (basically, office workers.)  

To AW:  I do the "back-end" work myself.  I agree that's about 85%!  I realized after I had posted that I wasn't very clear about this:  My question applies ONLY to the UI.
In our experience, for user interfaces that have much complexity or that could benefit from "real time operations" like drag and drop or updates to some sections of the user interface based on user selections else where, the Windows Forms in terms of development time, user acceptance, performance issues, etc have been much better.

We tend to use Web forms for generally more simple needs or as has been mentioned earlier


   -  You will be reaching any user anywhere in the world that has a browser
   -  Updates to UI are transparent to the user, deploy to IIS and user sees immediately

I agree with topdog770

BrianMc1958 from your last comment I would personally go for Winforms.  There is no reason whatsoever to do it in WebForms.  Your app can be distributed easily to these small groups of people, you will take advantage of Winforms rich UI.


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
I agree with Arthur_Wood.

If the base project is written in a n-tier model - and it should be - then there will be very little difference in development time for the user interface (i.e. web form vs win form).

We go with Web Forms, because we need to reach a large audience and now you can do most things with Web applications.

topdog770 said "user interfaces that have much complexity or that could benefit from "real time operations" like drag and drop or updates to some sections of the user interface based on user selections"

But this is possible in web applications.  We do this now in our web applications.

For an example of how similar web applications can be to win forms look at this:

It is a web based calendaring system that mimics Outlook Calendar. Including drag and drop of events, etc.

This is only one of many examples that show that web forms and win forms are becoming able to do very similar user interfaces.

So instead you need to decide on factors like:
Do I want the users of my application to have to install software - or do I want to use existing browsers?
If I use browsers do I want to support all browsers or a subset?
Will my program need updates?

Also if you don't have web expereicne then it may be slower to do complex things in web than the built in controls of a win form.

So the web is a better choice for reaching larger numbers of people, or if you expect updates or changes and don't want to have to get them to each machine.

Winforms are better for small environments where you can require installs and push updates with new installs.

But either way if written in an N-tier model - it should be able to change from one method to another without haveing to change anything except write a different UI layer.
Also you said "We are equally skilled at both technologies (We're not, but for the sake of comparison, let's pretend.)"

I would say that getting a fancy web interface is more complex and you would have to be more skilled than to get the same interface with winforms.  But "assuming you are equally skilled" then I would go with web forms since you can reach a wider audience and push updates easier
BrianMc1958Author Commented:
This is all very, very helpful.  I would like to keep this question open a little while longer in case anyone else has more to say.  It's very important to us...

Thanks again,
For easy maintenace: Go WEB!

for develpment, it depends on your skills.

Alawys think about future of your software.. webforms are ALWAYS more stable.. (espically when you learn about the new technologies in WindowsForms, that will force you to at least : re-desing , re-install the software!

BrianMc1958Author Commented:
Thanks very much, folks.  I'll be passing this along to our people.  Wish us luck!
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.