In my “spare time” I’ve been recording some screencasts about Silverlight 2 Beta 1 along with my colleague Mike.
This managed to reach critical mass in that we’ve now built up a list of 50 screencasts so I thought it was definitely time to share rather than plough ahead because I imagine that it won’t be too long before they all get to be out of date. Things move pretty fast.
So, I’ve built a fairly simple custom application ( in Silverlight 2 Beta 1 of course 🙂 ) which allows for playing and download of those videos.
Note: I’ve noticed that if you don’t have Silverlight 2, the application is currently prompting you to install Silverlight 1. I’ll get that fixed but in the meantime, visit here to install Silverlight 2 B1 before launching the application. I’ll fix the installation experience.
Just as an aside, the application itself and all of the videos that it streams are all hosted up on Silverlight Streaming although the zipped WMV files for download are hosted from my site because I couldn’t get a good way to extract a URL from Windows Live SkyDrive so you might well find that streaming a video gives you a better result than downloading one because there’s a lot less infrastructure behind my site than Silverlight Streaming 🙂
Note also that for streamed videos there is a maximum length of 10 minutes at Silverlight Streaming so for the few ( 7 or 8 ) videos that are more than 10 minutes long, I split them at 9 minutes and the application automatically loads the second part of the video when the first part ends.
The metadata for the application all starts off in an Excel spreadsheet where I’ve associated it with a schema in order to export as XML. I can then take that, package it into my XAP file and load it up using LINQ to XML at runtime before (pretty much) databinding everything from it. Very cool.
Here’s a topic list;
- “Hello World” with VS and Blend
- Anatomy of a Silverlight Application
- The <asp:Silverlight> Control
- Controls – What’s In the Box?
- Why Controls have a Content Property
- Width, Height, Margin, Padding, Alignment
- Laying out Content with Grid
- How To Use a GridSplitter
- Laying out Content with StackPanel
- Laying out Content with Canvas
- Embedding Video and Audio
- Handling Media Events
- Simple Data Binding of UI to .NET Classes
- List Based Data Binding
- Data Binding UI to .NET Classes with Converters
- Using Custom Types in XAML
- Applying Simple Styles to Control Look and Feel
- Templating a Simple Button Control
- How to Build a Simple User Control
- Controlling Animations & Storyboards
- Accessing resources from XAP/DLL/Site.
- Asynchronous Downloads with the WebClient Class
- HTTP request with HttpWebRequest
- Making Requests Cross-Site to Another Domain
- Making Calls to Web Services
- Calling Web Services over HTTPS
- Using Sockets
- Using File Dialogs & Files from the User
- Using Isolated Storage for Application Data
- Accessing and Changing Isolated Storage Quotas
- Modifying the HTML DOM from .NET Code
- Handling HTML DOM Events in .NET Code
- How to Pass Initial Parameters from the Web Page
- How To Display A Custom Splash Screen
- Reading/Writing XML with LINQ to XML
- Dynamically Loading Assemblies/Code
- The <asp:MediaPlayer> Control
- More on the <asp:MediaPlayer> Control
- Loading Media at Runtime
- Hosting an Application on Silverlight Streaming
- Using Multiple Threads with the BackgroundWorker
- Making Use of Custom Fonts
- Getting Started with MultiScaleImage (DeepZoom)
- Getting Started with the DeepZoom Composer
- Getting Started with the DataGrid
- Insert, Update, Delete with the DataGrid
Enjoy the videos. All feedback welcome. All mistakes, bugs etc. are mine and, if you let me know, I’ll try and fix them as time allows.
Note – I’ve tested a little in IE7 and Firefox 18.104.22.168 on my Vista machine and also in Firefox 22.214.171.124 and Safari 3.1 on my Mac and the app seems to “basically work” in those places.