The basic architecture of any Silverlight application includes a server side and a client side component. The initial Silverlight application page is served from the web server when the user enters the URL of the application into the browser. If Silverlight is not installed on the client work station or a new version of Silverlight is available, it will automatically be downloaded and installed from the Microsoft web site.
A Silverlight application is created and compiled into a XAP file, which is a zipped compressed package containing everything required to deploy the Silverlight application, including the application dll and other dll's required by the application. The XAP file is deployed from the virtual directory on the web server.
Basic Silverlight Application Runtime Architecture
The Silverlight solution created by the CTC Silverlight Client Generator consists of the following major components (refer to the chart below):
This contains the main application page that opens when the user starts the application. From this page, the user navigates through the host EAE/AB Suite application and interacts with the ispecs. Included with the generator is a default application page that provides the basic look and feel. This can be customized to suit individual requirements.
CTC Silverlight View Controller
The CTC Silverlight View Controller is a generic Silverlight control that manages all communication to the EAE/AB Suite host system. This control can be included on any Silverlight application from which access to an EAE/AB Suite host system is required. The CTC Silverlight View Controller includes an API that allows the Silverlight application hosting the control to customize the behaviour and get control at key events during the end user interaction with the ispecs. The default Silverlight application provides a starting point for customization if required.
The CTC Silverlight View Controller includes the following main modules:
This module manages the end user navigation through the application. XAP packages, which are the generated ispec forms/views and view models, are automatically downloaded to the client when required. The XAP packages are cached on the client side in the isolated storage area, which is an area on the client disk provided and secured by Silverlight. Once an XAP package is downloaded, it is retrieved from the local storage and not downloaded again until the application is re-generated and deployed to the web server.
By default, ispec forms/views created by the CTC Silverlight Client generator are displayed. However, the CTC Silverlight View Controller allows specification of alternate views, which are forms customized outside of the EAE/AB Suite development environment to suit user interface requirements for an alternative interface. This allows users to design and paint forms using tools like Microsoft Expression Blend, and still take advantage of the runtime environment provided by the CTC Silverlight Client Generator.
This module acts as client side proxy of Component Enabler and implements the essential functionality of Component Enabler on the client side. It works hand in hand with the server side CTC Silverlight CE Services module. It manages the session with the EAE/AB Suite host system right from establishing a connection to displaying ispec forms/views, sending and receiving data and ending with disconnecting from the host system. During the session, the View Controller calls upon services of the CTC Silverlight CE Services component on the web server. The session established with the web server doesn't time out as the View Controller automatically keeps it alive for the duration of the session.
One XAP package for each ispec in the bundle
For each ispec included in the bundle, the CTC Silverlight Client Generator creates a Silverlight XAP file, which is a compressed zipped package containing the dll of the generated XAML specifications of the ispec form/view, the View Model and any other dll's specifically required by the view. Having one XAP package per ispec decreases the download time as the packages are downloaded when required. To minimize the download time, the XAP packages are kept as small as possible. Dll's that are common to multiple packages are not included in the packages, but are included with the main application as shared dll's so they are downloaded only once. These features reduce waittime between form displays.
A View Model is a data class generated for each ispec, which provides easy data binding using the XAML specifications of the Silverlight controls on the form as well as a seamless interface to data items and lists on the ispec.
CTC Silverlight CE Services module
This module provides the services required by the client side CE Proxy module for communicating with and exchanging data with the EAE/AB Suite host system. It uses the standard Unisys Component Enable for the host communication. The state of a session established by the client is maintained throughout the session, which provides efficient exchange of data between the server and the client. All data exchanged between the client and server is sent in XML format.
CTC Silverlight Application Runtime Architecture
The benefits of the CTC Silverlight Client Generator Runtime Environment include:
- Efficient forms processing
- Automatic distribution of changes
- Forms are downloaded once only and cached on client until changed
- Forms are processed and rendered on the client only
- Only data is exchanged with the server
- End user satisfaction
- Rich Internet/Intranet Application (RIA) user interface
- Desktop like experience with immediate feedback to user actions
- Fast response time as a result of efficient forms processing
- Easy to manage, flexible environment
- Simple programming model based on the .NET Framework
- Many options at different levels for customizing and tailoring to satisfy individual requirements
For further details see the CTC Silverlight Client Generator