As you may know, I've been tracking the learning process through this "diary" of learning Silverlight with periodic blog entries.
I recently began working with Silverlight 1.1 (Alpha) in anticipation of my presentation at Tech Ed, and while I was very excited to do so, when I sat down to write my very first 1.1 application I suddenly realized that I wasn't quite sure where to begin. I understood it all in principle, but I used to work for a very smart guy named Pat Johnson who was fond of saying "In theory, theory and practice are the same, but in practice, they never are."
My solution was to recreate the Drag and Drop application I had built in 1.0 as a new application in 1.1 and the result is posted under our How Do I videos for 1.1. This turned out to be a great way to break through the inertial barrier to 1.1 and to get a visceral feel for the differences between 1.0 and 1.1. I recommend this approach to those of you who have been programming in 1.0 and are ready to start tinkering with 1.1; start by rewriting something you've done in 1.0 (but make sure it is something you are very familiar with). The subtle differences are very illuminating.
The first thing you notice is that the "sample application" (the button and its animation) are no longer provided for you. Just as well – less to clean out.
The next thing you notice is that the XAML works "same as it always was." On the other hand, every XAML object can be represented as a CLR object (explored in a subsequent and forthcoming video).
The code-behind is different. In the original Scene.XAML the code behind was a js file, In my new version, it is a .cs file and thus I move into a fully type-safe object-oriented program and "mind set" Thus, I no longer use untyped variables, but instead I use member variables, controlling their visibility and their type (e.g., private double beginX). If you are already a C# programmer (you are, aren't you?) this is a wonderful change. (If you are not, you face an interesting question: should you buy a C# book now, or wait for the new books on C# 3? Personally (speaking as an unbiased author of a C# book) I'd buy both!)
Another nice thing in 1.1 is that when you create an object in the XAML file and you save the file, it shows up in Intellisense in the .cs file, complete with its properties, event handlers, etc, and Intellisense makes adding event-handlers absurdly easy (see the video).
There will, eventually be three major changes from 1.0 to 1.1:
-
The ability to write in managed code languages (e.g., C#)
-
The inclusion of a subset of the CLR and thus the ability to create XAML objects in code
-
The addition of numerous controls
We see items 1 and 2 today, and I'll be posting videos in the next few weeks to illustrate them. As soon as I'm able, I'll provide you with a timetable for #3 and then will explore each of them as they become available.
A Final Note 1.1 vs. 1.0
I want to emphasize that 1.1 is in alpha and 1.0 is in release. Even while spending time in 1.1 and enjoying coding in C#, I keep returning to 1.0 because, so far, there is nothing I can do in 1.1 that I can't do in 1.0 and I believe it is very important (at this moment in history) to be proficient in 1.0 (at least) or to be "bilingual" — that is, if I had to choose, I'd personally recommend:
-
Know Silverlight 1.0 and 1.1
-
Know Silverlight 1.0
-
Know Silverlight 1.1
in that order
That will change, but not for a while (nope, we haven't said when yet) but right now, that would still be my recommendation. I know that there are many who believe, strongly, that 1.0 is not useful to them; I can't offer an opinion because I don't know their particular circumstances but I can say that every time I've sat down with a developer who started out with that position, we've been able to conclude that the decision to eliminate 1.0 was premature. That said, 1.1 is surprisingly useful for an alpha product, but it is in alpha.
One Response to The Great Asynchronous Learning Experiment – Beginning 1.1 with Drag and Drop