PDC 2008 - Silverlight 2 Wrap-Up
PDC (Professional Developers Conference) 2008 is over and there was a lot of information released over the course of the 4 days. You probably have heard some of it if not all of it. I wanted to write a post to summarize the information pertaining to Silverlight either directly or not directly that was released last week. Over the course of the week, Silverlight developers were bombarded with information that was coming out and this post's goal is to help developers get a handle on all of the information. Here is the summary of what has been released during the week of the PDC 2008:
- Silverlight Tools for Visual Studio 2008 SP1
- Silverlight Control Toolkit
- Expression Encoder SP1
- PDC Silverlight Videos (directly related)
- PDC Silverlight Videos (indirectly related)
- Silverlight 2 for Mobile Devices
- WCF REST Starter Kit
- Silverlight and SEO
Silverlight Tools for Visual Studio 2008 SP1
Silverlight Tools for Visual Studio 2008 SP1 were released over 3 weeks ago. However, for those people who are detailed oriented, this release was labeled as RC1. I posted a question on this on the forum the day this was released. Apparently, this was NOT the final release of the tools. On 10/30/2008 Microsoft released a new build of the Silverlight Tools. I don't think anything has changed, but regardless, you will want to update your tools to this new build. The new build of the tools can be downloaded here: http://www.microsoft.com/downloads/details.aspx?FamilyId=c22d6a7b-546f-4407-8ef6-d60c8ee221ed&displaylang=en
Silverlight Control ToolKit
The Silverlight Contol Toolkit was announced at the PDC 2008. It has a bunch of great controls, themes and charting cababilities. The big news is that the toolkit is open sourced and it you can extend it or build your own controls. Not only is it a great way to enhance your current Silverlight applications, but it is also a great way to learn about Silverlight control development and architecture. Shawn Burke's team has also included a bunch of unit tests using the Silverlight Framework so you can learn how to implement some TDD with Silverlight. You can download the toolkit here: http://www.codeplex.com/Silverlight
Expression Encoder SP1
Expression Encoder SP1 has been released. I like the approach Microsoft took by adding service packs to both Blend and Encoder rather than forcing people to upgrade. Therefore, people who have invested in version 2 are getting their money's worth. SP1 of Encoder allows you to create custom Silverlight 2 video player skins. It also includes H.264/AAC support. The service pack is available here: http://www.microsoft.com/expression/try-it/default.aspx?filter=servicepacks (Note: Expression Encoder also has an Express version which will work after the trial expires allowing you to do some basic things.)
PDC 2008 Silverlight Related Videos Online
If you weren't at the PDC, Microsot published the videos from the 4 days to the web. You can watch the PDC 2008 Videos online here: https://sessions.microsoftpdc.com/timeline.aspx. Here are the videos that are either directly or indicrectly related to Silveright development and I have some notes on the ones I watched.
If you are an architect, development manager, etc., I highly recommend watching some of these videos and then getting your team together for a lunch or a meeting and watching this together. I find this spurs developers thinking together about the current and future technology earlier.
PDC Silverlight videos (directly related to Silverlight)
PDC Silverlight Videos (indirectly related)
Silverlight cannot consume data directly from objects or databases located on servers (even if it is the same server Silverlight is hosted on). Silverlight is all about consuming data from services. These videos are an absolute MUST to watch if you are a Silverlight developer and consume data from services.
-
-
-
Excellent video that deals with ADO.NET Data Services development and the Entity Framework. This video shows some of the cool interceptors for security and enhancing services that exist in ADO.NET Data Services. If you are building a simple Silverlight client that needs, call batching, smart data and/or security concurrency management, ADO.NET Data Services provide a lot of great features here.
Silverlight 2 For Mobile Devices
Microsoft is porting Silverlight to mobile devices. This is a really welcome feature. Many users who have an iPhone know that Apple is currently "blocking" the availability of Flash to mobile devices. This is where Silverlight has a potential advantage and put a dent in the Flash market share by targeting mobile devices. Most of this information is coming from this video here from the PDC: http://channel9.msdn.com/pdc2008/PC10/
Here are some of the highlights from the PDC:
- By 2010 statistics show that there will be about 4 billion mobile phones in the planet. There is a huge opportunity here! So how do you write applications that are rich to thousands of users? Silverlight :)
- Silverlight 2 (That's right; the same Silverlight 2 on desktops) has been announced for the mobile space.
- Plublic CTP will be available in 2009 (Q1). My guess is that they will release this at the same time as MIX 2009.
- The really cool part is that the SL 2 on mobile requires NO CODE changes to work on a mobile device where Silverlight is installed!! That is really nice and very powerful and one code works on both the desktop and mobile devices.
- The Baby Smash demo really drives this point home further. So not only can you share code between WPF and Silverlight 2, you can share code between WPF, Silverlight 2 and Silverlight 2 Mobile! That is impressive; three platforms with one codebase.
WCF REST Starter Kit
One of the ways that Silverlight can consume data is through RESTful services. WCF was part of the .NET 3.0 framework back in 2006. In 2006 REST services were just starting to get traction as many Web 2.0 companies used this design as a preferred method for their service APIs. WCF .NET 3.5 has added some features for REST services. However, there was still a lot of plumbing code in order to write proper RESTful services in .NET 3.5. The MySpace API is a great example of what can be done with WCF and REST on a very large implementation.
In order to make writing some of the WCF REST services easier, Microsoft released the WCF REST Starter Kit during the PDC.
The WCF Starter Kit makes building RESTful services a lot easier. It also shows the impressive architecture of WCF. It can be enhanced with using attributes and interceptors to build a REST architecture for services.
Silverlight and SEO
Several months ago Google announced that it can now crawl Flash-based applications. This is pretty important because now Flash-based content is searchable and this is critical to any revenue model that is based on high-page ranks on Google (sales, ads, etc). Silverlight currently cannot be crawled by Google (maybe in the future). However, there are couple things you can do right now to make sure your Silverlight application gets crawled by Google:
- Ensure that the page hosting your Silverlight content has proper meta tags and place the SEO there.
- You can also place a page for a "deprecated" client. Therefore, if you receive a hit from a user that doesn't have Silverlight, you can bring them to an HTML page rather than the full Silverlight client. This way when the Google robot tries to crawl your site, it will crawl it based on the HTML page.
This information is really important for developers that are jumping into RIA. Most architects are ready to jump right into the technologies and try to solve problems with RIA. However, things like SEO sometimes might fall through the cracks and might not be acceptable to a client. Check out this post for more information on Silverlight SEO Optimization: http://nerddawg.blogspot.com/2008/10/search-engine-optimization-for.html
Silverlight 2.0 - Concepts To Become A Silverlight Master (Series Part 3 - Blend)
Series Articles:
In order to get a better understanding of how Silverlight applications are designed from a UI perspective, let's take quick look at the Silverlight architecture.
Notice under the WPF Heading listed are Controls, Data Binding, Layout & Editing. You might be wondering, why does this say WPF? The reason is Silverlight essentially leverages a subset of WPF technology (some parts are different) for the items mentioned. Before it was branded with the term Silverlight, it was actually known as WPF/E. Therefore, one can see that Silverlight has its roots in WPF. Furthermore, note how the WPF technology stack replaced the UI Core in Silverlight 1.0. WPF has been around since 2006, when .NET 3.0 was released. However, WPF adoption has been slowed because of poor UI tool support. In Visual Studio 2005, it was complete mess to try to write a WPF solution. Improved WPF support was finally added in VS 2008 (more is coming in .NET 3.5 sp1). However, Microsoft realized that in order to create rich/interactive applications, a first-class design tool was needed. This is how the Blend product came to be.
The Blend product is part of Microsoft's Expression Studio, which is a collection of first-class design tools. Microsoft Blend is a design tool that makes creating & editing XAML-based applications easy. Both WPF & Silverlight use XAML to declaratively control the controls, binding, styles, animations, etc., for the UI. Visual Studio is a great development IDE and has some basic design features. However, adding a full-blown designer inside the VS shell would have had poor results. Blend has been created with the designer in mind and the latest version(s) are actually written inside WPF! Expression Studio is a much needed application. Microsoft is competing primarily with Adobe AIR/Flex products. While Microsoft has the developer tools on its side (Visual Studio, C#, WCF, etc.), Adobe is the gold standard for graphical applications. Because Adobe products such as Flash, Illustrator, PhotoShop, etc., are tightly integrated and provide a designer first-class tools, Microsoft needed a strong design suite of their own.
Seperating Blend into its own product allows graphic designers to create/layout/style the application while the developer focuses on the code/data communication, etc. However, in order for this to happen, Microsoft had to leverage the ability of XAML to declaratively control layout, data binding, styling, templating, resource management, etc., inside Blend. Simply creating a second product and saying this is for designers and Visual Studio is for developers would not go over well! I think of it this way: Wherein some IT shops, DBAs are the only ones to touch the database and app developers only touch the the code. Except inside Blend, the seperation is the XAML/UI from the code behind. Hopefully, this makes sense as to why Microsoft decided to seperate the heavy design operations to another product.
By now you are probably asking yourself: So what can Blend do for me?
- Currently the Silverlight 2.0 SDK adds very little design support inside Visual Studio 2008. A developer can definitely lay out a simple application; however, harnessing the true power of Silverlight with animations/effects/styles/templating is not all there. As I mentioned above, I don't believe this will change in the RTM for the simple fact that it would be a real mess to try to add all the tools that Blend provides inside the VS shell.
- Silverlight 2.0 uses Blend 2.5 (This might change when the RTM version comes out) and this gives Silverlight 2.0 first-class design support for layouts, controls, animations, styling, templates and resource management. All these items that a developer would normally have to code by hand inside XAML are done for you simply using the Blend product.
- Blend has excellent integration with Visual Studio 2008. A developer can write a piece of code, jump to Blend, add a new control/user control and jump right back into Visual Studio and add some code behind. This is all done very seamlessly and the integration is fantastic. Blend can even build the entire Silverlight solution and perform test runs inside Blend as well! Even as of Beta 2, this integration is first class and I cannot stress the power of this feature enough.
- Blend is much more than just dragging and dropping a button and changing a color or a brush. The true power of Blend comes with the ability to spice up an application with animation/transitions/styles quickly giving a Silverlight applications that fluid/liquid interface that many compare to the iPhone for example. Blend does this by using a set of tools that expose XAML functionality (Remember, Blend just writes XAML). For example, creating a new button that looks completely different but behaves like a button is straightforward or attaching a set of transitions for mouse events is easy simple. These kind of additions not only make the UI look modern but can add visual queues, emphasis, enhanced spacial layout that were harder to do but add greater value to the application.
- Blend is not just for a designer. Not every IT department is going to have a dedicated designer able to strictly focus on pretty designs. I am not a designer. However, I dabbled with PhotoShop, GIMP, etc., and I could not do much beyond the tutorial I was using. Blend makes creating a first-class design clear once you have a good understanding of the capabilities of the product. The product definitely has the designer in mind; however, even a developer can use it and extend a Silverlight design.
- Creating advanced custom controls usually has been left to 3rd party libraries. Furthermore, creating professional looking controls demanded knowledge of GDI+ (which wasn't easy). Creating professional custom controls/user controls has never been easier with Blend. Personally, I have created simple mashup controls to pretty complex grid controls and it was actually pretty fun. In my opinion, Blend is really going to give some of the 3rd party controls a run for their money in Silverlight 2.0. The tools inside Blend drop the learning curve signifigantly for creating custom controls.
- Blend essentially gives you the tools to bring Silverlight applications to life and to design Silverlight applications using best practices for future enhancements, data binding, templates, etc.
From the list above, one can see that Expression Blend does a lot for you! This is why I feel it is a must, even for a developer, to learn Blend real well (unless you are the sadistic kind and like to crack open Notepad and hack XAML). Understanding Blend will allow a developer or a designer to bring their applications to life and harness the full power of Silverlight.