I have read just about every question/answers about webforms vs MVC. But none has addressed what I am about to ask.
We are a small development team (3 ppl) and we have a legacy application similar to Crystal Reports.
We need to convert this VB6 app to a web based app. Reason? It was written in VB6 and support for VB6 will be phased out in Windows 8. This application is / will be similar to Crystal Reports / Google Docs where thousands of users will use the web app to generate complex reports from a large database. Charts and graphs will be generated dynamically based on the data queried. All reports can then be exported to PDF and other supported document file types. Possible feature is creating Word documents with this data or at least annotating the PDF reports. Document/Content Management back end also required for storage and searching.
OK – so clearly its a rather complicated web application with loads of database access/queries. The front end will also need to be rather spick (although gridviews not compulsory).
Constraints:
1. Time to market is relatively short (6months to 1 year)
-
Technology should last or be available for the next 10-20 years – We can’t work on this application forever, having to constantly updating and re-writing it every time new technology supersedes older technology. HTML will last beyond this time, but will ASP.NET?
-
User end performance needs to be relatively quick. it doesn’t have to be blistering quick; but it shouldn’t lag so much (more than 2 seconds for response) that users begin to complain. (ie ViewState not a prob if it doesn’t exceed 100Kb).
Please answer my questions:
-
So my question to you is: do we go with Webforms or MVC?
-
MVC sounds attractive but MVC is STATELESS. Do you think this application will need to keep state or can I do without it? Or is it possible to implement state in MVC (confused)?
-
Some users are in govt departments and have have laptops that a clamped down for security reasons (by their IT Admin) – so Javascript, for a significant number of users will be TURNED OFF. This means JQuery may not be possible technology. Is there some way to accommodate for Javascript and non Javascript browsers?
Thanks in advance.
Sam
Use Web Forms.
Here’s why:
1 – Faster development time (rapid application development) – as stated in your time constraint
2 – For complex charts/reports/grids, you’d have to roll your own with ASP.NET MVC (or use a helper someone else has created). But with Web Forms you have a wealth of server controls (and products like Telerik).
So do answer your questions:
You’ve mentioned “speed needs to be quick”. Well if ViewState is a problem, then turn it off! It annoys me people who say “I hate ViewState, it makes pages slow”, when you can simply turn it off at the control or page level.
BTW – i am by no means a Web Forms advocate – i actually prefer ASP.NET MVC. But from what i’ve read in your question, i would go with Web Forms.