views:

53

answers:

1

Hi,

we've got an existing webapplication written in magic. But now we eventually want to exchange the existing web-presentation layer (maybe also rich client) to a server side presentation layer. What do you think I should look first (ASP.Net MVC, Silverlight, something in PHP).

With which technology is the effort relativly small to exchange the presentation layer if you only have a model.

And is it maybe possible to use a generic presentation layer so that we could create the new pages with small effort.

+1  A: 

PHP vs ASP (or anything other such as Ruby on Rails, etc) is all about preference and what you know or think you want to ramp up on. Let me talk about this from a Microsoft web developer perspective, assuming you choose to go down that path.

If you have a pretty simple data in / data out app, and don't need a lot of dynamic screen interaction and want to develop features quickly, then ASP.Net is the way to go. You can do a lot of dynamic stuff with Javascript and web services, but ASP.Net is not as flexible as something like ASP.Net MVC. However, its much easier to develop an entire screen quickly in ASP.Net using server side controls.

If you want greater control over your HTML output, you want a more dynamic display with Javascript, and want to be able to more easily leverage unit testing, ASP.Net MVC is the way to go. Developing simple screens will take longer than a traditional ASP.Net app, but developing interactive content where server generated DOM needs to mesh well with client-side manipulation will go faster with MVC. Unit testing is also a snap with ASP.Net MVC, and there are plenty of example out there to show how to build a well-tested MVC site. I would argue that ASP.Net MVC might also scale better since you have more control over the output.

If you need a really pretty UI with rich graphics and animation, and want to be able to unit test your application logic, then Silverlight using the MVVM pattern is the way to go. I am writing just such an app right now. Its pretty easy to unit test (as easy as any unit testing ever is), easy to mock out data to test the UI with large datasets, and Silverlight provides a level of graphics you cannot get in HTML. Having said that, you will be dealing with a smaller audience using Silverlight as the plugin is required to view Silverlight just like Flash. Silverlight isn't available on the iPhone as well. Silverlight also incurs a downloading time penalty, so you have to do some thinking about how big your app is which isn't so much the case with a "pure" web app.

A mixture of ASP.Net and Silverlight or ASP.Net MVC and Silverlight is your fourth choice. You might do this where only parts of your application require the rich UI that Silverlight provides. Silverlight and ASP.Net projects can share files, so you can use classes you develop for business logic in both places (with a few caveats).

I hope this helps, and good luck with your project.

Jason Jackson