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)
- 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
csvfile 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
WebFormsi 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-valueautogeneration 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!.
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)..
ASP.NET MVP. A simple case of the
MVParchitecture is shown here, plus this article.. As for me, I often come with a hybrid-like architecture using a bit of both
MVP, as both have different strong points which combined toreceive her fill each other's improvement points..