Amethyst and Visual Studio 2010
Microsoft has recently released the latest beta of Visual Studio 2010, though it’s called it a ‘release candidate’ or RC rather than beta 3. Whatever it’s called, it seems pretty stable to me, so the time has come to see how Amethyst (our Adobe Flash Platform IDE) works with the new Visual Studio.
I’m sure that if you go to Microsoft’s Visual Studio web site, you can find out about all the whizzy new things that VS2010 does – trimming your toe nails automatically, and so on. Most of which I doubt I’ll ever use. However, internally things are different: VS2010 now uses WPF as the core technology for much of the display. Crucially, the core Text Editor is written in WPF and so has a completely new API that Visual Studio extension (VSIX) developers are expected to use.
|Note: At the time of writing, the public beta/edge releases of Amethyst do not support VS2010. This article describes our current internal test build of the software. We will release Amethyst for VS2010 after the final release of VS2010 itself.|
So the good news is that the Text Editor has a whole set of new features (nicer fonts, scaling, line heights of different widths and so on). The bad news is that VSIX authors will have to rewrite their applications? Well, no. Fortunately, that’s not the case. The Visual Studio team has produced a good (actually, it’s excellent) ‘legacy’ Text Editor API interface which allows existing VS2008 extensions (that work with the old COM based ’core’ editor) to work seamlessly with the new WPF Text Editor.
Seamlessly? Almost so. anyway. It took me about two days to get Amethyst fully up and running with VS2010. Some of the work involved registry changes – VS2010 now has a different (and more logical) way of handling VSIX registry entries. Some involved fixing bugs in Amethyst which were only revealed when moving to VS2010. And there were one or two problems with the new Text Editor itself; with a product of this complexity it’s not really surprising.
But with a bit of pushing and shoving and a little bit of rewriting to deal with a couple of peculiarities of the Text Editor, it’s all now working: here’s the Amethyst Designer (a Flash application) embedded with the new Text Editor:
The appearance of Visual Studio 2010 is broadly familiar but is also slightly different. All the ’chrome’ - the frames, menus and so on around the document - are handled by the WPF, though some of the non text-based tool windows - such as the Solution Explorer - are still the same.
And here’s the new Text Editor working with MXML and embedded ActionScript:
You can see one of the new features of the Text Editor - font scaling. In the top split window, the font is the normal size, while in the bottom pane, I’ve set it to 150%.
The key question for me though is if we can target both VS2008 and VS2010 from the same code base and with the same build. When we ported our Ruby IDE, Ruby In Steel, from VS2005 to VS2008 we built the the project in VS2005 and ensured (with some tweaks) that it would run in VS2008. Microsoft say that this trick can be done with VS2010 - but the other way round. That is, you should be able to develop wholly in VS2010; and the same binaries will work with VS2008.
Ideally, I’d like to ensure that Amethyst works from the same installation with both VS2010 and VS2008. It should work - and we’re most of the way there. But I suspect there’s some detailed ’fit-and-finish’ work to do on the installation before we’re done.
Do you have a working build of Amethyst that will install in VS 2010 or do you have a list of changes I would need to make to get this working? Thanks for the exciting updates!
It’s a bit more complicated than just adjusting some registry settings, I’m afraid. Unlike VS2005->VS2008, VS2008->VS2010 is a pretty major change.
Our timescale for a beta release is sometime after the official release of VS2010 (basically because I have a cast-iron rule about never, ever installing beta software of any description on my production machines).
So I think sometime after April 12th - hopefully not too long.
How is the development of RubyinSteel for VS2010 going? I’ve tried to install the one for vs2008 but that didn’t work unfortunatly.
We will announce our plans relating to Ruby In Steel for VS2010 later this year.
Yes, you can read it HERE.