
Silverlight Overview
What is Silverlight?
Silverlight (formerly known as WPF/E or Windows Presentation
Foundation / Everywhere) is a cross-platform browser plug-in being developed by
Microsoft that is designed to provide a richer internet experience for enterprise
and consumer applications. Silverlight 1.0
has been called a “Flash killer” in that it will provide enhanced animation,
vector graphics, and video playback capabilities. Although these features are interesting for improving
the multimedia experience on the web, the real potential for Silverlight lies
in the feature set to be released with version 2.0.
Silverlight 2.0 will contain a substantial subset of the
.NET 3.5 runtime (also running cross-browser and cross-platform) and will enable
a new generation of smart/rich internet applications. Silverlight 2.0 has the potential to become an
ASP.NET or even an HTML application killer, especially where sophisticated,
feature-rich applications are involved.
Silverlight will essentially host a full .NET runtime engine within a
sandbox on the client computer and allow a .NET smart client application to run
on any platform, all with the same deployment characteristics as a thin-client
application (once the Silverlight plug-in has been installed). Essentially,
Silverlight creates a “best of both worlds” environment, in which users can
experience responsive, media-rich internet applications that leverage local computing
power and resources, while administrators enjoy the benefits of “no-touch”
deployments and centralized control.
Silverlight Adoption Curve
Just like any browser plug-in, Silverlight will face an
initial adoption curve, and the value of the plug-in as a target platform for
development will be determined by the number of end-user installations. However, given the excitement over the
powerful capabilities of Silverlight, the speed of a Silverlight download (20
seconds over broadband), and Microsoft’s vast distribution channel (Microsoft
will likely include it in every Internet Explorer and Windows installation as
well as on every new PC), Silverlight adoption will likely proceed at a brisk
pace and reach high levels of market penetration quickly.
ASP.NET Migration to Silverlight
Once the Silverlight plug-in has gained market acceptance, ASP.NET
application architects are likely to ask why they should prefer development in
ASP.NET rather than Silverlight. On the
one hand, they could write a “Web 2.0” application using AJAX, JavaScript, HTML, CSS, and a back-end
programming language, with the necessity to manage session state and
scalability on the server and with potential cross-browser compatibility
issues. Alternatively, they could write
a Silverlight application in a pure .NET environment with a WPF (WinForms-like)
UI that is highly functional and has clean model-view-controller separation.
A .NET Silverlight application will be easier to write, more
responsive, more scalable, more performant, and just as easy to deploy as an
HTML application once the Silverlight plug-in has been installed. Cross-platform objections will be mitigated,
as Silverlight will be supported across all major browsers and operating
systems. Meanwhile, HTML / CSS / JavaScript will continue to have
cross-platform issues given each browser’s propensity to interpret code in a
slightly different manner.
Furthermore, with Silverlight, offline or partially
connected applications are fully supported, as the application actually executes
in a sandbox on the client and can be disconnected from the internet. Since the application state is maintained on
the client, the server does not need to be keep track of the client state and
the application becomes far more scalable, easier to develop, and simple to
load balance.
Smart Client Migration to Silverlight
Those architects currently building smart client
applications may wish to target Silverlight as a platform if they desire broad
cross-platform penetration of their application. Since a Silverlight application is inherently
smart client, the basic programming model remains the same and only differences
in the Silverlight runtime from the full .NET runtime need to be addressed.
The two major differences in the Silverlight runtime are its
lack of WinForms support (in favor of WPF) and lack of support for database
connectivity. The decision not to
include WinForms in Silverlight was made to reduce the download size, simplify
cross-platform porting of the .NET runtime, and because WPF is the natural
evolution that will eventually replace WinForms.
The decision to remove support for database connectivity was
made since a Silverlight application will be deployed as an n-tier internet
application, and it is poor practice to expose the database directly to the
internet. Connecting to the database in
a 2-tier or client-server model across the internet exposes both the connection
string as well as the database port to the entire world and creates inherent
security and scalability issues.
Instead, a Silverlight application will fetch data using a web service
or other equivalent n-tier data provider (such as DevForce).
DevForce and Silverlight
DevForce will dramatically simplify the development of a
Silverlight application. All of the
value that DevForce provides in building .NET applications today will also
apply to building Silverlight applications.
In addition, the DevForce persistence layer and Business Object Server
will make accessing data in a Silverlight application far simpler. Instead of having to write and expose a web
service for every data access, a developer will simply query for objects and
DevForce will automatically fetch them from the object server, send them across
the internet, and cache them on the client.
Applications currently built with DevForce are well
positioned to transition to Silverlight in the future. The existing business objects, business
logic, and best practices will remain the same and carry forward into the
Silverlight world. The persistence layer
in DevForce will have nearly the same API regardless of whether the Silverlight
or full .NET runtime is being used as the host environment. This means developers can start building
their applications with DevForce today, and choose later to deploy as an n-tier
Silverlight application without having to rewrite their persistence code.
A single code base can also be used to support the
Silverlight runtime as well as the full .NET runtime. In scenarios where cross-platform or zero-deployment
characteristics are required, the Silverlight application can be used. When users are ready for more powerful
client-side features such as Outlook/Office integration, high volume offline
storage, or access to advanced third-party components, they can upgrade to the
full featured .NET application.
When Will Silverlight be Available?
While Microsoft has not announced a release date for
Silverlight 2.0, a beta version is scheduled for release in March 2008, and it
is speculated that there will be a final release in the third or fourth quarter
of 2008. IdeaBlade has a close
partnership with Microsoft with early access to all Microsoft technologies and
will be supporting Silverlight development with DevForce as soon as it is
released.