Case Study: Real-time data refresh system based on Silverlight
A US based company engaged Nova to develop a product for wind farm power production
They would like a system with flexible functionalities and excellent UI, thus
is the first option. Besides, real time data update is also required.
According to the client's requirement, the system should deal all of the business
logic at server side, and the client is used to display and analyze the data that
getting from the APIs. The system contains multiple function modules including Analytics,
Dashboard and Alert.
Moreover the system should be run in two ways, dashboard and compact view mode,
and it also should support Silverlight OOB mode (Out of browser).
Silverlight provides the ability to create an excellent UI which definitely matters to customers, furthermore, it provides a perfect binding mechanism so that we can make the functionalities more flexible.
MVVM design pattern
MVVM is a specially designed for WPF and Silverlight. Besides, it sets up several
development standards: the program should be feasible to unit testing, easy to maintain
and of a high readability.
WCF RIA Services
We adopted WCF RIA Services to fetch data because Silverlight is a client-end implementation
platform and it can't directly read data as ASP.NET. Compared with WCF, ADO.NET
data service and Web service, WCF RIA Services is easier and simpler to use.
Telerik Silverlight Controls
Additionally, we took advantage of the 3rd party control Telerik to present UI.
Telerik has a powerful skin function and supports WCF RIA services with outstanding
performance. In this way, we saved the development time and cut down the cost.
Challenges of the development process
During the whole process we encountered a few challenges.
The system can get its data only by WCF and the server side was developed by another team in US,
we have no way to directly contact the developers there, the server crashes brought us a lot of trouble.
We have suggested taking over the server side development in next stage so that we can handle all the things well.
Another challenge to us was their client change the requirement too often,
and they leave us a little time to test. To ensure that we can deliver a stable system to the client,
we kept a good communication with client and improved the architecture several times to adapt new features and modifications.
Benefits to the Client
- Thanks to iterative development we adopted, the high risks caused by the constant requirement changing were mitigated.
- The client's quick feedback and our adaptation leaded to a refined system that more closely met the real needs of the users.