views:

106

answers:

3

I am on a project helping to analyze the load a VB.Net WinForms application can take. This app has been in production for several years and has many many products on it. We plan to add more products but see the client footprint rapidly increasing. This is contributing the degradation of performance on the system overall.

There is duscussion that moving the UI intensive portions of the app to ASP.Net it will reduce the client footprint and solve many of our issues.

My question which of the following will scale better in terms of performance and load? - ASP.Net(VB) Web based architecture - VB.NEt WinForms 3-tier architecture

Links to articles on the topic are also appreciated.

Additional Info

Client - Apparent issue is large memory footprint due to data caching (High cph utilization)

Middle Tier - web services that house BLC & DALC assemblies (Low utilization here)

Database - Multiple database that that serve data to the DALC via sprocs (Medium Utilization)

Deployment is not an issue, we have a very well developent methodology there.

Thanks in advance, Freeon

+1  A: 

Winforms will scale better than ASP.NET B/c a. when you use an ASP.NET client - (a Browser) you pay a price, html rendering - another price, Viewstate - a huge price.

about view state - it is a chunk of data that might grow more and more as long as you operate even on the same page.

You need to use special techniques in order to make a asp.net webform efficient (AJAX).

You don't have this on winform.

Anyway - a specific answer should be aware of your product functionality, architecture and design, so this is gust a general advice.

Dani
A: 

With a web based application you can scale servers both up and out for both the web server itself and the database servers. I would think that a desktop based application would be somewhat limited in how much scaling can be done, along with the need to update each and every client installation when changes/bug fixes are done.

There are negatives about web based applications. They will live in a stateless enviroment, the UI maybe somewhat slower than a desktop installation. It is possible to create UI's that are very responsive using lots of Ajax/Javascript, but the development time for those RIA needs may be more than desktop development. Connectivity issues maybe be of a concern, along with user browsers and such.

Quick deployment though of updates is one huge benefit of a web based application. You only have to manage one installation rather than many.

Good luck with your project!

Chris
You can deal with deployment problems with the likes of ClickOnce and similarly deploying to web servers can be anything but trivial (especially if we're talking about a load balanced arrangement).
Murph
What exactly can cause web deployments to be an involved affair?
Chris
+1  A: 

Not enough data...

In terms of a user interface a desktop application should out perform (by various measures) a web based one in all but the most trivial of cases - that's not to say that you can't produce a very decent and capable web application but even then Outlook Web Access is not Outlook on the desktop.

To further illustrate the point, look at the effort going into Silverlight and Adobe AIR which are attempts to provide desktop level capabilites with web level deployment.

So the question becomes one of asking what is it in the current desktop application that is causing the problem i.e. is it a deployment issue, a performance issue or something else?

If its deployment issue then that will suggest one set of solutions, if its a performance issue then things get a lot more interesting.

Either way, there is insufficient data to do anything other than generalise enthusiastically

Murph