tags:

views:

30

answers:

2

Hello,

I'm fairly new to the .NET ASP and MVC. My company has developed an application using ASP2. They are considering upgrades:

I'd like to know what the big advantages would be in moving to ASP .NET 4 and also would there be even greater advantages in using MVC4.

Just some background. The application is internal and will not face the outside world. It's not a big application with 3-4 users / time at the most. Most of the application is made up of screens used to edit detail records and some reporting screens.

Thanks in advance

Richard

+1  A: 

ASP.NET WebForms on the .NET Framework v3.5 or higher gives you a set of new features to quickly create CRUD functionality. One example would be "dynamic data", see http://www.asp.net/dynamicdata. Also, as you might know, there is a shipload of integrated data controls like DataGrids, EditGrids and others available to use.

Generally, ASP.NET WebForms provides easy-to-use and rich out-of-the-box controls. Using those, you can quickly develop working websites without caring much about the exact HTML markup, speaking URLS (SEO) and so on. This might be totally okay for a small-scale intranet application though.

In MVC you have total control about the HTML output but in exchange you will have to build complex controls manually, including JavaScript functionality and more. MVC applications are often cleaner and easier to maintain on the long run since the framework offers a unit-testable and extensible architecture that forces a separation of concerns.

From what you said about your project, I think that you'll be fine with ASP.NET WebForms, especially since you seem to have experience in WebForms development. MVC definitely takes some time to learn.

The current version of MVC is 2 by the way. Both ASP.NET WebForms (commonly and wrongly refered to as "ASP.NET") and ASP.NET MVC are build on top of the ASP.NET Framework, whose current version is 4.0 :)

SimonW
A: 

What reason do you have to change this application from ASP one to ASP.NET? If you think about change why does your application should be a web one at all if it is internal application, WINFORMS maybe?

MVC is a way to create applications not "better framework" that most of ppl think. Everyone talk about MVC just because it is fancy new keyword ( already not) in google and new programmers think it is something special and worth using. The one and only thing you can achieve with MVC on your Intranet site is unit-testability which probably is not even needed for your small application which basically edits and shows users same as for 99% of web applications. Noone ever gave proper why you should use MVC...

Again there is no reason to change already existing application unless you have new requirement which you cannot make in ASP whatever version you have.

eugeneK
MVC is not ONLY about unit tests. As mentioned in my post, a solid MVC application generally offers better maintainability and extensibility than a common ASP.NET application. You are right saying that there is no real need to change except for specific requirements though.
SimonW
Nopes, maintainability and extensibility in MVC.NET are almost identical to what BLL and DAL offered years ago in regular ASP.NET.
eugeneK
Sorry. A few corrections to my original post. I should have said MVC3 and not MVC4 which doesn't exist yet. The reason we're looking into possibly making a change is that in the future the application will likely grow as more changes and requirements come up. With MVC will it not make it easier for us to develop new web pages. I see there are a number of advantages of MVC such as client side javascript validation.
RichardAlan
You can validate client side with regular ASP.NET. What your intranet application does? I don't see any point of using MVC unless you have huge amount of code ( business logic ) that you must have in sort of separation from the rest of the project and ability to unit test this code without actually running it each time. ( Saves time and usually unit tests give better results than regular online/offline testing of web application ).
eugeneK