There is a lot of technical jargon as well as tool names floating around on the net when one tries to search for silverlight. So I thought of writing a very basic introduction covering Silverlight, WPF/E, Expression Blend, Expression Web, Exprression studio, .NET 3.0 WPF etc. Since I got some good experience buildng a nice Silverlight based website I wanted to share my knowledge so that beginners can get a good introduction to the basics. These all keywords can cause a lot of confusion to a new developer setting foot in the silverlight area for the first time.
The story started with .NET framework 3.0 (formerly known as WinFX). The newer version introduced a lot of new features (hence a major jump in version number from 2.0 to 3.0) like WPF, WCF etc. You can learn more about .NET 3.0 features searching google, but all of these were simply wrappers around the old 2.0 framework. In a nutshell, the core of 3.0 is still the same as .NET 2.0, with these wrappers like WPF added on it. There were no breaking changes and your .NET 2.0 applications will run fine in 3.0 too. The core framework class library is same. I would let this article talk more about general 3.0 framework as it is a good introduction on 3.0 is here: http://msdn2.microsoft.com/en-us/library/aa480198.aspx
.NET 3. introduced XAML, which is Extensible application markup language. XAML is the foundation of the GUI in .NET 3.0 and above. Why XAML you might ask? For me, i understood is like this:
When I first started programming in VB6, i got used to developing using RAD (Rapid Application Development), i.e. using ready made controls to develop a nice looking GUI, which of course windows based. Textboxes, datadrids etc were so easy to use and program, and customizable too. But having to type everything in HTML was killing, add no debugging support to it...
Later over the years when I moved to my first web based project in ASP, I didnt like it at all. It was like my hands were cut! While creating simple forms, I would still look for the Toolbox, hoping to drag and drop items on my asp form :-(
ASP.NET was a welcome relief, we could use toolbox just like old VB6 days, and debug our code too. One thing caught my eye while learning ASP.NET: how did it happen? How could the broswer interpret ASP.NET contols so easily? I realized that these server controls emit HTML, and the ASP.NET engine can parse ASPX HTML code, get hold of the server controls and render them as their HTML equivalents. Nice, sharp, and jazzy!
Slowly I started to "hate" VB6 or windows based programming, suddenly I felt that windows based apps are like monolithic blocks, only being able to run on 'thick clients", and the idea of putting controls in HTML format sounds nice. Atleast one could more finely control the output, instead of using some stupid windows control which could not render anywhere except on a windows machine. Best thing was the fact that one could modify the applications GUI with only changing the markup without re-compiling the code. I did not like the idea of developing an app with that dependency, thin clients and web programming was what I loved!
With the introduction of XAML, MS blurred the line between Windows and Web apps. Now with WPF, even windows app had a markup language like HTML, which is XAML. Such was the power and likeablity of web based programming model that the concept of "anywhere, everywhere" was the main reason for XAML. Silverlight is based on this XAML only, for web based GUI development.
Now back to Silverlight (or WPF/E: Windows Presentation Foundation/Everywhere) here, which is a revolutionary new way to design interfaces, for both web and windows applications. You can do everything with Silverlight (SL) which you can do with FLASH (not everything exactly because there are some desing effects which havent been incorporated into SL yet, like advanced animation effects). Best thing about SL is that an ASP.NET developer can learn it fast, whereas FLASH action script is kinda tough and flash coders are different from ASP.NET coders. This is really good news to all developers who wanted to control and *debug* their advanced user interfaces more finely.
To program in Silverlight you need to develop its SDK, which is a free download. To see SL based applications running on your brower, you need to just download the plugin for it (silmilar to what we do for FLASH ie install its plugin).
As of now, VS 2008 beta 2 can be used to develop SL based apps, it has nice IDE supporting JS intellisense. But one can start development using SL in VS 2005, using this template:
http://weblogs.asp.net/mschwarz/archive/2007/06/04/silverlight-with-visual-studio-net-2005.aspx
Expressions of the developer
Expression Suite is a set f products which a designer or a developer can use to create GUI.
Expression studio has these following tools in its portfolio:
1. Expression Design
2. Expression Blend
3. Expression Web
4. Expression Media
Think of the product suite in Expression Studio like standard designing tools (Photoshop etc) with extra features interact with your .NET projects using XAML.