Silverlight 3 Beta - Downloads You May Have Missed
Everyone that is interested in Silverlight 3 Beta development has probably checked out all of the core items in the release: Silverlight 3 SDK, Silverlight 3 Tools for Visual Studio 2008, Blend 3 Preview, Silverlight Control Toolkit (March 2009 version). There have been several other releases that are related to Silverlight 3 you may have missed and are a little less obvious if you are new to Silverlight development. This blog post deals with the items that are a little less obvious but important to know about. Not all of these downloads are targeted for Silverlight 3; however, they should work with Silverlight 3 Beta.
"There have been a ton of tools released
with Silverlight 3. Did you miss any of them?"
Silverlight includes several different ways to consume data (most of them being via services). There have been three new updates to the data service frameworks available for Silverlight released recently:
- .NET RIA Services - This is a new n-tier design framework released during the MIX 2009 Conference. This framework allows you to factor more of the work into the service tier for business logic, validation, errors, querying, etc. This framework is new to the Silverlight 3 Beta.
- ADO.NET Data Services 1.5 CTP1 - This is a preview version of the upcoming update to ADO.NET Data Services which provides client and server enhancements for Silverlight developers who create service applications. It is very similar to .NET RIA Services (In fact, many people think these are the same; however, these are DIFFERENT frameworks)
- WCF REST Starter Kit Preview 2 - Yet another data access framework from Microsoft. This framework targets WCF and applies REST architectual patterns for service access. In my opinion, WCF with REST gives you the most flexibility and control when creating data aware applications with Silverlight. Using interceptors, you can control every aspect of message headers, creation, caching across the channel stack. The WCF REST Starter Kit will be included with .NET 4.0/Visual Studio 2010.
- IdeaBlade DevForce - This is a 3rd party framework that works along the same lines as ADO.NET Data Services and .NET RIA Services. They have some additional tools that take away some of the hassle of developing data access layers with Silverlight. However, they are not FREE and they are a 3rd party framework. They do have positive reviews. The biggest difference between them and WCF REST, ADO.NET Data Services 1.5 and RIA .NET Services is that their product is out now and ready to be used. If you want a Line of Business framework that is ready for production, give them a look.
- IdeaBlade web site
Architectural Pattern Frameworks
Silverlight is a plug-in that allows you to do a mix of web/winforms development. However, its similarities lend itself to the same UI patterns that are well documented in WPF. Furthermore, Silverlight as a plug-in needs to be hosted in a web environment. Architecting the data flow from the host to the plug-in is also important. This is where the MVVM and MVC architecture patterns apply.
- ASP.NET MVC 1.0 - If you are working on the web, you have to host your Silverlight application somewhere. ASP.NET MVC 1.0 allows you to build Model-View-Controller architected applications inside ASP.NET. If you are implementing REST access or URL routing navigation inside your Silverlight application, ASP.NET MVC will wrap like a glove around your Silverlight XAP files.
- Composite Application Guidance (also known as Prism v2) - This is a composite framework for Silverlight and WPF applications. Microsoft provides guidance for enterprise development using the MVVM pattern and implement Commanding for Silverlight. This framework also includes a complete StockTrader example.
- Microsoft Azure (March 2009 CTP) - Visual Studio 2008 Tools have been updated if you want to write applications in the "Microsoft Cloud". Mesh Enabled Web Applications allow you to use Silverlight as the front-end for Microsoft data services.
Media Streaming with IIS 7.0
Silverlight 3 enhances the multimedia experience by providing true 720p HD streaming in full screen, hardware accelerated video processing and smooth streaming. Many of these features were pioneered during the 2008 Olympics broadcast in NBC. Microsoft has made this technology available to anyone who wants to host a Silverlight experience using IIS 7.0
- IIS Media Services - Allows IIS 7.0 to be turned into a web server that can stream HD quality Silverlight media streams with smooth streaming technology that powered the NBC Olympics 2008 Site.
- UX Media Simulator - This is a media player that allows you to graphically tune and visualize what happens when your Internet bandwith drops and Silverlight smooth streaming kicks in. Pretty good tool to use to debug your content if smooth streaming is important to you.
Silverlight's unique ability to run on the client while hosted on the web has provided it with many interesting capabilities that were previously hard to achieve. Here are some tools that make our lives easier for developing in Silverlight:
- Virtual Earth Silverlight CTP - This set of assemblies allow you to expose and control Microsoft Virtual Earth Maps via Silverlight. It is a very cool add-on for Silverlight if your applications require maps.
- Silverlight Spy 3 - This is an absolute MUST HAVE for any Silverlight developer. Think of it as Fiddler/.NET Reflector for Silverlight applications. It has been recently updated for Silverlight 3 Beta.
Add-Ons and Code Examples
Microsoft has made a lot of the features really extensible in Silverlight 3. Microsoft showed off many features in Silverlight 3 that can extend the features provided.
- Expression Web SuperPreview for Internet Explorer - This tool allows you to test/debug your applications in IE 6, 7 and 8. It is very cool and a must for any online compatibility testing with IE. Most Silverlight applications remain web hosted so this applies to Silverlight as well.
- Expression Blend 3 Sample Behaviors - Expression Blend 3 includes something called behaviors. This gives designers the ability to drag and drop and add "triggers/events" to the design objects and have them "behave" in certain ways. During MIX 2009, Microsoft showed off some real cool behaviors like adding physics to object by simply dragging and dropping it on top of a control.
- Silverlight 3 Pixel Shaders - Silverlight 3 now supports Pixel Shader 2.0. This allows you to write very interesting and powerful screen manipulation using HLSL. For example, some of the nice Windows Aero Effects in Vista are done using pixel shaders. There will no doubt be a CodePlex project created for Silverlight Pixel Shaders. For now, many of the existing WPF pixel shaders can be made to work in Silverlight 3.
- Slidentity Silverlight 3 Application - Slidentity is a cool Silverlight 3 Beta application that shows off many of the new features. It is an end to end example with source code.
As you can see, there has been a lot of stuff released around Silverlight 3 that is well beyond the "core release". It can be very easy to get lost with the amount of tools/frameworks/apps out there. If I have missed any obvious ones, please e-mail me and I will add it to the list.