Home    >    Case Studies    >    Real-time data refresh system based on Silverlight

Case Study: Real-time data refresh system based on Silverlight

Abstract

A US based company engaged Nova to develop a product for wind farm power production analysis.

They would like a system with flexible functionalities and excellent UI, thus Silverlight is the first option. Besides, real time data update is also required.

Requirements

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).

Screen Shots

Solution

Technology required

System Architecture

Development methodology

Silverlight Platform

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.