Jörg an I created a new RIA Template and sample application for enterprise applications based on Silverlight 3 and the Silverlight Toolkit.
This Visual Studio template and sample application provides a basic structure with sample code for an Enterprise RIA. The intention of providing this was to show how Microsoft Silverlight 3 can be used to create Rich Internet Applications (RIAs) in an enterprise environment. This means e.g. to effectively visualize enterprise data and provide functionalities which may allow to better work with and manipulate such data in comparison to traditional web applications. The focus when designing this template and sample was on the following two main subjects:
- Make use of the latest Silverlight technology and Silverlight extensions such as the Silverlight Toolkit or the Silverlight port of the Unity container in order to get to working results as fast as possible while preserving a high level of quality.
- Design and implementation of the application following some proven architectural patterns and software development techniques in order to provide code that meets usual requirements in enterprise application development in order to provide a baseline that can be used to create own custom enterprise RIAs on top of it.
The sample application deals with financial data and stock trades. It exemplary implements certain aspects of visualizing of data which can be relevant and helpful while buying or selling stocks and managing accounts.
The functionality of the sample application is best described using a screenshot of the application itself.
- RSS ticker with detail view using visual effects which are rendered with GPU hardware support
- Possibility to filter the available data via ComboBox (timeframes) and textbox (ticker symbol)
- Accounts are displayed and selectable in a TreeView control
- Scatter graph for clear display of transactions and transaction cluster (resolution is per day)
- Transaction nodes in the scatter diagram show the value of the transactions (or sum if its a transaction cluster) via mouse hover effect. A detail view is also available and is shown after clicking a node in the graph
- Line graph that shows all stocks in the account evaluated with the respective stock price at that day in order to visualize the overall account value which is explicitly shown when hovering over the line graph nodes
- Tabular view of the transactions in a certain timeframe or of a certain stock with detail view
- Tabular view of a stock ranking for the selected timeframe regarding their performance showing performance figures, highs and lows with the respective dates
This template and sample application is based on
- Microsoft Silverlight 3 Beta
- Microsoft Silverlight Toolkit
- Microsoft Silverlight port of the Unity Container
and was developed using
- Microsoft Visual Studio 2008
- Microsoft Expression Blend 3 Preview
- Microsoft Silverlight 3 Tools for Visual Studio
The architecture of the application is, besides others based on the following patterns and techniques
- The ViewModel pattern (a MVC variant) to decouple the UI and the application logic as much as possible
- Comprehensive data binding via collections implementing the observer pattern. Therefore we were able to implement the sample without any references to UI components in the C# code
- Almost no use of custom events for notification
- Use of Unity a dependency injection container infrastructure which manages certain application components and services during their lifecycles and provides concrete instances of those artifacts when those are needed during runtime
More in depth and technical details to this implementation and techniques can probably found soon in theses blogs:
The template and sample application can be found here on MyMSDN or just drop me a note. Due to some time constraints it is still based on Silverlight 3 Beta however we will provide a SL 3 release version pretty soon.