WHAT LIES BENEATH A SILVERLIGHT APPLICATION
Silverlight or WPF everywhere is a plug in that is delivered through a browser. It is built on the current, updated graphical subsystem from Microsoft – Windows Presentation Foundation (WPF) and integrates multimedia, graphics, animations and interactivity into a single run time environment. A Silverlight application is compiled into a self sustained package that is delivered by a host web application to a client. This execution model allows Silverlight packages to deliver the power of desktop computing over a browser. This also allows capability to build connected applications that are a step up from asp.net and Ajax applications.
The runtime allows the host application to interact with this package. HTML Bridge is a technology in Silverlight that enables you to access the HTML Document Object Model (DOM) from managed code, and to call managed code from JavaScript. This feature, called HTML Bridge, allows the Silverlight package to interact with the host web application.
CHOOSING AN IDEAL MIGRATION SOLUTION
Migration of an asp.net application to Silverlight is not necessarily a line by line code conversion. It involves revamping the user experience to unleash the power of Silverlight and also re architecting the application to leverage the client computing capabilities. There should be an analysis and assessment phase followed up by development and testing.
There are also key business objectives that need to be met while selecting an optimal migration solution. The most prominent being
• Time to market
• Integration with existing applications in the enterprise
• Seamless user experience
• Turnaround time for changes
An assessment of the existing applications in the enterprise is of key importance, as it needs to be fully understood from a functional and technical perspective, to provide a complete migration strategy.
Based on the results of the assessment there are three ways to port a web application to Silverlight:
--> POWER CONTROLS: SILVERLIGHT CONTROLS HOSTED IN SINGLE ASP.NET PAGE
Here specific controls are ported to Silverlight and hosted within the asp.net web page. The application will continue to remain asp.net while specific functionalities alone are ported to Silverlight.
Key examples are Stock tickers, weather widgets etc.
--> SEPARATE APPLICATIONS WITH TOUCH POINTS
In this type of integration Silverlight and asp.net applications both exist in parallel and with limited interactivity. The two applications will have navigational touch points. The user moves from one application to the other based on his selection.
--> HYBRID: ASP.NET PAGES HOSTED WITHIN A SILVERLIGHT HOSTING ENVIRONMENT
If the destination technology is Silverlight, this is the recommended alternative to a total rewrite. In this approach, we build a hosting environment that is capable of delivering asp.net and Silverlight pages. The asp.net application is iteratively migrated to Silverlight.
For most corporates with significant inventory in traditional HTML web applications option 3 - building a hybrid hosting environment is the best option. This allows for the shortest time to market delivering the maximum impact to the user. The singular hosting environment ensures that the user experience is seamless and not that of a mash up of two disparate applications and technologies.
The hybrid hosting environment delivers the following key benefits:
The application will be immediately Silverlight – maximize end user experience by leveraging powerful features like animations, vector graphics, advanced typography, 3D drawing, adaptive documents etc.
Multi-content hosting – migrate only the necessary content to Silverlight.
Migrate iteratively – identify and migrate few pages at a time. Evolution, not revolution is the mantra.
Backward compatibility – Allow content to remain in the preferred technology. Reports and other ‘preferably HTML’ content can continue to exist in HTML form.
EVOLVING AN APPLICATION TO SILVERLIGHT
EVOLUTION VS REVOLUTION
Revolution is a jump to the next generation technology in one big undertaking. Cut over takes place quickly and on a large scale: the entire entity is transformed. Evolution is to take incremental steps to the next generation over a longer period. It reduces risk and upheaval. And it allows for assessment of options and planning accordingly. Evolution tends to deliver superior performance over the long-term. Evolution means stepping from the current to the next generation. The steps are incremental, over a period of time.

Building a hybrid hosting environment also allows for backward compatibility with predecessor products and processes. This allows the entities to exist in preferred form and technology while being a singular unit. This allows revolutionary goals to be achieved through an evolutionary process.
MIGRATION METHODOLOGY
Based on the technical and business drivers at play, we suggest the following migration methodology to the desired destination solution.
At a high level the migration methodology needs to involve the following steps

Fig: iterative development methodology
--> Assessment
a. User experience finalization
b. Identifying the migration candidates
In this phase a thorough assessment of the existing applications is done. A validation of the architecture based on the assessment is done.
The primary tasks completed will be user experience finalization and identifying the migration candidates. The outputs of this task are wire frames or mockups, and guidelines for the user experience.
Also as part of the identifying the migration candidates a list of items to be eventually migrated is identified. Also a priority on which the migration has to be performed is identified. Using these two artifacts a high level iterative migration plan is drawn up. An outline of the destination product, with the details of its constituent applications is also drawn up.
--> Infrastructure development
a. Develop Hosting framework
i. Build host shell and utilities
ii. Develop integration enablers and utilities
In this phase the infrastructure to enable the iterative migration is developed. First based on the output from the previous Assessment phase, a detailed design is drawn out for these components, followed by development. Here the following deliverables are built
1. A hosting framework
2. Utilities and enablers for integration
3. Common services
--> Service Orientation
This task can happen in parallel with the Infrastructure development. All the data access and business logic that needs to be accessed by both Silverlight and asp.net application is exposed as services. This includes
1. Legacy services(COM+ etc)
2. Common business logic
3. Data access methods
--> Iterative Development
a. Source Code Development
b. Changes to framework
In this phase the actual migration happens. Here based on the priority drawn up in Assessment phase, a set of items are taken up for migration. Detailed design is performed and development is done. If the set of tasks needs an update to the framework, that too is done here.
--> Deployment
a. Testing and stabilization
b. Production deployment
The application is tested and stabilized and deployed to production.

0 comments:
Post a Comment