Live From ReMIX '07 Boston

I'm at ReMIX '07 Boston today.  ReMIX is all about connecting web designers, developers, and business decision makers and showcasing topics and solutions that bridge Microsoft and non-Microsoft perspectives, and emphasize the inclusive and participatory nature of the next web. 

It's been great to see the hard work of all of my evangelism team colleagues here in the east region finally come together put on this great event.  After endless planning meetings and making sure all the logistics in place, it's show time!  ReMIX is taking place at the Hyatt Regency in Cambridge, blocks away from both Hahvahd and MIT. 

The venue is full.  When the ReMIX site said the event was sold out, they weren't kidding!  The keynote room had standing room only, and we had to open up an overflow room where folks where able to watch the keynote via video.

BradAOnStage Anyway, I just got out of the keynote which was delivered by Brad Abrams, who is a Group Program Manager for the .NET Framework.  Brad talked about various approaches to technologies out there.  He talked about how there are three different approaches to handling new technology:

  1. The "Ostrich" - stick your head in the sand and ignore new technology.  The risk is that you get passed by.
  2. The "Big Bet" - Bet all your chips on a new technology.  The risk is that you get bit if things don't go well.
  3. The "Balanced" - You mix and match new with old to achieve a proper balance that delivers the best business value.

He then used the "balanced" approach analogy and applied it to the notion of software + services.  Mixing and matching a proper balance of desktop, web, and RIA technologies to blend your applications across the boundaries.

Brad showed a video of some WPF applications that have been built in the past year since WPF was released. 

Brad then offered a lot of interesting bits on what Silverlight is, what it offers, and what it brings to the table when developing Rich Internet/Interactive Applications (RIAs).  (BTW... which one is it?  Interactive or Internet? See this comic.)  Here are just a few notes on Silverlight I took during the keynote:

  • Developers & designers typically work in different worlds.   Microsoft is making a big investment in Expression Studio tools to help MIX the worlds together.
  • Single developer platform that runs anywhere (Windows, Mac, and soon Linux) in native code vs. all the difficulties of JavaScript.
  • Why .NET in the browser?  You get to choose your programming language (C#, VB, Ruby, Python) vs. choosing JavaScript for IE, JavaScript for FF, JavaScript for Opera, etc, etc.. and having to support them all simultaneously!
  • HTML/DOM Integration - .NET code in Silverlight can manipuate the HTML DOM, and JavaScript on the page can manipulate the XAML DOM in Silverlight.
  • Works well with AJAX frameworks - ASP.NET AJAX controls being added to support Silverlight.

One interesting thing I heard is that Alex Russell, who created the Dojo AJAX framework project, is planning to integrate Silverlight support into the DoJo framework!

He then switched to demo mode and took the room on a tour of Silverlight applications that have been built by various companies and deployed on the web already.  He started his first demo by switching to a Mac and running the application there.  At the end of the demo he said (paraphrasing here), "You'll have to trust me that it runs in IE on Widnows".   Lots of laughs from the crowd.

Brad then did a demo that showed the entire workflow of building a Silverlight application from the design process, to development, to deployment.   He started off in Expression Blend, by visually building a Hello World textbox, then animating it by creating a storyboard via the timeline tool in Blend.  All of this was through designer mode where you visually see what you're building with no code going on. 

He then opened the same project in Visual Studio and connected some events to the Hello World application he designed via C# code.  Specifically, he made it so that when you click the text "Hello World", it starts off the animation which made the text fly around the screen.  By using F5 in both Visual Studio & Blend, he showed how it would spin up the browser to run the application.

After showing that, he talked about deployment.  Brad asked the crowd "How many of your data-centers are Windows only environments?"   Only a handful of people raised their hand in the room of 400+ people.  Brad pointed them out and said, "Thank you!  Thank you for my kid's braces!"  He then went on to say that most people have heterogeneous systems and Silverlight can be deployed to any of them. 

To pull together the whole workflow, he did something that I think most folks didn't expect:  He deployed the application to an Ubuntu Linux server running right there in a virtual machine!  This was pretty easy as he literally picked up the XAML, and DLL files from the Silverlight project and FTP'ed them to the Linux server.  On the Linux machine, there was a pre-existing PHP application.  Brad opened up one of the PHP pages in a text editor and pointed out a chunk of JavaScript that he had written ahead of time that loads the Silverlight object.  Next, he switched over to the Mac and loaded the application he just created directly from the Linux web server.   And it looked exactly like the "experience" he started off by creating in Expression Blend!

So end-to-end, we saw the whole designer/developer workflow, along with the deployment part.  Not to be outdone, Brad opened a Silverlight application on the Mac.  When it loaded, we saw the "beachball" waiting symbol in the Mac.  Why?   Because the application was being debugged and had hit a breakpoint...   in Visual Studio on a Windows box that was connected to the Mac!   He switched to the Windows box, and in Visual Studio, edited some of the code using the "edit & continue" feature, then hit F5 to run again...   back to the Mac, and the Silverlight application continued to run with the changes Brad made in Visual Studio!

I don't know about you, but IMHO, I thought that was cool!   More later...