Like I said, we knew this had to happen. Silverlight 1.0 was really just a streaming media platform. Silverlight 1.1 was only a little better (and isn't it still in beta?) It gave the first real clue though. It included a stripped down CLR, allowing C# to run inside Silverlight. This was a clear indication that Silverlight was going to take aim at developers and thus become Microsoft's answer to Flex.
Now this has finally happened. I spent the last hour reading through the tutorials. There were several things that really made me raise my eyebrows:
- A 4KB Hello World : It looks like either the controls (and the framework code that lets them get wired up, etc.) are either really small or the compiler is very smart at stripping things down (or both.) Hello World in Flex is 140KB because all of the Flex framework is included. I don't think all of the Silverlight controls/app framework is included with the base runtime, as it clocks in at 4 MB, i.e. about the same size as the Flash player.
- Crossdomain Silverlight: MSFT wisely just re-uses the Flash crossdomain.xml policy file system to get the same kind of declarative security. Very nice of MSFT to just tip their cap and say Flash got this right, let's not reinvent the wheel on this one.
- Silverlight Styles: Their style syntax is ... different. Well different from CSS certainly. Adobe has tried to leverage CSS in Flex. The Silverlight style syntax is probably much more powerful than CSS, but you have to wonder if it is really worth it. It is still a declarative XML syntax on top of the selector paradigm used in CSS.
- Silverlight for the Desktop: Ok not really. But MSFT is going out of their way to point out how easy it is to take a Silverlight app and turn it into a desktop app. This is clearly in response to the attention that Adobe AIR has received.