You may be pleased to know that we've just updated Video.Show with a bunch of changes. The 1.0 Release Candidate build is now available for your downloading pleasure from Codeplex.
If you haven't seen Video.Show before, I'd encourage you to check it out. Vertigo (the company who we commissioned to build this) have a great web-site with further information and plenty of screenshots.
Notable changes in the RC build include:
We're close to releasing this as a production-quality sample. We're currently doing a security audit on the code to make sure there aren't any nasty SQL injection-type issues. As mentioned above, we're also working on some documentation and other pieces; we're doing some componentization work to make it easier to swap various pieces out (e.g. to replace the Silverlight Streaming hosting with a local IIS / Windows Media Server-based hosting model). What else should we be doing? Any of you have plans to use this? Tell us what we're missing!
It's been gratifying to see how much excitement there is out there about Silverlight. We've barely started the engines yet, but we've already had a number of big sites launch their first Silverlight experiences, and of course plenty of stuff underway that we'll be revealing over the coming months.
Many .NET developers are naturally interested in the next release, which is when we'll introduce support for C# and Visual Basic development based on the .NET Framework. Although we haven't released any new major updates to the alpha developer preview of this functionality since MIX07, we're opening the kimono a little today to provide a bit more transparency in our schedule.
Firstly, we're announcing today that we're renaming Silverlight 1.1 to Silverlight 2.0. As we've been building out the feature set for Silverlight v.Next, it's been becoming increasingly clear that this is a big release. Adding together the Common Language Runtime, Base Class Libraries, Dynamic Language Runtime, the UI Frameworks, DRM, and a bunch of other features I'm not going into at this stage, it's apparent that if this doesn't count as a major version release, the bar will be set so impossibly high that we'll never be able to name a Silverlight release as anything other than version 1.x! At the end of the day, this is just branding - it's not really "news" in its own right, but of course you'll see us start to refer to the v.Next release as Silverlight 2.0.
Secondly, I wanted to write a bit about where we are in the development process. Internally, we're just completing our third development milestone. We have just one more milestone to go before MIX, which is when we're going to have a new public release available. We'll also have a non-commercial go live license ready by then. For today, Silverlight 1.0 is the appropriate choice if you want to build a site that needs to go into production within the next few months, but by the time we ship our next public preview release, we'll be at a point when it will be appropriate for developers to start building .NET-based solutions.
So what's coming in Silverlight 2.0? I think the thing that excites me the most about this release is the scale and breadth of UI innovation going into Silverlight. In WPF, we have a really powerful platform for building Windows desktop applications, and it will remain the "Ferrari" that contains the highest level of graphical functionality. Silverlight takes that same UI framework and transports it to the web, enabling RIA developers to create web-based applications using all the same skills as they need to build sophisticated Windows client applications. This unification of the framework across web and desktop is not easy to accomplish; many of the breaking changes that you'll see between Silverlight 1.1 Alpha and the Silverlight 2.0 Beta have been introduced to bring about far greater consistency between Silverlight and WPF. The goal is to make it really easy to take a Silverlight application and bring it to the desktop: you shouldn't have to completely rewrite the code to reach across the barrier to an offline solution.
In the Silverlight 1.1 Alpha, the UI framework side was pretty limited. Although we had the likes of MediaElement, Path, TextBlock, etc., it was a small fraction of what WPF provides in this regard. We now have a extensible control framework, two-way data binding, templates, styles, all the standard controls (TextBox, ScrollBar, CheckBox, RadioButton etc.), multiple layout containers (Grid, StackPanel, Canvas). In short, if you're familiar with WPF today, you'll be right at home with Silverlight 2.0.
Moving forward, if you want to build a rich Internet application, Silverlight should absolutely be at the top of your list for consideration. No other platform will offer such a rich UI framework, and all the data templates and styling capabilities, coupled with the power of the .NET Framework and base class libraries, along with an easy migration path to a full unrestricted Windows desktop solution.
So how can you find out more about Silverlight 2.0? Well, it so happens that MIX08 registration has just opened. We're going to blast open the doors about Silverlight and a bunch of other new web products at this conference. Last year we sold out far earlier than most people were expecting. Don't miss out this year - now is the time to get signed up!
As we plan the next release of Windows (turns out that Windows Vista wasn't the last release of Windows as we know it!), we're trying to better understand how folk are using our deployment and configuration technologies. If you've got twenty minutes to spare and are interested in helping the Windows team understand your experiences in this area, we'd love to hear your feedback. Here's the full request:
The Windows Application Platform product team would like your feedback to make the management and deployment of applications you develop for Windows better. By filling out this survey you will also have the opportunity of winning a $200 credit towards the discounted software at the on-line Microsoft company store (one respondent will be selected at random for the prize). This survey has questions as to how the applications you create are deployed and managed (e.g. installation, stability, performance, etc). Your feedback will help us identify which activities are important to you and highlight areas for improvement.
The Windows Application Platform product team would like your feedback to make the management and deployment of applications you develop for Windows better. By filling out this survey you will also have the opportunity of winning a $200 credit towards the discounted software at the on-line Microsoft company store (one respondent will be selected at random for the prize).
This survey has questions as to how the applications you create are deployed and managed (e.g. installation, stability, performance, etc). Your feedback will help us identify which activities are important to you and highlight areas for improvement.
If you're interested, the survey is here. Thanks in advance!
One of the favorite things about my job is being able to share really cool new content with you all, and so today is a good day to end the week on! Since we completed the Family.Show WPF reference sample, we've been working away in partnership with a great developer team from Vertigo Software on a Silverlight video scenario, and today is the day when we get to open it up to the developer community in the form of a first public beta.
Video.Show is an end-to-end solution that provides a reference-quality sample for user-generated video content sites. Taking advantage of all of our latest technologies: .NET Framework 3.5, ASP.NET AJAX, LINQ, Silverlight, Expression Encoder and Silverlight Streaming, Video.Show provides support for uploading, encoding, tagging, viewing and commenting on videos. Since not many people are building video sites like YouTube that have millions of videos, we've optimized the experience for sites with tens to thousands of videos.
The version published today is a beta release; we've still got a few minor tweaks ahead of us before we're ready to call this final. Nevertheless, if you're interested in using Silverlight to build out a video site, it's a great starting point. The screenshots on the right-hand side of the post give you a quick idea of the capabilities of this application. Here's a short feature list:
We'll continue to extend this solution over the next couple of months and eventually merge it into the Software + Services Blueprints initiative that was announced at TechEd Developer in Barcelona last week. But for now, we'd love you to download it and try it on your machine; give us feedback on what you like and don't like about it so we can improve it for future releases. At this point in time, the solution is available in source code form, but by the time we release we'll have a live production site in place where you can visit to see the site in a real-world setting. Since it's licensed under the Microsoft Public License, maybe one of you will have a live site using it even before we do!
Download Video.Show here from CodePlex. Have a great weekend!
I've seen isolated reports of the Silverlight plug-in expiring here and there today from a few developers who have the 1.1 alpha installed on their machine. The RTM version of the Silverlight core is 1.0.20926. If you have any other version number on your machine than 1.0.20926 or 1.1.20926 (check by right-clicking on some Silverlight content and choosing "Silverlight Configuration"), you're running a pre-RTM release and you should update. (Since you're running a pre-RTM release, the safest thing to do is to uninstall and reinstall.)
For those who are interested in more detail, let's explore the technical differences between the 1.0, 1.1 alpha and the final 1.1 builds. Silverlight 1.0 is at its heart a XAML rendering engine that supports media, 2D graphics and animation, all orchestrated by JavaScript. Earlier this year, we released a 1.0 beta of the rendering engine, along with an alpha release of 1.1 that adds support for the CLR and dynamic languages. Both have exactly the same core engine - the 1.1 release just has extra stuff in it as well.
As we released new builds of Silverlight 1.0 on the road to RTM, we updated the corresponding 1.1 bits to match the new rendering engine, without making any other changes. Here's a diagram - the top row shows the 1.0 builds, the bottom row shows the 1.1 builds. Notice that the CLR is identical in all 1.1 builds:
We automatically updated 1.0 RC builds to the latest release through to RTM, so if you originally had 1.0.20724 on your machine, you should now have 1.0.20926. (If you're one of a very small number of folk who received a private build, then you would have needed to manually auto-update).
However, since the 1.1 plug-in was released as a developer "alpha" rather than a broad "go live" consumer preview release, we didn't auto-update between 1.1 builds. With hindsight, maybe that was a mistake, since there are obviously a few folk out there who are running a 1.1 build with pre-RTM rendering engine bits without realizing it. To be clear, if you're experiencing problems and you installed a 1.1 alpha build on your machine, check the version number. If it's less than 1.1.20926, uninstall and grab a fresh version.
Moving forward, we've forked the source code into a 1.0 servicing branch and a 1.1 branch. We'll use the 1.0 servicing branch to fix bugs customers report to us as they come up; you can expect to see a maintenance release in the next month or so. Our 1.1 branch is where we're currently doing the core development work; all new feature work is being checked in here, regardless of whether it's related to the CLR or the rendering engine. Whether you're using JavaScript or .NET as your programming model, you'll get the benefits of the 1.1 rendering engine. Sites written for 1.0 will run just fine on Silverlight 1.1 - we're not breaking compatibility, just adding new features and making incremental improvements to existing ones.
How do you check what version an end-user has installed on their machine? Well, you can use the Silverlight.IsInstalled() method to identify whether a minimum version is installed; more details on this method are available in the Using CreateSilverlight.js and Silverlight.js topic on MSDN. This supports the use of a two-part or a four-part version notation for the input parameter, so you can get very specific and check that the user has at least 1.0.20926 on their machine (i.e. 1.0 RTM).
This is lots of detail that you'll probably never need to know about, but it's always interesting to understand what's going on behind the curtain. Hope this offers some useful insights.