Silverlight
The Rich User Interface helped to create a website which will make the UI as a desktop application. Silverlight 4.0 even came with out of browser option to run the silverlight application in the desktop itself. If there is no internet connection then the data can be temporarily stored and later once the internet connection is available then the data can be sent to the target machine like database or somewhere.
Limitations
Silverlight is having few limitations also can be overcome, if the performance and security is carefully considered with the functionality.
Security
As of now the silverlight can be used with WCF service in basic binding or custom binding, but can't be bind with wsHttpBinding. So there is no possibility for message level security.
The entire design will get downloaded into the user environment, and can easily reverse engineered to get the design and even the entity design and details if not properly applied.
Performance
The XAML design should be properly divided into XAP files to make the download as simple as possible. (The dynamic page download will avoid the initial delay in the page display.)
The custom security is also having a chance to get reverse engineered by the hackers, if it placed the code in the xaml design.
Session Data
The data can be stored in the Isolated storage engine. But there is a possibility the data can get deleted by the user.
Advantages
- The xap content once got downloaded to the browser environment in the subsequent requests it will be taken from the browser cache will avoid delay in the UI display.
- The service call will only download the XML or json data to the browser environment to use with the silverlight.
- Silverlight can work with XML or JSON data.
- If JSON is used it will even reduce the download data size and will improve the performance of the application.
- The silverlight can work with DOM element also and can access the current HTML page contents.
- The silverlight event mechanism is very powerful and can be used to make the UI very rich.
ASP.NET
- The user interface related client side events are mainly dependent on javascript.
- The design and the code everything will be in the server and only the html design and data will be available to the end user.
- Some limitations with jquery or javascript wont make the UI rich. If the data is needed from server then the postback will happen will create unnecessary network traffic.
Conclusion (In my opinion)
If the page design is simple and the security and performance are crucial then ASP.NET based design is better. If the page design is critical and needs more control over the UI then the silverlight design is better.
This article will continue with more points in the future...