views:

8490

answers:

10

I'm debating whether to use Silverlight 2.0 vs ASP.NET MVC for a web application. The web application will be a subscription free service marketing all age groups. It's important the source is highly testable, but also with the Web 2.0 movement a graphical web application is important as well for competitive reasons.

I'm assuming silverlight is better than the ajax helpers/MVC graphically, but foundation-wise testing is better/easier with MVC. Possibly an MVP pattern with Silverlight could increase the testability of the source.

Could anyone elaborate on the pros/cons of each technology and recommend one or the other based on the above?

(addition 9/22/08) In regards to allowing search engines to index the site, using either technology it will utilize a backend database whereas a lot of the content will be dynamically generated. Based on some of the comments, when we talk of the searchable content would the home page of the application if written in silverlight be searchable? Would I be able to get the site to appear in a google search?

+3  A: 

Why can't you use both?

Although I haven't investigated this properly yet, Steven Walther has a blog series where he demonstrates using the MVC framework incorporating Silverlight elements.

Steven Walther on ASP.NET MVC

jacko
+6  A: 

For competitive reasons you may want to stick with MVC at the time being. Silverlight is a great technology but not everyone has the plugin yet. If you write standards compliant HTML / CSS etc. with an MVC site your users will not have to download any additonal plug-ins; just a browser.

It depends on your application but those are my thoughts.

Ryan Lanciaux
+20  A: 

I don't think you need to pick one over the other. You could build out the core of your site using MVC and add silverlight into the mix where is makes sense for the UI.

As far as silverlight being better graphically, that all depends on your (or your designer's) ability. There are some very nice looking HTML based sites out there, and if silverlight development is anything like Flash development, there will be those who will take a new tool and create some really bad UI. I don't think the design is as dependent on the technology as it is on the design decisions that are made along the way. Just my opinion though.

Andrew Van Slaars
+1  A: 

There is no point in comparing ASP.NET and Silverlight. Silverlight is just a client technology. May be you can compare AJAX/Flash with Silverlight for your client side controls and validations or callbacks to the server for any asychrounous calls.

Jobi Joy
There is a point, as they both present UI and UI interaction with a backend.
mattlant
My point is like ASP.NET MVC is at a much higher position than Silverlight. And I dont think Flash or Silverlight technologies need to compare with technologies like ASP.NET/Ruby on rails/J2EE. Silverlight can co-exists with all these.
Jobi Joy
+1  A: 

In terms of unit testing Silverlight vis-a-vis current unit testing tools, the problem with Silverlight is that it is its own "mini" .NET Framework, so they don't work. The Silverlight team had to make their own unit testing framework even.

Jamie Cansdale tried creating test extensions for Silverlight but I haven't been successful in making that work for Silverlight 2 Beta.

Jon Limjap
+3  A: 

MVC is a pattern. You can do MVC in any modern language and many have done so for years. Silverlight is a whole different technology set built atop a version of .NET. You can build MVC into a Silverlight application yourself if you like. In addition Silverlight forumns etc espouse one of their own patterns as well... forget what its called at the moment. Bottom line, Silverlight will be huge in the mid to long term. MVC will have some following in the short to mid terms. The decision is yours. I'd use Silverlight.

Thomas Wagner
This is a good answer but not one that programmers will like.
Phil Bachmann
A: 

Google just added the ability to search Flash binaries and add them to their databases recently (2 months or so). I think as Silverlight gains popularity that Google will do this, but this doesn't work now.

Furthermore, with RIA technologies (since they are run on the client) the goal is to protect your IP. Therefore, most libraries are obfuscated and making them harder to be searched.


Taking a step back a little here. You need to evaluate your business processes you want to implement and pick the technology not do some compare and contrast with Silverlight and ASP.NET MVC.

Silverlight RIA apps have some organic abilities that even Web 2.0 apps cannot offer. Some of the basics are: rich graphical experience (lots of glitz/animations/effects), huge isolated storage for cache, you can use things like LINQ to scale some of the simple operations off of the server.

This screen shot summarizes it for me...its a mockup of what FaceBook could look like in an RIA app (pretty cool...huh?) So, there is some huge possibilites with going with RIA.

Bart Czernicki www.silverlighthack.com

+1  A: 

I would agree with the majority of the posts here. Silverlight and MVC can co-exist. MVC as a pattern is great, sliverlight as a piece of a client application is great, both can be used on the same project.

Chris Slee
+3  A: 

If you want mobile support today Silverlight doesn't have it so MVC wins.

In all other cases, Silverlight will usually make more sense - because it costs so much less to maintain and upgrade the site.

To do Silverlight you need expertise in:

  • XAML
  • A .NET language

To do MVC you need expertise in:

  • A .NET language
  • MVC
  • ASP.NET
  • HTML
  • CSS
  • Browser compatibility (present, past and future)
  • Javascript
  • JQuery

Why would an employer want to pay to keep someone up to date in all those skills?

Phil Bachmann
You could similarly ask why would an employer pay for their developers to learn Xaml/Silverlight which is an extreme learning curve as opposed to their standard tools that have been around (mostly) for close to a decade.
MrTelly
A: 

After builing website for over a decade, classic asp, webforms, asp.net MVC. I am over html, css, javascript.

running your UI in a CLR is like a breath of fresh air. Silverlight with a MVVM pattern & the Unity Application block creates a fantastic UI layer.

En