views:

188

answers:

3

After Silverlight 4.0 has been released with new WPF, I am kind of confused with these technologies: Silverlight? WPF? Windows Form?

The main motive that we want to achieve for BIG business project is following:

  • Performance

  • Security

  • And platform independent**

If I consider all above three points then only Silverlight is the option as I don’t want people buying emulator on MacOS for WPF or Windows Form.

Now how good the Silverlight is for Business applications, I was completely against when Silverlight 2.0 was in the market but now it is Silverlight 4.0 and they have provided many new features (but still basics) that is required in any challenging business
applications.

Comparing Silverlight and WPF

-* Silverlight and WPF are very new technology and if I'd to compare from these two then I'd prefer WPF because it can be considered stable and mature. But it is not same as Windows Form.

-* If I go with Silverlight then I am sure about keep updating to the latest version of Silverlight. I remembered when we were developing software for version 2.0 then we'd to create our own framework with dynamic loading DLL, and then Navigation concept. But everything was got changed once Silverlight 3.0 came. I don't want this to be happening with this new product.

-* If we go with WPF then we don't get the platform independence.

Now, why not we just focus on making WPF and then move to Silverlght. As someone (Tim?) from Microsoft has said that the idea is to make Silverlight as close as WPF. But if that is the case then why XAML structure is different; I will not be convinced with by saying that .Net framework for SL is too small.. well the difference is coming from the namespace ?

I was searching on this subject and found "Microsoft WPF-Silverlight Comparison Whitepaper v1.1.pdf". This guide is very good that gives you ins-outs about how can we build common apps that runs on both. But again, it is comparing Silverlight 2 and not 4.

I am sure many architect/ developers/ project managers must be facing similar kind of questions in their premises and wants to initiate this discussion, if it has not been :).

We've still got 2 weeks to make this decision, so I'm expecting everyone to participate, gurus?

+1  A: 

Silverlight has become a much more mature platform since version 2.0 and has been used in anger in several large applications including the last Olympics and the WorldWide Telescope Web Client, you can search online for more case studies.

For Business applications with Silverlight 4.0 and VS2010 there is a Silverlight Business Application Template you can use to give you a head start, here is a walkthrough: http://msdn.microsoft.com/en-us/library/ee707360%28VS.91%29.aspx

Silverlight is also the only one of the three technologies in your title that is supported on an OS other than Windows (it's supported on the Mac and via Mono on Linux) so I'd say overall it's the best fit for your requirements.

Peter McGrattan
+1  A: 

Silverlight is still a web technology, so it does have some of the constraint you can have with normal web application, so if that is a show-stopper, then go for WPF. As for Windows Forms, I'm pretty sure it will live on for quite a while, but WPF and silverlight are usually better to my opinion.

David Brunelle
+2  A: 

All three of the technologies can be made both performant and secure, depending on your definition of those terms. Of the three, only Silverlight is really cross-platform. However, I'd have to wonder about the finer detail of your requirements before I could make any kind of informed decision...

  • Performance is an important consideration. What part of your application are you expecting to be a performance problem, and why? Knowing this helps you understand how the technologies might solve the problem.
  • Security could mean anything. Do you have data that you need to secure? Does the application itself have to run in a privileged environment? Is it a multi-user application, a networked application, an application that is likely to cache data client-side, etc... You really can't dismiss any of the technologies for being "insecure" - unless you can more tightly define what your vision of security is.
  • What level of cross platform support do you really need? How much are you willing to spend to achieve it? Most businesses say they want to support multiple platforms, but the cost is often prohibitive. If you're insisting on a .NET project then I'd wager that either your technical department or your business managers aren't really committed to cross-platform and it's not really going to happen. So, do you mean "Windows XP/Vista/7", or do you mean "Windows/Mac/Linux?"

Anyone can throw an opinion on here on some generic aspect of the three technologies, but there's really no clear answer unless you have much more detailed requirements to work with.

Dan Puzey
Currently we are running into ASP model for UI and now after developing with ASP.net we are failed with the performance because of the ins-out , load unload is kind of frustrating for the user with the higher data.Now this asp.net application uses Javascript that either FireFox would not like or the Mac OS.It's an mult user and network based applicaiton. I am not fan of cache data at client side so I would say no no to this.Windows / MAC/ Linux is what I mean with cross platform.
Amit
Have you looked into optimising the ASP client better? Presumably if you're using that already then a website solution is acceptable, and it's a *lot* easier to make that cross-platform that it would be to make a client-side app the same. Javascript *can* be made cross-browser/-platform, and performance issues can be fixed too - so are you sure you need a different solution, instead of just fixing the one you have?
Dan Puzey
Yes Dan you are right that we can make java script platform independent but the main cause is the development time.
Amit