The Mists of Chrome

As you know, Chrome v1.0 has been successfully released at the beginning of this month. So what’s going on in the RemObjects labs now? Are we sitting around idly enjoying our success? Far from it!

Work has already begun on the next version of Chrome (code-named Floorshow) and lot’s of cool things are on the horizon. Carlo is busy on the inner workings of the compiler, with already 3 new major language features implemented – Iterators, Nullable Types and a nifty litte feature called Constructor Call Property Initialization – i’ll blog a bit more about these, soon.

In the meantime, i have been looking at Avalon integration. Yes, it might seem that Avalon (the new managed GUI engine for Longhorn) is still far off in the future, but with the "Beta RC" version of the WinFX SDK available now, i figured it might be the right time to give it a closer look and make sure that Chrome users are ready to go. After all, one of the commitments we’re making with Chrome is that we’ll take you right to the cutting edge of what’s happening in the .NET world – we don’t intend to have you wait for half a year while all the C# guys are already having fun with the new technologies.

Properly supporting Avalon required a number of changes and enhancements, but all in all, it was a pretty straight-forward process. The major change made was to switch to an Build-friendly project format for Chrome Avalon projects. You see, Avalon tightly integrates with MSBuild (the new build engine Microsoft is introducing with Visual Studio 2005) and provides build actions that will – among other things – automatically process the XAML files containing your UI into code and "inject" these files into your project. For this to happen seamlessly with Chrome projects as well, Chrome has to be prepped to play well with MSBuild*.

Also, some enhancements to the Chrome CodeDom provider were necessary, as Avalon really makes extensive use of CodeDom far beyond the limited set of features used by – say – ASP.NET or the form designer. For example, our CodeDom now properly supports multiple namespaces per module, as well as unnamed namespaces.

The IDE integration has also been prepped to handle the new MSBuild-style project format, allowing you to load and edit your Avalon projects right inside Visual Studio, as shown below.

How will you get a chance to play with Chrome and Avalon soon? Easy: if you’re a Subscription Customer or already on the Floorshow beta, the next build will provide this Avalon support, early next week. If you’re not, but are seriously interested in testing this and providing feedback, why don’t you drop me a mail – we still need a few more good testers, especially ones focued on Avalon..

Chrome does Avalon

The application running above is of course not showing a bitmap of the Chrome logo, but a fully vectorized native XAML version rendered by Avalon – converted from Adobe Illustrater CS2 using Mike Swanson’s excellent converter.

  • This is a change that will come in handy for many other advanced scenarios, not just Avalon. For example, you can use MSBuild to compile these Chrome projects as part of a mixed-project solution on your build system – something previously only possible inside Visual Studio (or by manually calling Chrome.exe)

marc hoffman

Chief Architect and CEO here at RemObjects Software. Project Manager for Elements and lead developer of Fire, our awesome new development environment for the Mac.