For those of you, like myself, who weren't lucky enough to be vacationing in beautiful Barcelona and happened to drop in on TechEd EMEA, or if you haven't found it elsewhere on the interwebs, I'd like to introduce you to... [drum roll]....

Scott Guthrie showing an editor sample at PDC

Scott Guthrie showing the "comment adornment" at PDC

Another pic of Scott Guthrie showing the editor at PDC

Another pic of the same sample

The new editor!

Here are a few interesting things about the new editor:

  1. The editor is designed to be extensible from the start. The editor is built from composable parts and uses the Managed Extensibility Framework (MEF) to tie things together. This means that people who want to add features to the editor or modify existing behavior get to use the exact same tools that we use when building features in the editor. In effect, the editor is virtually all public surface area.
  2. The editor is written using the Windows Presentation Foundation (WPF). This allows us (and anyone who wants to extend the editor) to be fairly creative in the richness of our visualizations (such as the pictures above, where comments have been replaced by rich edit controls). This lets you do everything from gradient disease (you know exactly what I'm talking about) to useful things, like embedding controls directly into your editing surface and finding better ways to visualize information normally just presented as text.
  3. The editor is written in managed code, which has benefits like the following:
    • Without getting too much into the religiosity of managed vs. native code, it is much easier to write managed extensions against the new editor than native ones against the old. No COM, no "whoops I accidentally leaked Visual Studio, my bad", and certainly NO COM (I can't stress that last one enough). Oh, and you don't have to mess around with COM.
    • You'll write less code (which I'm going to show here in the coming weeks and months) and (hopefully) safer code, which is generally a good thing.
    • You get to take your pick of favorite .NET language — we write mostly in C# (on the editor team), but we've seen extensions in C#, VB.NET, F#, and others. I'll probably provide a few samples on this blog in languages other than C#, so you'll be able to see what I mean.
  4. For those existing extenders that don't want to update anything, we've provided "shim" interfaces that masquerade as the old editor. We haven't shimmed everything, but we've implemented the majority of the existing native interfaces.

A little about myself, since this is supposed to be one of those meet-and-greet type of posts:

My name is Noah, and I've been on the editor team (and at Microsoft) for a little over a year (I did an internship here before, if you want to count that). I'm a recent college grad (CS undergrad at RIT), so I'm still one of them thur youngins on the team. My favorite color is blue, and my favorite editors are vim and emacs; yes, I use both (primarily vim; and Emacs for things like slime, muse, and org-mode), so I don't buy into the whole "best editor evar" flame war (my asbestos long johns are on, though, just in case). I'm what our architect jokingly refers to as one of "those open source socialists", which is a big reason why I'm pretty heavily invested in making our editor as extensible and open as possible — I believe that the most important value of any product or project is the community that exists around it.

In the coming days and weeks, I'll be writing various samples/extensions for the editor, as well as giving an overview of the many ways that people can extend the editor. I'll put up samples for various things: features I miss from other editors, things that you couldn't (easily) do in the old editor, samples that somehow involve ice cream (I really like ice cream), etc. If you are an actual person reading this post and not the google search indexer, feel free to write a comment if you want to see something specific. I suppose, if you are the google spider, you can post a comment, too; we're very accepting of all people and bots on this blog, unless you are the prince of some African country who has seventy gigabazillion dollars and just needs $1000 from me to get set up in America.

The images in this post come from Long Zheng's Flickr photostream, from the "PDC08: Keynote 2" set.