views:

165

answers:

8
+1  Q: 

MVC vs ASP Classic

I've been given the task of designing the architecture of a new web based trading system.

I see Scott Gu is hot on the task of pushing out MVC releases, but the more i look at them the less difference I see with Classic ASP.

Due to the availability of classic ASP programmers, I'm contemplating using this instead of paying top dollar to programmers which will then need to upskill. Business users just want html output, and they both do that (Classic ASP doesn't have the Script Manager payload, and JQuery integrates with classic.)

Anyone else faced this decision, and any thoughts to pros and cons? Thanks

+2  A: 

Classic doesn't provide the same level of separation between business logic and presentation markup, resulting in uglier and less maintainable sites. If you are creating a very simple site, then classic may be justifiable, due to not having to include the overhead of MVC (which is fairly small anyway), but small sites have a habit of mutating into larger sites. Any developer who is half decent will get the hang of MVC in a very short time and, to be frank, they ought to be keeping up with new trends anyway.

belugabob
"Classic doesn't provide the same level of separation between business logic and presentation markup" ... Whilst I wouldn't go back to writing classic asp unless I really had to, that statement is simply not true. Code can be separated out to give you conceptual separation or COM classes can be written in Classic VB, C++ or even a .net language to contain business logic.
Rob
True, although there is less 'support' for separation, in the Classic world - those COM objects still have to be built and populated, and how this is done is no business of an ASP page. I suppose that a good coder will make the best of a bad environment, and a bad coder will make the worst of a good one - but what we need is good coders with good environments. ;-)
belugabob
+2  A: 

Assuming you mean "classic ASP" from 10 years ago....

My concern is with your comment regarding availability of resources. I think you'll find that newer developers coming out of school actually do not know classic ASP as well as they would know ASP.NET WebForms or even MVC. Schools are focusing on dotNet, so ASP.NET and MVC.

I think you'll find ASP.NET still has the most developers. MVC is starting to catch up, but still not totally caught up and I'm not sure if it's mainstream in schools yet.

There are certainly design decisions behind which technology to use as well, such as maintainability. Though really, all of these discussed technologies have a long history of being used in production quality systems for years. So they are all valid choices.

Zippit
A: 

I thing for you Asp .Net 4 is a better option. Unless the project is considerably big and is a public facing site I don't see a need for Asp .Net MVC. Building an Asp .Net MVC team is a tough task in comparison to Asp .Net 4.

Shalvin
+5  A: 

Honestly I'd say learn more about ASP.NET MVC if you see Classic ASP and MVC as similar beasts. I suppose both have these guys <% %>... I do not miss VB6, MTS and regsvr32.

If business is only concerned with html output, many other platforms also meet this requirement. Why not PHP, cgi, Rails or Django?

Compared with modern technologies, Classic ASP is asking for pain.

Andy Gaskell
+1 consider other modern alternatives.
tarn
+1  A: 

Some things to consider on MVC vs ASP Classic:

Visual Studio - This was one of the greatest reasons to leave classic ASP behind. I give classic asp maintenance projects to people I hate :) Intellisense really speeds up coding.

.NET - CLR Compiled code is going to run faster.

Community Support - This site has few classic-asp tagged questions. Most people have moved on and if you run into issues they may be difficult to resolve.

Seperation of Concerns - It's possible to separate classic asp business logic out. But it will be ugly. Unit Testing will also be painful. .NET has many patterns out there to assist you with modern day programming techniques.

However... If:

  • you're worried about MVC development cost with the developers available to you
  • you've ruled out asp.net webforms because you dont have control of html

Then I might start considering other alternatives before classic asp. Ruby, Php, Java, Django or maybe Silverlight if you want to stay MS.

itchi
A: 

Look at the tooling support - ASP.net MVC is all set to go with VS 2010, but ASP classic support is less than stellar. You should also look at time to write the code - if you have a programmer who is up to speed, and you need some simple data entry pages, you can throw together an entity framework DAL, and some simple scaffolded pages in less than a day...

Now, I know that there are few systems that are that simple, but I think that it's very easy to work from this starting point, including simplicity of including AJAX callbacks to controller actions, returning JSON etc.

(I've also yet to come across a large 'classic' ASP site that hasn't turned to spaghetti).

Paddy
A: 

I would go with .net mvc (over webforms and classic asp) particularly since you state that you are looking to build a trading system. This indicates that your site is going to be more than trivial content (read needs databases). This has a few implications:

  • Security is going to be important. .net in general has more in built security features. If you need to handle authentication and authorisation there are a lot of advantages to .net. It allows you to use any number of ORMs which provide a number of security benefits not to mention making interfacing with the database much simpler. Classic asp gives you very little assistance so this has added risks particularly in larger sites. When it comes down to it though it is still the developers job to make sure they build secure apps.
  • .net MVC makes it much easier to create a more modular design. There are a number of benefits but I think the key one is that MVC is very easy to unit test.
  • There is also the fact that .net is just a more up to date platform. It has better IDE support, debugging tools, profiling tools, testing tools etc.

It is also interesting that you state you can find classic asp programmers. Most people I know and work with try and avoid it like the plague, but I am in Australia :).

At the end of the day though you could use any of these technologies and still get a successful result, the key is to get good developer even if they don't have heaps of experience in .net mvc.

Dean Johnston
A: 

+1 to everyone for not turning this thread (yet!!) into a slanging match :-). as noted earlier, the main similarity if you don't examine the actual concepts is really just the <% %> tags. you should really set it up on your machine and run thro a few of the basic illustrative samples to satisfy yourself as to the similarities or otherwise once you get going.

like a few above, i came from the vb6/com backgound and in my 'classic' asp sites (mainly intranet in those days - 8-10yrs ago) i used com classes and a data layer. When asp.net (v1.0) arrived i was sceptical about the benefits and it was defiantely a year or so before i took the plunge into that. once my feet were wet in the webfroms world, i was overjoyed at being able to 'port' my conceptual understanding of classes and BLL/DAL layers over to c#'s framework. my pivotal moment was prolly the publication of marco bellasco's asp.net 2.0 book 'the Beerhouse'. this crystalised everything that i had been (poorly) aiming at in my projects. fast fwd 5 years and the same epiphany moment arrived with both steven sanderson's book as well as the obligatory 'nerd dinner' series. I was a complete convert to mvc (and had been using it after a fashion in php with joomla). here i was able to leverage all the good stuff i'd learned re BLL/DAL (only in this case, the DAL was now a repository layer and the BLL the model).

In a nutshell, it's a very personal decision. all i can say is that having been involved in all the aforementioned technologies in production environments, for me MVC really has been the most productive and conceptually, the simplest to grasp (maybe in part due to my 'path').

your own mileage (or kilometerage :) may of course vary - but in a nutshell, read the pros and cons but ultimately get down and dirty with it and share your guilty secrets with the community once youve uncovered the 'beauties' of mvc'ing ...

good luck

jim

jim