Question

I have an application which is built in ASP.Net WebForms and Silverlight. There is another WCF services application which is accessed by silverlight part of my application.

Now I have to Re create the whole application in an MVC Single Page Application(SPA) and of course the WCF one because now I would need Web API for that.

An initial solution comes into mind is to add a web api project into wcf services application and start creating web methods there and call wcf methods from there if that functionality was already there.

And for webform start a new spa with mvc project from scratch and use durandal or any other spa client framework(hell of coding).

Any useful solution/advise? as I am looking for simplicity.

I searched around and found some questions but really did not helped as they are about merging with existing apps.

Note: application is a large application with a lot of functionalities

Was it helpful?

Solution

You have to decide how confident your team is with client side frameworks. Development of Single page applications may not be easy in the beginning, but you will get used to it very quickly. It's very important to give your team the right training.

In my opinion, Durandal is the simpliest, most elegant and complete framework to build enterprise level SPAs. It is important to know how knockout, requre and durandal's router and composition work. For data centric application I would use breezejs to manipulate and cache data on the client side and request it from the server side. Breeze works best with Entity Framework on the server side, but it's not necessary. If you can use Entity Framework, it will simplify your development, because it can generate metadata of your database structure for breeze. If Entity Framework is not an option, metadata can be written by hand.

I would make server side as thin as possible. Serving data from your database using web api with ORM of your choice and some cshtml pages.

Durandal Get Started is a good place to start.

Durandal Auth is a very good template for enterprise level SPA. It may not suit you completely, but you can use it as a guidance to build different modules of your application.

Breeze samples I suggest you consider using breeze. There are good courses available on pluralsight.

Knockoutjs has good training on data-binding.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top