Rants
There is a lot of chatter on the Silverlight Forums (http://silverlight.net/forums) about the lack of synchronous behavior with some of the .NET BCL that is included. It has made a number of people angry and unhappy. I wanted to venture an opinion about this.
I think that supporting only asynchronous behavior is the right approach. If you've done much client-side web development, you've probably accidently created a tight-looping JavaScript code knows that it is frightfully easy to lockup the browser.
It might be easy to say that Microsoft is protecting developers from themselves, but I don't think its that simple. The problem is that Silverlight 2 is going against a very mature platform from Adobe. If Silverlight 2 applications give the 'impression' of locking up the browser, Microsoft will be blamed and the platform will get a black eye. The press clippings will be about Microsoft, not the application developer. So I think its fair that Microsoft create a platform to create browser applications that don't interfere with the natural operation of the browser. Sure its harder, but we're tough....right?
What do you think?
I finally hit 10,000 XBox Live Gamer Points. How's that for a testiment to wasted time? Burnout Paradise finally put me over the top, though I thought it would be Assassin's Creed or the Mass Effect DLC.
Its that time again. The Atlanta Code Camp is open for registration. I will certainly be doing a bunch of Silverlight 2 talks (though I am not sure how many yet). If you want a day of fun, learning new technologies and a way to meet the cream of the crop of the Atlanta speakers...register now!
At long last, we are happy to announce registration for the 4th annual Atlanta Code Camp is now open.
What: All day geek fest focusing on code and not marketing fluff.
When: Saturday, March, 29, 2008 All day (doors open at 7:30)
Cost: Free! (If you are not satisfied, we promise a full refund.)
Where: Devry University in Decatur - 250 North Arcadia Ave, Decatur, GA 30030 (view map)
Speakers and Agenda: Currently being finalized. Check the http://www.atlantacodecamp.com/ website over the next week to see the finalized version.
To attend the event, you must register at the following link so that we can make sure to have food to feed you. http://www.clicktoattend.com/invitation.aspx?code=126492. If you don't register, we can't guarantee that you will be eligible for food or swag.
In case you missed it, I have an example Silverlight 2 application that I wrote to work out my understanding of Silverlight 2 (for my course http://www.silverlight-tour.com):
The source code is now available for this example. This example utilized a lot of features, both Silverlight 2 and future .NET technologies:
Once ADO.NET Data Services release their new Silverlight 2 library, i'll re-work this example to use that library too and add saving of data to the database.
If you want the source code, you can find it here:
http://wildermuth.com/downloads/aggames.zip
Once you get the source code, make sure and look for the ReadMe.txt file in the AGGames folder to read the instructions of how to get it to compile and run locally.
As you might know, I am an avid baseball fan so I am listening to spring training baseball via MLB.com. I'd heard about the use of Silverlight by MLB being a big deal which is cool. Here's the view of the audio player:

Of interest to me is that the left side (the media player) is indeed Silverlight, but the right hand-side (the game info) is still Flash. I wonder if this is a transition step or if they are going to use both technologies for the long term.
Also, when you choose full-screen, it actually just creates a large window (not Silverlight full-screen mode). I think this is more than just because they are using Flash for the right-hand side...but also because they want to serve ads (many of which are Flash based). This is the reason I've lobbied for a "Frame" control in Silverlight but no word yet...
There is a new MSLabs site that lets you upload your own photos and it creates Seadragon (e.g. DeepZoom) photos from them. It uses Silverlight 2 to display the photos so you can zoom in and out int he different resolutions. Its a nice example of a simple use of the MultiScaleImage control in Silverlight 2.
The only thing that isn't clear yet is whether they will let us use the Seadragon'd photos in our own apps. Maybe soon!
I've been noticing that VS 2008 was crashing a lot for me since installing the Silverlight 2 VS 2008 Tools. It seems that Cider is freaking out but Jon Galloway came to my rescue. If you're experiencing the crashes, go to:
Tools->Options->Text Editors->XAML->Misc->Default View
Check "Always Open in docs in full XAML view".
I would have preferred to just get the XAML.xsd from MS but since its not in the SDK, we have to use the XAML editor (instead of the XML editor) to get intellisense.
I wanted to remind my readers that I am teaching my first Silverlight 2 workshop in Dallas, TX on March 17th-19th so register now if you want to attend. The new workshop covers Silverlight 2 so if you want to get up and running with the new technology, please join me in Dallas!
If you have any questions about the course, please feel free to contact me!
If you want to create your own Seadragon images for use with Silverlight 2, run over and grab the new preview of the composer. I haven't time to dig in deeply, but will soon blog about them.
For those who aren't familiar with this technology, it is a way to compose a file that containts multiple images (usually different resolutions of the same image) so that users can zoom in and out of an image without downloading all of a large image file. Silverlight 2 supports this with a new control called the MultiScaleImage control which is much like the normal image control but supports these different levels of image and support downloading pieces on demand.
The Silverlight SDK contains a couple of interesting gems that aren't appearent in the docs. I'll let everyone espouse the virtues of the runtime for the time being, I'd like to introduce you to a couple of tools in the SDK:
- Chiron: (\program files\microsoft sdks\silverlight\v2.0\tools\chiron): A command-line tool for generating .xap files. If you are building your projects without VS 2008 or want more control over the xap creation (including adding your own files), this is a valuable tool.
- Silverlight.js (\program files\microsoft sdks\silverlight\v2.0\tools\): This file still exists in the v2.0 SDK. Unlike most demos that use either the object tag or the ASP.NET silverlight control, some projects still need a client-side browser detection (and other features) of this JavaScript file. Notably the Silverlight.IsInstalled is a godsend for anyone that needs to optionally show Silverlight content.
What's missing?
- Seadragon: There does not seem to be any Seadragon tools or examples out of the box. Hopefully this is coming soon. To be able to create your own multi-scale images would be really useful right now!
- silverlight.xsd (or wpfe.xsd): You can use the Design surface in VS 2008 to edit your XAML by hand (and get intellisense) but it would be great if we could get the .xsd so we can use the XML Editor (you need the xsd to get intellisense) as its a lot faster than the "Cider" editor.