Midnight Samosa
to-wit to-woo
"This is Spartan 117...
can anybody hear me?"
Angry man

Frustrating...or what?...

So here I am a long-time developer accustomed to Visual Studio. In enterprise-level development environments, we have a solution file (.sln) which manages a number of projects (.csproj). Each csproj manages a bunch of aspx files, with code behind i.e. file.aspx.cs

Apparently this concept is beyond the typical web developer, so when MS released Visual Studio 2005, they introduced the "Web site" model. This allows the developer to simply open the web site - there is no project file. That's a shame because the project is the place to define conditional compilation constants, and various other nice-to-have features, but OK, I'm in the minority here. I'll live with it. Then in VS2005 SP1 they realised their mistake and re-introduced the Web Project model, and we saw the return of the csproj file etc.

Now, as we surf the interweb, our browser swallows pages full of markup, such as <h1>Wibble</h1> and they render that as

Wibble

Over the years, the content has become more and more convoluted, web developers didn't create well formed mark-up, (indeed, some web devs deliberately removed all attribute quotes and closing tags to make the page load faster on dial-up connections) and browsers had to make the best of a bad job. At the same time web developers wanted more and more flexibility in their content, so we saw increasingly complex constructs.

The magic was running out.

Enter the World Wide Web Consortium - (the W3C) they couldn't be seen to endorse anything Microsoft had done years before, so they created incompatible "standards" and all was well. Now every 21 year old web dev could throw up his hands and rant at Microsoft - who obviously didn't know what they were doing.

A browsers sole raison d'être is to render mark-up. It's rendering engine currently renders html. What if it could be extended..? So Microsoft embarked on a couple of projects.

They had two teams developing Windows Presentation Foundation (WPF) and Silverlight.

Both WPF and Silverlight use xml-based markup for their presentation, but WPF requires .Net framework 3, while Silverlight is more like Flash - there is a small, downloadable cross-browser extension which knows how to render a subset of the xaml vocabulary. How much of a subset is a matter of some debate.

XAML files are "just" XML , and can be edited in Notepad, Expression Blend, Expression Web or Visual Studio, with various pros and cons. "Loose" xaml files can be dropped on a site and will be rendered in IE and Firefox. Opera displays the contents, Safari displays a blank page.

Blend allows one to build a complete application which can be deployed by one-click as an XBAP

Bizarrly, Expression Blend 1.0 knew what a csproj file is, and could open it, but didn't know how to edit the C# code behind, while Expression Web 1.0 DIDNT know what a csproj file is but it DID know how to edit C#....! Visual Studio 2005 knew how to open a web PROJECT or a web SITE, and has always been great for editing c#, but simply rendered the xaml in an XML editor... Mr Left Hand, let me introduce you to Mr Right

Update: it is now 2010, we have Expression Web 3, Expression Blend 3 and Visual Studio 2008.

VS 2008 can now open either a web SITE or web PROJECT (sln/csproj) containing xaml, but most developers turn off the xaml rendering - it makes the editor go away for long periods. Better to edit as XML. Most of the time, you get code completion and syntax colouring.

Blend 3 uses sln/csproj files, it DOES know how to edit C#, but you cannot open a web site directly, rather you create a new project, and add existing web site. Interestingly, if the included web site contains sln/csproj files, and you doubleclick on them, it loads the solution into Visual Studio! Also Blend has a VERY annoying habit of saving your changes when it sees fit, which means if you make a change, run, and you decide you dont like it, you have to Undo there and then, you cant just close Blend to go back.

Expression Web 3 doesnt know what to do with sln / csproj files, it only opens web SITEs, it no longer spawns Visual Studio to edit c# files, it just loads them into its notepad style editor, with no syntax colouring, no intellisense or code completion...Grrrrr!

Oh and should anyone be interested, Silverlight was essentially my suggestion, which I posted on Connect a couple of years back. I'm not claiming copyright or patent infringement - just fame and adulation will do.

Next: Squirt and scatter