views:

176

answers:

5

Hi,

We have an existing web application developed using ASP.NET/Ajax We are planning to move it to either WPF or Silverlight.

Can someone please compare these 2 technologies with respect to productivity,performance, maintainability,trade-offs, their pros and cons etc ?

Also,could I also know the advantages/disadvantages of using Silverlight over ASP.NET/AJAX?

Thanks for reading.

+4  A: 

If you use WPF, it's essentially a "Pretty WinForms App" whereas if you go Silverlight, then you have an "easy-to-deploy-and-manage pretty web app". The code inside both will be nearly identical but it depends on what you want to target. Given that you're replacing a web app, Silverlight may make more sense.

Jaxidian
Just to expand on this, I would say that if you're in doubt, go Silverlight. It has the large majority of features that WPF has, and can even be installed as a stand-alone application. The only thing Silverlight lacks is the ability to take advantage of your hardware for complex graphical things (think 3-D), although with Silverlight 4, it even gains some (not all that WPF has) ability to use your GPU.
Jaxidian
@Jaxidian, I totally agree with you. Silverlight is really hot stuff right now, with Microsoft releasing 4 versions in less than 2 years! Although Silverlight is really a subset of WPF, the difference gap seems to be getting smaller and smaller.
sunpech
Another nice thing with Silverlight is that, if you standardize on Silverlight 3, then your app will probably work on Windows Phone 7 with very few changes (mostly UI layout/sizing). That's HUGE if Windows Phone 7 is successful!
Jaxidian
A: 

If you want it to remain as a web application, you should clearly choose Silverlight. On the other hand, if you're happy to make this an installable Windows application, then WPF would be the better choice.

John Fisher
+1  A: 

WPF only runs if the .NET environment is installed on the client machine. Silverlight is analogous to something like Adobe Flex (a plug-in "runtime" added to the web browser).

gooch
+1  A: 

WPF is basically runs on Desktop environment and Silverlight runs on Browser based environment. Sinice your application in ASP.Net/AJAX go for Silverlight. Silverlight is a subset of WPF. So most of the things like Animation, Control Template, Data Binding (Data Template) can be done in Silverlight. One of the major advantage i found using WPF/Silverlight is we can separate the UI team and Business logic development team so that they can work simultanously. Basically its matter of deciding whether to go with Desktop environment or go with Browser based.

Comparing performance Desktop application will have the upper hand when compare to browser based application. Use applications like expression blend for UI design that will give you more flexibility in your development. Another advantage is resources. This is somewhat similar to css but it has some great added feature to override styles and key based style development. My suggestion is go with Silverlight if you want your application to be in browser based other wise go for WPF.

Kishore Kumar
A: 

If you use the MVVM pattern to design your app then moving from one to the other or even doing both is not very hard. You will also be able have designers go to town using Blend without stomping over code.

My advice would be to go with one or both, but use the MVVM pattern (Composite Application Guidance is a big help in this regard).

Felan