Hello,
I'm now learning ASP.NET controls together with Infragistic delivered ASP.NET controls, trying to apply them within MVC applications.
I've also checked some demo videos and introduction videos by MSDN concerning Silverlight and Expression Blend. One question to the forum:
if you are intending to create data entry oriented web application (e.g. input of series of data, display many grids, display many pages with grids and maybe some single comboboxes etc.), it is really recommended to use Silverlight based data input? Isn't it maybe too slow if you have to wait for the download of the Silverlight XAP each time you change the web page in order to perform the next processing step? Or isn't it better to implement ASP.NET controls? How is Silverlight working with MVC?
What are your experiences?
Yours
Stephan
Hello Stephan,Silverlight, Asp.Net, and MVC are three different technologies that ultimately provide the same goal, but tackle it in different ways and have different advantages and disadvantages. If you need more information on each of these technologies, following these links should help.
http://www.asp.net/web-forms
http://www.asp.net/mvc
http://www.silverlight.net/
If you need more information on new technologies from an Infragistics standpoint, you can check out the Infragistics Road Map.
To answer the question on downloading the xap file each time:The actual Silverlight application lives on a server and you download a xap file which will then be unzipped by the Silverlight plugin. This Silverlight plugin will need to be downloaded and installed by each of your users which happens to be one of the drawbacks of Silverlight. Once that xap is unzipped, the application is loaded on the client machine and does not need to be downloaded again unless a newer version exists on the server. Concepually, there are not separate pages like asp.net. You will just provide different views/pages inside of your silverlight application and the you will ultimately decide how the user navigates through them. When you navigate to each view/page, you will need to have some sort of asynchronous service (WCF) call to bring back the new data.
You may also want to look into the Silverlight Navigation Application model. It is a template provided by visual studio that creates a very similar naviational approach that you would get with a asp.net application. It is very similar to a masterpage and the content can be swapped with different views of data.
All three of these technologies can leverage asynchronous technologies, web services, and will ultimately produce the same outcome. However, if you can live with all of your users having to install the Silverlight plugin, I would go with Silverlight. It will give you the most leverage in creating a rich UI. If you can't live with your users installing the plugin, then you will have to decide whether you want to do a lot of the coding yourself with MVC or deal with the Server Side PostBack model of ASP.Net. Hopefully, I was able to give you enough information for you to make a choice on what technology to use. However, the real choice on technology will decide upon what requirements you have for the application.
To add to Steves comments, your decision does not have to be Or decision. Silverlight and HTML/JS-based technologies like ASP.NET WebForms and ASP.NET MVC can be used together and compliement and interoperate with each other quite nicely.
Developing full-frame Silverlight apps (Silverlight apps that are 100% the browser height/width) is only one option. You can also create HTML-based applications that leverage so-called "islands-of-richness", dropping in Silverlight where you need that extra bit of richness.
Hope that helps.
Devin
A further comment:
Silverlight bears more of a resemblence to desktop client programming (especially WPF) than the other technologies you mentioned, so if that is your team's background and requiring the Silverlight plugin is no issue, then you will likely be able to get up and running much more quickly with Silverlight than with ASP.NET Webforms or MVC not to mention suffering less cognitive dissonance while working with the technology.
If your team has an existing web programming background, then refer to the excellent advice provided above by Devin and Steve.
-Graham