Chapter 8
Adopting Silverlight

As you learned earlier in this book, organizations need to sustain increasing user and stakeholder expectations, as well as meet security and data governance rule and regulation requirements, by transforming from traditional organizations to globalized virtual organizations supporting enterprise mobility.

With the use of innovative and advanced technology such as Silverlight, organizations can achieve these goals effectively and efficiently. Choosing the right technology and adopting it at the right time in the right way that can fit the existing organization vision and culture is a critical success factor to achieve the previously mentioned goals.

So far, we discussed Silverlight technology and how to develop service-oriented enterprise RIAs using Silverlight and the .NET platform in the context of enterprise capabilities. It is just as important to understand how to adopt Silverlight in your organization as it is to understand the capabilities of Silverlight and developing Silverlight-based RIAs. This book will end with a nontechnical, organization management–level discussion that covers how you can successfully plan and adopt Silverlight in your organization.

This last chapter will start with summarizing Silverlight and its capabilities. Then it will discuss current challenges facing Silverlight and cover how organizations can make a decision on whether to select Silverlight as a key technology component. The chapter will wrap up with key issues that organizations need to consider to adopt Silverlight as part of their technology and product roadmaps.

Silverlight in a Nutshell

Silverlight is truly an Enterprise 2.0–ready technology platform enabling development of RIAs. The powerful integration of Silverlight with the.NET Framework and design and development tools such as Visual Studio and Expression (Expression Blend, Expression Encoder, and Deep Zoom Composer) enables IT organizations to develop and deliver service-oriented, high-quality RIAs that return maximum ROI in the long term.

The following are key features of Silverlight 2:

  • Silverlight provides a platform to develop cross-browser (Microsoft Internet Explorer, Mozilla Firefox, Apple Safari, and Google Chrome), cross-platform (Microsoft Windows, Apple Mac, Linux), and cross-device (desktop, laptop, and handheld devices) enterprise RIAs.

  • Silverlight is based on Microsoft .NET Framework 3.5.

    • As a subset of WPF, the Silverlight user interface framework is based on .NET Framework 3.5, WPF, and XAML. Visual Studio and the Silverlight toolkit contains more than a hundred XAML-based user controls in the areas of layout management (e.g., Canvas, StackPanel, and Grid), form controls (e.g., TextBox, CheckBox), data manipulation (e.g., DataGrid, ListBox), functional controls (e.g., Calendar, DatePicker, ScrollViewer), and media controls (e.g., MediaElement) to develop rich, interactive applications. Third-party vendors also provide an enhanced rich set of Silverlight user controls.

    • Support for CLR and availability of .NET BCL components enable the integration of Microsoft .NET managed code-behind using default Microsoft .NET class libraries in Silverlight 2 projects.

    • Asynchronous loosely coupled data integration capabilities enable development of complex, media-rich, SOA-based enterprise RIAs.

    • Integration with WCF and Web Services via REST, WS*/SOAP, POX, RSS, and standard HTTP enables the application to perform various data transactions with external data sources (e.g., XML, relational databases) and feeds (e.g., RSS).

    • ADO.NET data services, LINQ, LINQ to XML, and XLinq can be used for the data transformation.

    • Local data caching with isolated data storage capabilities supports client-side data processing.

    • DLR supports dynamic compilation and execution of scripting languages like JavaScript and IronPython to develop Silverlight-based applications.

  • Silverlight provides effective media management supporting secured multimedia streaming.

    • Adaptive media streaming helps to improve synchronization of media by automatically adjusting bit rates based on the network bandwidth.

    • Digital rights management (DRM) for media streaming enables protected distribution of digital media.

  • Silverlight supports rich graphics and animation.

    • 2D vector graphics are supported.

    • Deep Zoom provides an effective and easy-to-implement zoom-in and zoom-out feature.

    • With the use of the Deep Zoom Composer, professionals can smoothly enable navigation of large amounts of visual information, regardless of the size the data, and optimize the bandwidth available to download it.

    • Object animation and embedded code-based animation provides high-performing graphics and animation support.

    • Seamless integration with Microsoft Expression Blend allows development of compelling graphics with minimal effort.

  • Silverlight provides networking support.

    • Silverlight is capable of background threading and asynchronous communication.

    • JSON-based services integration is supported. LINQ to JSON support enables querying, filtering, and mapping JSON results to .NET objects within a Silverlight application.

    • Policy-based application development and deployment can occur with cross-domain networking using HTTP and sockets.

  • Support for different deployment options (in-package and on-demand) and cross-domain deployment capabilities enable users to access Silverlight RIAs in a high-performing and secured environment.

  • Silverlight supports the open source and cross-platform Eclipse development platform by providing Eclipse Tools for Microsoft Silverlight (eclipse4SL—http://www.eclipse4SL.org).

  • The Silverlight XAML schema vocabulary specification [MS-SLXV] released under the Open Specification Promise (OSP) improves interoperability.

From the preceding list, it is crystal clear that Silverlight 2 provides a platform to develop cross-browser, cross-platform, and cross-device enterprise RIAs with enhanced networking support, including policy-based cross-domain deployment to support different types of application deployment scenarios. With these features, as you learned earlier in this book, Silverlight 2 can certainly support the seven key SOA principles—usability, flexibility, simplicity, reusability, scalability, maintainability, and security—for building easy-to-deploy enterprise RIAs as a service.

Adopting Silverlight in Your Organization

Before adopting any new technology component, organizations have to perform comprehensive strategic and technical analysis. This analysis should provide convincing results and a promising technology adoption plan to the leadership and stakeholder teams. The analysis should answer the following questions that assess business values and short-term and long-term ROI:

  • What to adopt?

  • Why to adopt?

  • How to adopt?

  • When to adopt?

The outcome of the analysis must align with the organization's strategic vision in order to adopt the new technology. Along with the key milestones involved in the adoption process, the results should define how to integrate the new technology component in the organization's product roadmap and technology roadmap.

Let's see what should be included when performing an analysis to introduce the Silverlight technology as a new technology component to your organization.

Understanding the Current Challenges of Silverlight

Silverlight has a few technical and logistical challenges that you need to understand and evaluate before your organization adopts it. This section also provides some answers on how to mitigate certain challenges and risks.

New technology

Some organizations are followers that don't like taking a risk with what they see as a new technology. However, Silverlight 2, which was released only a few months before this writing, is pretty mature and has shown promising results and impressive commercial acceptance in a wide range of markets because Silverlight 1 paved the way. This makes organizations think twice before they wait for it to be a bit more mature and proven in the market.

New technology comes up with its own challenges and risks such as the following:

  • Lack of expertise and support

  • Lack of sophisticated and advanced controls and integrated development, testing, and support tools

  • Uncertainty of meeting security policies

  • Risk of failure

  • Large initial investment

  • No proven record and model on the path to success

  • Deployment and maintenance challenges

This book has proved that Silverlight is a new but mature technology that can be adopted in your organization with low risk. One of the key reasons for me to make this kind of statement is that Silverlight is built upon the well-proven and mature .NET Framework.

Enterprise Capabilities of Silverlight Technology

As covered in Chapters 3 and 4, Silverlight features enterprise capabilities and supports the seven key SOA principles—usability, flexibility, simplicity, reusability, scalability, maintainability, and security—for building easy-to-deploy enterprise RIAs as a service. Thus we can confidently claim Silverlight is an Enterprise 2.0–ready technology platform.

Not Yet a Truly Cross-Device and Cross-Platform Technology Platform

Silverlight for Mobile has not yet been released. Silverlight's not being a truly cross-device platform can be one of the excuses for adopting an alternative technology in its place. However, the first release of Silverlight for Mobile is planned for sometime in 2009. The first test release of Silverlight 1 for Mobile has shown some promising features and support from third-party vendors (e.g., Nokia support for Silverlight). At PDC 2008, Microsoft showed some interesting mobile applications using Silverlight 2 for Mobile.

Similarly, there is no official release of Silverlight for the Linux and UNIX operating systems, limiting its ability to be a truly cross-platform platform. However, the Moonlight open source product is on the way (it's currently in beta release), which will enable Silverlight on Linux and UNIX operating systems.


Note Get more information on the Moonlight project by visiting http://www.mono-project.com/Moonlight.


Providing Silverlight-Enabled Machines

One of the challenges for any organization is to make existing machines compatible with the new technology component and take into consideration possible licensing costs.

Microsoft has taken care of this problem already:

  • As mentioned earlier, Silverlight is based on the .NET Framework. So if your organization is running any .NET 3.5 applications, you are capable of running Silverlight applications.

  • The Silverlight 2 runtime installer is significantly small in size (less than 5MB) and takes about 10 seconds to install. There is no prerequisite (except Silverlight plug-in installation) to run any Silverlight RIA. It does not even require the .NET Framework on your machine, since the Silverlight installer includes all the necessary components.

  • There is no licensing cost involved to enable your machine to run Silverlight RIAs. The Silverlight 2 runtime installer is free and available to all users.

Limited Silverlight User Control Library

Silverlight is made to develop rich, interactive Internet applications. The current release includes sufficient XAML controls to develop effective, rich media–enabled applications for the enterprise. However, its control toolkit is not as plentiful as other Microsoft development platform toolkits (e.g., Windows Form/WPF controls, ASP.NET controls).

As explained earlier in the book, Silverlight is not the answer for all. If you use the right technology for the right requirement, Silverlight can take a unique place in your organization's IT platform.

Making a Decision on Adopting Silverlight

How can you measure and decide that Silverlight is the best fit for Enterprise 2.0? There are a number of different techniques you can use to evaluate your need for Silverlight. As a first step, my favorite high-level analysis approach for deciding whether anything is suitable for my needs is the use of a checklist or logical decision-making flowchart. This helps to provide a quick, high-level positive or negative outcome before spending a lot of time on an in-depth analysis.

Performing a Requirements Analysis of the Application

A requirements analysis is a key component for decision making when selecting a technology platform. Different survey techniques for end users and stakeholders can help you perform this analysis. Table 8-1 is a sample high-level requirements analysis checklist for measuring requirements of the Silverlight-based RIA.

Table 8.1    Requirements Analysis Checklist

Image Is the application an RIA?
Image Does the application need to support media (audio, video), documents, and information (all at the same time)?
Image Does the application need to support dynamic content?
Image Does the application user interface need to be customizable at runtime?
Image Does the application need to support different languages?
Image Do the end users use different types of devices and different types of platform (Internet browser and operating system)? If yes, what devices and platforms need to be supported?
Image Does the application need to be developed and deployed quickly and support agile SDLC?

If the answer is yes to most of the questions in the checklist, Silverlight can fit the application requirements. The last question is a bit more detailed, and a detailed answer will help to align the deliverables with the time line.


Note The provided checklist is a sample checklist only. You should expand the checklist to support your organization's needs and circumstances.


Measuring technology Platform Suitability for Your Organization

Based on the application requirements and organization IT implementation strategy, Table 8-2 presents a high-level technical analysis checklist for measuring capabilities of a technology platform.

Table 8.2    Technical Analysis Checklist

Image Does the technology allow development of a rich user interface with support for vector graphics?
Image Does the technology seamlessly support media (audio and video) and content (data and documents)?
Image Is it possible to design an abstracted user interface?
Image Is it flexible and easy enough to change the user interface and service definition, and would it be easy to redeploy?
Image Is the application footprint on client machines lightweight?
Image Does application development support easy customization of the user interface?
Image Does the technology allow single-byte and multibyte character sets to support localization?
Image Does the richness of the user interface not have a negative impact on the application's performance?
Image Does the technology support agile software development models?
Image Is the technology browser independent?
Image Is the technology device and operating system platform independent?
Image Can the technology support reusable UI components to support different types of devices with different screen resolutions and sizes?
Image Can you develop customizable application services?
Image Can service definition, business logic, configuration, and resources be externalized for the customization?
Image Can you develop a service featuring a plug-in/plug-out capability?
Image Can the end user enable/disable and/or customize the service's features?
Image Can you implement abstraction and modular components and services using object-oriented design principles?
Image Can you implement all required security policies?

If your organization needs a technology that includes support for these capabilities, Silverlight 2 is the best fit for your organization.


Note The provided checklist is a sample checklist only. You should expand the checklist to support your organization's needs and circumstances.


Making a Decision on Silverlight

If you receive a positive outcome from the high-level requirements and technical analysis, you need to perform an in-depth analysis (which may include a few items we will discuss in the next section) to make the decision of whether to adopt Silverlight.

If you make a decision to adopt Silverlight for your organization, you should have a detailed impact analysis on existing applications and infrastructure and a definite adoption plan with key milestones aligning with your product and technology roadmap to present to the leadership team.

Key Considerations for Adopting Silverlight

A strategic, well-thought-out execution of an adoption plan will allow easy adoption of any change, such as adopting Silverlight in your organization. You should take the following items into consideration while adopting Silverlight in your organization.

Learn to Listen to heartbeats

As part of an organization and a professional, you have to learn to listen to heartbeats. If you cannot make customers and stakeholders happy in the first release, there is rarely a chance you'll have successful future releases. Usually the application time line is very aggressive and agile. That's why it is critical to learn to listen to the heartbeats of the stakeholders and customers by working strategically and closely with them to discover the features that can provide the most business value.

Start Small

Careful prioritization of requirements based on understanding user and stakeholder requirements will help to define the phased implementation plan (applying the balancing act between requirements and the given time line) for a Silverlight-based RIA.

The "start small" approach can be effective if done properly. To follow this approach, the first release of a Silverlight-based RIA should be focused on delivering maximum business value to gain enough confidence and satisfaction among customers and stakeholders to move forward with future incremental releases. Once you understand the features by heart, you can prioritize them by the business values they deliver in a phased approach.

Don't Make assumptions

Sometimes making the wrong assumptions can kill the whole application. Especially when developing in agile mode, you do not have the time to correct an application developed on such assumptions.

The key to success is to start with a small scope and work closely with customers and stakeholders to validate all assumptions and understand the requirements properly. Prototyping techniques can provide a quick visual overview of future application releases, which can help to validate assumptions and requirements.

Prototypes/Proof of Concepts: Good Approach for Agile SDLC

Development of prototypes/proof of concepts and getting immediate user feedback on them is the best approach for winning user acceptance before deploying the product. Especially while you are introducing a new technology with new requirements or migrating existing applications to a new technology platform, initial prototypes or proof of concepts help to validate assumptions, technical capabilities, and requirements.

Prototyping is also a good approach for effective change management. An early view of the future application release as well as close involvement of users from the beginning of the project can make users comfortable with the upcoming change.

The Right Technology for the Right Purpose

Silverlight is mainly suitable for developing RIAs where applications are media-centric and require a rich, interactive user interface. It is not made for complex business logic with very complex data management screens (for example, with complex Grid controls).

Make practical design decisions, not emotional ones, based on the application's requirements. You do not need to develop the whole application in Silverlight. A modular design approach would enable you to develop different parts of the application using the most suitable technology.

Don't Overengineer

It is very easy to overengineer any requirement and design for the application. As explained earlier, a simplified and balanced approach will increase overall usability and thus productivity and maintainability of the application. An application developed in agile mode usually has many iterations, with every iteration part of an aggressive deliverable time line. It is difficult to deliver, upgrade, scale, maintain, and support an application with a complex design using an iterative approach.

Silverlight supports development of simplified, loosely coupled, service-oriented RIAs. You can follow best practices provided by Microsoft and other experts as well as the guidelines provided in this book to develop simplified Silverlight-based enterprise RIAs.

Microsoft is continuously releasing best patterns and practices for the usage of different technologies in application design and development. In addition to this book, check out the links on understanding best patterns and practices to develop Silverlight-based RIAs in the "Additional References" section.

Test, Test, and Test

Continuous testing and continuous improvement can increase product quality significantly. Rigorous testing must be part of your project plan. You need to perform different types and different levels of testing before releasing any RIAs.

The enterprise-level capabilities of the technology platform enable development of sophisticated, distributed, service-based RIAs supporting different platforms and devices. These types of applications are more likely to break because of a large number of unknowns and the requirement to support a wide range of scenarios.

You have to implement a different strategy for testing RIAs, which means you have to perform different levels of testing. Use as much automation and simulation as you can to expedite the testing. Perform negative testing scenarios, such as what happens when Silverlight is not available on the end user's machine (you can create this test scenario by disabling Silverlight add-ons in the browser).

For more information on the Silverlight Unit Test Framework, see the "Additional References" section at the end of this chapter.

Summary

This chapter focused on organization management and discussed different options on how to adopt Silverlight in your organization. After summarizing key features of Silverlight, the text discussed how to adopt Silverlight in your organization by understanding the current challenges of Silverlight, performing requirements and technical analysis, and giving some practical advice. Thorough analysis, prototyping, simplified design, and proper testing will make for a smooth development and deployment experience.

As explained, Silverlight is a mature Enterprise 2.0–capable technology platform for developing service-oriented RIAs. A proper planning, design, and application implementation approach will make you successful in deploying high-performing and high-quality Silverlight-based RIAs that can deliver maximum customer satisfaction and ROI. Don't forget to prioritize requirements and simplify your design to develop and deploy high-performing, stable, and maintainable service-based RIAs.

I wish you good luck adopting Silverlight in your enterprise.

Additional References

Links from the Microsoft Web Site

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.21.106.7