Architecture for new ASP.NET web application


Architecture for new ASP.NET web application



I'm maintaining an application which currently is just a web service (built with WCF) and a database backend. The web service is built in layers with a linq-to-sql data access part with core functionality in an own assembly and on top of that the web service assembly which contains the WCF code. The core assembly also handles all business logic rules (very few actually).

The customer now wants a Web interface for the application instead of just accessing it through other applications which are consuming the web service. I'm quite lost on modern web application design, so I would like some advice on what architecture and frameworks to use for the web application. The web application will be using the same core assembly with business rules and the linq-to-sql data access layer as the web service.

Some concepts I've thought about are:

  • ASP.NET MVC (or MVC-2)
  • Webforms
  • AJAX controls - possibly leting the AJAX controls access the existing web service through JSON.

Are there any more concepts I should look into? Which one is the best for a fresh project?

The development tools are Visual Studio 2008 Team Edition for Developers targeting .NET 3.5. An upgrade to Visual Studio 2010 Premium (or maybe even Ultimate) is possible if it gives any benefits.


ITextSharp saying File not found when published to My server

1:

Browser prompting download of JSON response, ASP.NET MVC2
Definitely dig into ASP.NET MVC2.. Dependency injection inside ASP.NET MVC custom model binders and filters All of our projects are now being developed using ASP.NET MVC2. BadImageFormat Exception with Oracle 64 bit client running on Win 7 X64It's not just highly scalable. asp.net mvc2 - how to get model and model.something in the same way in controller?It's highly testable as well. Entity framework demo projectWhich leads to way better maintainable apps in the long term.. how to select a radio button by default - asp.net mvc strongly typed html helpers WebForms vs. Should We Instantiate Data Context & Repository In Controller?MVC2 points - (speaking out of experience):. Scalability:. In our company i had a lot of applications using WebForms which then were updated and changed by us as needed by our customers.. I think your customer will be requesting more changes on the application in near future. Making calls to another services, and maybe you'll have to rejob parts of the final product to match their wishes.. And with the upcoming Cloud Computing and the Windows Azure platform you'll probably need to keep up with your code.. ASP.NET MVC absolutely supports the concept of being able to scale up your application any time you want.. I remember one of our customers walking up on me asking me for an extension for their app (they have a member management system) and the feature would contain any thing like a link to export the current view as a csv file so they could did office stuff with it (mostly serial letters).. It wasn't really a big problem setting this feature up. (took around 2 hours including writing tests) - let's go to tests: . Testability:. Using WebForms i didn't really have enough interest writing tests for the reason this it was a pure pain to did so. I remember writing any tests to have at least any proofs although let's drop this topic.. (:p). We had tests for our custom classes although i couldn't really test all the EventHandlers within the WebForms. . Our CodeBase is way cleaner and saver to use thanks to this testable environment. I just check out any of the code, modify it, run all the tests and: Oh, it broke on strange behavior! - Let's fix this again. Earlier, I remember sitting with my co-worker debugging and endeavor to find those bugs for hours.. With ASP.NET MVC2 i are now lacking tests! We ask all kinds of people (even the non-Web ones) to provide test-cases i could feed into our TestSuite.. And yeah, there are any AJAX-Controls too:. AJAXability:. You asked around AJAX Controls and in conjunction with ASP.NET MVC I highly recommend you to check out Telerik ASP.NET MVC UI Controls. . If this isn't any thing for you, i also make extensive use of jQuery and jQuery UI. With ASP.NET MVC and the HTML Views, those libraries aren't just a pleasure to use, they just look amazingly beautiful.. There is no random-html-tag-id-value autogeneration anymore!. But what I like most is: You must finally really re-use your code again.. There is so enough more to those frameworks than just that, there is the T4 templating system. Auto-Scaffolding for your ViewModels / DomainModels with the Html.EditorFor() method and of course there is a great and easy way to use the IoC and DI paradigms.. Assuming this you have asked the question with mostly .NET Framejob related tags, you'll probably stick with it.. Just to keep the post complete, there are also another frameworks this are just as good (or even better):. And many many more!.

2:

There's also DynamicData which may be appropriate if you need simple CRUD access to your data..

3:

The Web Service Software Factory (WSSF) might come in handy in your situation.. This will allow you to define your contracts (XML entity returned (if XML you choose), etc.) while designing the server/client communication using WCF (or standard Web Service communication protocol).. WSSF favors either ASP.NET MVC or ASP.NET MVP. A simple case of the MVP architecture is shown here, plus this article.. As for me, I often come with a hybrid-like architecture using a bit of both MVC and MVP, as both have different strong points which combined toreceive her fill each other's improvement points..

4:

I'd also recommend looking into Silverlight.. http://www.silverlight.net/learn/.

5:

Just my opinion to use MVC on Client sites and WebForms inside administration pages(site).


99 out of 100 based on 89 user ratings 489 reviews