-
Since releasing the VS 2008 Shell (isolated), we have been working on service pack 1 with a number of significant improvements, including a reduced redistributable size. But the most common questions we hear from developers is "How do I go about picking exactly what features and components are included in my isolated Shell based application?"
This is the subject of this post.
Using .pkgundef
When you create an Visual Studio Shell Isolated project, one of the files that gets created for you is called <yourProjectName>.pkgundef.
By default, this file is blank, but you can use this as a reverse registry file. What that means is that any registry keys you put into this file will be removed for you. Of course, this file only works for the registry keys that is owned by your shell based application (i.e. everything under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppEnv\9.0\Apps\<YourShellName+RandomGUID>\).
To give you a concrete example, if I wanted to remove the Class View tool window, I would add this entry in my .pkgundef file:
[$RootKey$\ToolWindows\{C9C0AE26-AA77-11d2-B3F0-0000F87570EE}]
The symbol @ROOTKEY replaces HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppEnv\9.0\Apps\<YourShellName+RandomGUID>\ and you can specify any key under it to be removed.
What to Remove and How?
In the above section, we have talked about how .pkgundef works. But when you are customizing your isolated shell, what are the things you can remove? Here is a list of things you would typically want to remove:
- VS Packages
- Tool Windows
- Menus and Commands
We will discuss each item in its own separate section.
VS Packages
If all the functionality that you don't need is contained inside a VS Package, the cleanest thing to do is to unregister it. Since other things like tool windows, editors, VS Services, menus/commands, etc. that are supplied by that VS package will also be removed when that package is removed, you won't need to remove them separately.
As an example, I can put the following entry in my .pkgundef file to remove the web project system package:
[$RootKey$\Packages\{39c9c826-8ef8-4079-8c95-428f5b1c323f}]
As a result of this, all the related menus/commands, tool windows, editors, VS services, and anything else that's tied to this package will also be removed. If you try the above example to remove the web project system package, you will notice that the command under File > New... > Web Site... will be removed.
So how do I figure what packages can be removed? You can use regedit and enumerate all the packages under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppEnv\9.0\Apps\<YourShellName+RandomGUID>\Packages\. For your convenience, I am including all of them in the table below for you to see.
| Feature Area | Raw Package Name | Package GUID |
| Core IDE Packages | Undo Package | {1D76B2E0-F11B-11d2-AFC3-00105A9991EF} |
| Visual Studio Environment Package | {DA9FB551-C724-11d0-AE1F-00A0C90FFFC3} |
| Visual Studio Commands Definition Package | {44E07B02-29A5-11D3-B882-00C04F79F802} |
| Visual Studio Directory Listing Package | {5010C52F-44AB-4051-8CE1-D36C20D989B4} |
| Visual Studio Common IDE Package | {6E87CFAD-6C05-4adf-9CD7-3B7943875B7C} |
| Visual Studio Environment Menu Package | {715F10EB-9E99-11D2-BFC2-00C04F990235} |
| Visual Studio COM+ Library Manager Package | {ED8979BC-B02F-4da9-A667-D3256C36220A} |
| Visual Studio Source Control Integration Package | {53544C4D-E3F8-4AA0-8195-8A8D16019423} |
| Visual Studio Solution Build Package | {282BD676-8B5B-11D0-8A34-00A0C91E2ACD} |
| Text Management Package | {F5E7E720-1401-11d1-883B-0000F87579D2} |
| Visual Studio VsSettings Package | {F74C5077-D848-4630-80C9-B00E68A1CA0C} |
| | |
| Help | Visual Studio Help Package | {4A791146-19E4-11D3-B86B-00C04F79F802} |
| Task List | Visual Studio Task List Package | {4A9B7E50-AA16-11d0-A8C5-00A0C921A4D2} |
| Macros | Visual Studio Macros Package | {A659F1B3-AD34-11d1-ABAD-0080C7B89C95} |
| Class Outline | Class Outline Package | {21af45b0-ffa5-11d0-b63f-00a0c922e851} |
| | |
| Toolbox Controls Installer | Microsoft.VisualStudio.IDE. ToolboxControlsInstaller. ToolboxInstallerPackage | {2c298b35-07da-45f1-96a3-be55d91c8d7a} |
| ToolBox Control Installer Package | {36839529-3AF3-47fa-8194-F4A3FA9F0ED7} |
| | |
| Web Projects | Visual Basic Compiler Package | {019971D6-4685-11D2-B48A-0000F87572EB} |
| Microsoft.VisualStudio.Web. Application.WAPackage, Microsoft.VisualStudio.Web.Application, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | {349C5850-65DF-11DA-9384-00065B846F21} |
| Visual Web Developer Project System Package | {39c9c826-8ef8-4079-8c95-428f5b1c323f} |
| Visual Web Developer Project Persistance Package | {8FF02D1A-C177-4ac8-A62F-88FC6EA65F57} |
| Visual Web Developer Web Migration Package | {C1DAB116-2D63-493a-B970-10D7DD0B476E} |
| Visual Web Developer Web Package | {e7f851c8-6267-4794-b0fe-7bcab6dacbb4} |
| Visual Web Developer Web Application Upgrade Package | {DC7F691A-91FC-4F7b-923E-FE829C3A18DC} |
| | |
| HTML Editor | Visual Studio HTM Editor Package | {1B437D20-F8FE-11D2-A6AE-00104BCC7269} |
| Visual Web Developer HTML Source Editor Package | {BFCC0C3C-6F87-4285-A6C8-BB616061800D} |
| | |
| CSS Editor | Visual Studio CSS Editing Package | {A764E895-518D-11d2-9A89-00C04F79EFC3} |
| | |
| XML Editor | Visual Studio XML Editor Package | {87569308-4813-40a0-9cd0-d7a30838ca3f} |
| | |
| Web Browser | Visual Studio Web Browser Package | {e8b06f41-6d01-11d2-aa7d-00c04f990343} |
| | |
| Binary Editor | Visual Studio Binary Editor Package | {5B98C2C0-CD7B-11D0-92DF-00A0C9138C45} |
| | |
| Windows Forms Designer | Windows Forms Designer Hosting Package | {68939055-38e0-4d17-92cb-8909710d8178} |
| Windows Forms Designer Package | {7494682b-37a0-11d2-a273-00c04f8ef4ff} |
| Windows Forms Designer Resources Package | {7b5d447b-0b12-41ea-a84e-c822034422d4} |
| Windows Forms Application Configuration Package | {80c7728b-70a6-4528-8669-73e02d1b9c41} |
| ElementHost Designer Package | {7eab3c71-59ff-4571-a5f3-643f255fc2e6} |
| | |
| Debugger UI | Visual Studio Debugger | {C9DD4A57-47FB-11D2-83E7-00C04F9902C1} |
| | |
| | |
| Database Tools | Visual Database Tools Package | {220A4C17-7E7C-4663-BBCC-5E607C6543CD} |
| Visual Studio Database Tools Designers | {EF828E39-70F5-4b8e-A3A0-4C0ECD28A69A} |
| Visual Studio Data Designers | {d6c919aa-1217-41e2-a13b-9b92e1866305} |
| Visual Studio Data Package | {E1AA7737-69BE-43d0-A425-E3097651E192} |
| Visual Studio Data Designer Extensibility Package | {A8F602E2-40CE-4daf-AE82-A457A91728B9} |
| Visual Studio Explorers and Designers Package | {8D8529D3-625D-4496-8354-3DAD630ECC1B} |
| Microsoft Report Designer | {F3A96850-E2AE-4e00-9278-8FE23F225A0D} |
| Microsoft.VisualStudio.Data.Providers. SqlEverywhere.VsPackage, Microsoft.VisualStudio.Data.Providers. SqlEverywhere, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | {b65e9356-a4c7-4855-96bb-1d3ec8514e8f} |
| Microsoft.VisualStudio.DataDesign. SyncDesigner.DSL.SyncDesignerPackage, Microsoft.VisualStudio.DataDesign. SyncDesigner.DslPackage, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A | {c8afb2f4-bff7-4055-926d-d44afecd5832} |
| | |
| DSL Runtime | Microsoft.VisualStudio.Modeling.Shell. CommonModelingPackage, Microsoft.VisualStudio.Modeling.Sdk.Shell, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | {d1091694-ea72-4bdd-8918-78324cc25448} |
| Microsoft.VisualStudio.TextTemplating. VSHost.OrchestratorPackage, Microsoft.VisualStudio. TextTemplating.VSHost, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | {a9696de6-e209-414d-bbec-a0506fb0e924} |
| | |
| SourceSafe Support | Visual SourceSafe Provider Package | {AA8EB8CD-7A51-11D0-92C3-00A0C9138C45} |
| Visual SourceSafe Provider Stub Package | {53544C4D-B03D-4209-A7D0-D9DD13A4019B} |
| | |
| WPF Designer | Microsoft.VisualStudio.Internal. WPFFlavor.WPFPackage, Microsoft.VisualStudio.WPFFlavor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | {b3bae735-386c-4030-8329-ef48eeda4036} |
| Microsoft.VisualStudio.Xaml | {e58c2a8b-bcc4-4559-ad59-d62eb6d58a22} |
| | |
| Visual Studio Code Snippets Package | {0B680757-2C29-4531-80FA-535A5178AA98} |
| | |
| Managed Language Project Support | Visual Studio Component Enumerator Package | {588205e0-66e0-11d3-8600-00c04f6123b3} |
| Visual Studio Settings and Project Designers Package | {67909B06-91E9-4F3E-AB50-495046BE9A9A} |
| Export Template Package | {f1e4cfca-4573-4345-8718-7bde2b1f0be8} |
Some caveats about removing packages:
- There are some packages that you should never remove. For example, the ones under "Core IDE" should never be removed because there are many other features that take dependencies on them.
- The VS Packages above are not refactored in a very granular way right now. What that means is that quite often, you won't be able to remove the entire package. For example, there is no package you can unregister to remove just Class View and all its associated commands/menus, options, services, etc. Class View proffered by the Visual Studio Environment Package, which also proffers other key IDE features Find and Replace, Environment Options pages, Command Window, Output Window, etc.
- Since I don't have a nice dependency graph to show you. There will be some trial-and-error on your part to see what packages can be removed.
I know this experience is not ideal, and we are working on tooling to make this much easier in the longer term. However, I hope this will still help in the short term.
Tool Windows
For tool windows that you'd like to remove without removing the associated package, you can just add the entry in the .pkgundef file. You can see a list of tool windows by enumerating the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppEnv\9.0\Apps\<YourShellName+RandomGUID>\ToolWindows\
Again, for your convenience, I have listed them here for you.
| ToolWindow GUID | ToolWindow Name |
| {0504FF91-9D61-11D0-A794-00A0C9110051} | Call Stack |
| {07CD18B4-3BA1-11d2-890A-0060083196C6} | Macro Explorer |
| {0F887920-C2B6-11d2-9375-0080C747D9A0} | Find 1 |
| {0F887921-C2B6-11d2-9375-0080C747D9A0} | Find 2 |
| {1CBA9826-3184-4799-A184-784E41B56398} | CSS Property Grid |
| {25f7e850-ffa1-11d0-b63f-00a0c922e851} | Document Outline |
| {269A02DC-6AF8-11D3-BDC4-00C04F688E50} | Object Browser |
| {28836128-FC2C-11D2-A433-00C04F72D18A} | Command window |
| {2D7728C2-DE0A-45b5-99AA-89B609DFDE73} | Resource view |
| {34E76E81-EE4A-11D0-AE2E-00A0C90FFFC3} | Output window |
| {350F9856-A72B-11D2-8AD0-00C04F79E479} | Memory |
| {37ABA9BE-445A-11D3-9949-00C04F68FD0A} | Modules |
| {38ED9834-0C97-445b-BD1D-F78F3E08AFAC} | CSS Manage Styles Task Pane |
| {3AE79031-E1BC-11D0-8F78-00A0C9110057} | Solution Explorer |
| {3FD5E0CC-709A-4f8c-94C3-7F0F8DFF5BB2} | Report Datasets |
| {402DC223-D700-4029-866F-ACEE803F3F0C} | CSS Apply Styles Task Pane |
| {46C87F81-5A06-43a8-9E25-85D33BAC49F8} | Help Search |
| {4A18F9D0-B838-11D0-93EB-00A0C90F2734} | Locals |
| {4A791147-19E4-11D3-B86B-00C04F79F802} | Table of contents |
| {4A9B7E51-AA16-11D0-A8C5-00A0C921A4D2} | Task List |
| {51C76317-9037-4CF2-A20A-6206FD30B4A1} | Processes |
| {53024D34-0EF5-11d3-87E0-00C04F7971A5} | Find symbol window |
| {53544C4D-5C18-11d3-AB71-0050040AE094} | LocalChanges |
| {5415EA3A-D813-4948-B51E-562082CE0887} | Call Browser |
| {56B32054-DE4D-4de3-8396-BCB6F98BD246} | Behaviors |
| {57DC5D59-11C2-4955-A7B4-D7699D677E93} | Help Favorites |
| {588470CC-84F8-4a57-9AC4-86BCA0625FF4} | Code Definition Window |
| {58875C41-862B-4d6f-B046-03E8A333907E} | Page Layout |
| {66dba47c-61df-11d2-aa79-00c04f990343} | Dynamic Help |
| {68487888-204A-11d3-87EB-00C04F7971A5} | Find symbol results window |
| {6B8E94B5-0949-4d9c-A81F-C1B9B744185C} | Property Manager |
| {6FB4A4D9-0C08-4663-AF7B-2ECBDF7A20EC} | 'Conditional Formatting |
| {73F6DD58-437E-11d3-B88E-00C04F79F802} | Help index |
| {73F6DD5B-437E-11d3-B88E-00C04F79F802} | Help Index Results |
| {74946810-37a0-11d2-a273-00c04f8ef4ff} | Microsoft.VisualStudio.Designer. Interfaces.IVSMDPropertyBrowser |
| {74946827-37a0-11d2-a273-00c04f8ef4ff} | Server Explorer |
| {7B8C4981-13EC-4c56-9F24-ABE5FAAA9440} | Layers |
| {873151D0-CF2E-48cc-B4BF-AD0394F6A3C3} | Data Source Window |
| {90243340-BD7A-11D0-93EF-00A0C90F2734} | Watch |
| {A0C5197D-0AC7-4B63-97CD-8872A789D233} | Bookmarks |
| {A693A243-4743-4034-AED4-BEC4E79E0B3B} | Web Part Gallery |
| {A764E899-518D-11d2-9A89-00C04F79EFC3} | Style Organizer Tool Window |
| {A9B00010-7308-415c-95C6-EED62C1B9788} | CSS Properties |
| {B1E99781-AB81-11D0-B683-00AA00A3EE26} | Toolbox |
| {BE4D7042-BA3F-11D2-840E-00C04F9902C1} | Breakpoints |
| {C9C0AE26-AA77-11d2-B3F0-0000F87570EE} | Class view |
| {CA4B8FF5-BFC7-11D2-9929-00C04F68FDAF} | Registers |
| {CF2DDC32-8CAD-11d2-9302-005345000000} | FindReplace |
| {CF577B8C-4134-11D2-83E5-00C04F9902C1} | Disassembly |
| {D78612C7-9962-4B83-95D9-268046DAD23A} | Error List |
| {E62CE6A0-B439-11D0-A79D-00A0C9110051} | Threads |
| {E830EC50-C2B5-11d2-9375-0080C747D9A0} | Find in Files |
| {e8b06f52-6d01-11d2-aa7d-00c04f990343} | Web Browser Window |
| {e8b06f53-6d01-11d2-aa7d-00c04f990343} | Web Browser Preview Window |
| {ECB7191A-597B-41F5-9843-03A4CF275DDE} | Immediate window |
| {EEFA5220-E298-11D0-8F78-00A0C9110057} | Properties window |
| {F2E84780-2AF1-11D1-A7FA-00A0C9110051} | Autos |
| {F62AF5AD-1276-46dd-AE7B-D07AB54D1081} | HTML Property Grid |
| {F78BCC56-71F7-4e7d-8215-F690CAE4F452} | Call Browser (secondary) |
Menus and Commands
Typically, you won't need to use the .pkgundef file if you want to remove menus and commands. Instead, you would use the <YourProjectName>.vsct file.
If you open this file, you will see that it is a large XML file with lots of things commented out. Here is a snippet of what you will see:
The pattern you will see is that each XML element says No_????Command. If you uncomment the element, the corresponding command or menu will disappear. You can do this quickly inside Visual Studio by highlighting the elements you want to uncomment and use the Ctrl+K, Ctrl+U shortcut.
You can go down this list to pick out the commands/menus that you don't want and uncomment them. For the most part, you should be able to figure out which men/command the XML element corresponds to.
Most of the menus/commands can be removed using the .vsct file. But a small number of them cannot be removed this way. The reason is because this .vsct file only controls the "core" environment commands/menus. For example, if you uncomment every element in the VSCT file and run your isolated shell, you will see that you still have File > New... > Web Site... and Tools > Macros... among several other commands. To remove these, you will need to unregister the web project system package and the macros package respectively.
Summary
I hope this post has given you some insight into how to make the isolated shell work for you. Like I said earlier, we will be making this experience easier with tooling over time. Ideally, you wouldn't even need to touch the .pkgundef or the .vsct file. You should be able to do all of that via checking/unchecking components to indicate what you want/don't want. But before we get there, you will need to do some more low-level work to make the shell work for you!
thanks,
James
-
We know deploying your VS package can be a pain and there are often a lot of pain with getting a PLK. Now getting a PLK is a lot easier with the page we have launched here.
-
I was just going around and talking about the VS Gallery on our European Tour, and on last Friday, we have added several new features.
Since Anthony did such a great job in summarizing the new features, let me quote him here:
--- Start of Quote ---
Today we release a new set of needed features that will improve the community appeal of the Visual studio Gallery.
· Users can now contribute their own ratings on the quality extensions they’ve tried
· Visitors can optionally provide a detailed review about the extensions.
· We’ve added a Review Tab were visitors can sort through the various reviews on an extension
· The “Was this review helpful” lets other browsers sort credible reviews from the rest
· Authors of an extension now get aggregate information about the ratings of their extension
· Last we jazzed up the category & search results page giving a better summary of the matching extensions
We have a number of additional features coming online to give users more access to information on the Visual Studio Gallery. Over the next few weeks we’ll be adding:
· Author contributed Tags for extensions
· RSS Feeds for each category
· Tag based RSS feeds
· Improvements to the new Categories list page
· Improved Submission form
--- End of Quote ---
We are committed to continuing to make VS Gallery the one-stop shop for all your VS extensions needs, and we are excited to bring you these new features!
- James
-
On Thursday, we had our last VSX European Tour event at the Microsoft office in Budapest. It was wasn't just a talk for a user group this time. It was a half day event focused specifically on VSX.
Sandor Nacsa from the Budapest office helped us set up the event. We had the pleasure of sharing the day with Gabor Ratky and Novák István.
We started off the day with István's presentation of VSX. The room was pretty fully with around 40 attendees. His presentation was in Hungarian, so we didn't really understand it. But from previous conversations with him, we know that his presentation was about his personal experience with VSX. More or less of a high level overview with a twist of what's good and what's bad. In case you didn't know, István and I met last year at TechEd EMEA where he learned about VSX. Since then, he has been very active in the VSX community, and he is the mind behind http://www.codeplex.com/learnvsxnow/. If you haven't been there, I would highly recommend it as it has a lot of great contents.
Jean-Marc and I presented next. Sandor had arranged for an interpreter for the session, as a small number of the attendees don't speak English. So it was the first time we presented our talk with an interpreter. I must say that it is very different with an interpreter because you need to pause after a couple of a sentences. Jokes don't work quite the same, and I can also see some of the audience who understand English feeling a little bit annoyed because they are hearing everything twice. In fact, I thought most of them didn't need translation as most of them laughed at our jokes even before the interpretation. There were many good questions related to the FileCodeModel, DSL and the VS Shell. We kind of expected the high interest though, since it is half day event focused on VSX.
After our presentation, it was Gabor's turn. Although his presentation was also in Hungarian, he only had a couple of slides and he was showing code most of the time. So we were actually able to follow. I was already very much looking forward to his talk before he started because I had read the abstract and he mentioned something about a USB rocket launcher. I was very curious about it.
His demo was a lot of fun (even when I don't understand Hungarian)! He brought these toy rocket launchers that connected to the USB port and you can control it through the computer. The part I loved the most about it is that it even has a laser pointer :) He then showed how to build a VS Service that controlled the rocket launcher, and then hooked up the tool window to show the user interface that let the user control it. It was a lot of laughs, but it was also very educational. I told Gabor afterwards that I really loved the demo and I am going to steal it :) Below is a picture of all four of us that we took at the end of the day. You can even see the rocket launchers at the corner.
After the VSX Day ended, Jean-Marc had to leave right away for the airport. Kalman was very kind and took me on a short tour of the office building. If you had read my last blog entry, you would know how I met Kalman. He was excited to see the things the VSX community is doing and he said he would be interested in partnering with Gabor and István if there are things he could help with. I think with these 3 strong VSX guys in Budapest, there is a lot of potential to establish a VSX hub in Hungary!
I am very grateful for all the people who have helped us make our trip a success. I just returned to Seattle, so I still have a lot of follow-ups and thank-you's to write. Hopefully, we have helped spread the word and educate more developers about VSX in Europe through this trip. I think more importantly, we have established some important relationships with developers as well as Microsoft field tam members and we will be able to work more effectively in the future.
-
Our European Tour has brought us to Prague on Monday. This was the first time for me to visit Prague and I was completely blown away by the beauty of this city. I thought Paris was beautiful; Prague is even more beautiful (to me anyway)!
In the afternoon, we met with 5 Developer Evangelists from the Prague subsidiary of Microsoft. Stepan Bechynsky was our host, and he was very warm in welcoming us. Their office building is located in BB Centrum - a constellation of high-tech companies. Actually, now that I have been to several European offices, I feel like the offices back in Redmond are the most modest. The Prague office has a cool projector that hides itself completely away behind one of the ceiling tiles when it's not in use. The automatic door to their conference room looks like it's from a spy movie as it just looks like a wall when it's closed.

Microsoft building in BB Centrum, Prague.
We started the meeting by presenting our VSX positioning slide deck. We wanted to give them a good idea about what our team does, what we care about and how it impacts developers. We chatted about various opportunities to make more VSX events accessible to Czech developers and we also chatted about some of our upcoming work. There were several key pieces of feedback from this group:
- We need to make VS localizable by the community. Czech Republic is a small country and they understand why there is no Czech version of Visual Studio yet. However, they really want us to provide the tools needed so that the Czech developer community can localize on their own. It won't be perfect and it doesn't need to be. They strongly feel this would be huge in improving developer satisfaction in Czech Republic. They also mentioned that whenever they issue surveys, localized version of tools is always the #1 thing the developers bring up.
- We should build tighter integration to get VS extensions directly inside the IDE. The evangelists in the room see the value in Visual Studio Gallery, and think there is a huge opportunity there. However, they think we need to provide tighter integration of how you obtain extensions directly inside the IDE.
- We should think about reusing the same shell between Expression tools and Visual Studio. The feedback here is that a lot of developers in small shops are also the designers who use the Expression tools. They prefer to have a more consistent user experience so they don't have to re-learn the environment. I have my doubts whether sharing the same shell would really address this problem. Even if Expression tools were provided inside Visual Studio today, they would still proffer new user interface objects that are focused on designer tasks that these developers would still need to learn. In fact, in the absence of being able to support multiple work surfaces, I think it may worsen the problem since it is probably not as convenient because you can Alt+tab between your designer tasks and your developer tasks. Longer term, I think this makes sense from an internal engineering perspective to save development costs on maintaining two shells. The look-and-feel for the Expression tools is quite different from Visual Studio's; if you have seen these tools, you will know what I mean. Since the current Visual Studio environment doesn't give you the ability to "skin" itself, it made sense that the Expression tools are not using the Visual Studio IDE.
I thought our meeting was useful. Of particular interest to me, is that I discovered that our central localization team in Sever & Tools Business is looking into how they can solve the localization problem for the smaller countries where we don't provide a fully localized version of Visual Studio. I am not going to drill into the specifics here as I am unsure how much of this information is public or how much I am supposed to disclose. But I think what's in the works will be of really big help to these developers.
In the evening, we proceeded with our user group meeting. Over 60 people registered for the event, but as Stepan said, the weather was against us. It was very sunny and warm, so about 30 of those registered had chosen to venture outside instead :( Of course, we still delivered our session with the same enthusiasm. We did something a little different this time as we wanted to try something new and improve the talk all the time. This time, Jean-Marc challenged me to building the Source Outliner Lite in 15 mins instead. Thanks to my practice the night before, it went smoothly and I think the audience liked it. Compared to the audience from the other cities we have visited so far, a lot of the audience has played with the VS SDK already. One gentleman had a specific interest in DSL tools and really liked what Jean-March demo'd. In the end, it was obvious that he's completely bought into the value that DSL Tools can deliver, but he asked about tips for convincing his management :P I think this area is ripe for a case study to show how different companies (including Microsoft) have used DSL Tools and what type of return on investment they have been getting. I know Stuart has talked about some of those numbers in the past, but it's time to do a formal case study!
Our next and final stop is Budapest. I am really excited about this last stop. The subsidiary in Budapest is hosting a half-day event called VSX Day so I am expecting a larger audience. Istvan and Gabor will also be there talking about VSX. In fact, another colleague of mine, Kalman Beres from the Dynamics found out from Gareth that we will be going to Budapest and he is planning to come to VSX Day too as well. His team is a user of the MPF project base classes and we have met several times in Redmond. He works remotely for the site in Copenhagen but he is located in Budapest (yes, Microsoft has lots of remote work arrangements these days). It will be great to see all of them for our final destination of the tour.
-
With the help of Rolf and Susan who organized the event, Jean-Marc and I presented to a user group in Zurich yesterday evening in a 3 hour session. We were somewhat disappointed at the low attendance - we only had about 20 people. But the audience was very engaged, so quality made up for the lack of quantity.
Most of the attendees were new to VSX, but we had one gentleman (whose name shall remained anonymous) who had written his own custom debug engine!
A general feeling we have so far from the European tour is that the VSIP program is still relatively unknown to both developers and DPE folks in Europe. When I return to Redmond, we will need to figure out how to better get the word out outside of the U.S.
Here are a couple of pictures we took at the end of the session with the group.
Picture I took of the group.

One of me inside.
If anyone had attended the session, please leave a comment to let us know what you thought of the talk!
Cheers,
- James
-
We are in Deutschland now and we visited the Microsoft Technology Center at Munich yesterday. It was a very nice set of buildings, and the meeting rooms are much more impressive than building 41 back in Redmond. They have multiple projectors and multiple LCD screens in the meeting room. Fancy.
A picture of MTC Munich from the front entrance.
Another shot of MTC Munich with the Microsoft sign.
The event that we spoke at was different than the others we had so far. This one was hosted at the Microsoft Technology Center and a small group of VIPs were invited to this event. Only 15 VIPs were there, but this gave us an opportunity to make the event more interactive and intimate. The VIPs were a mixed crowd of architects, ISVs and executives. Their VSX experience was also mixed. Some have in-depth knowledge of certain areas already, while other were new and wanted to find out what all the excitement around it is about.
We spent 3 hours at this event to speak about various VSX topics. It was a great group of folks, many of whom gave us great feedback:
- VS platform API needs to improve and be modernized. We know about this one already, and I assured them that this will start to happen soon with the next release of Visual Studio.
- DSL needs to support multiple views of the same underlying model. This is actually the third time in 3 cities that we have heard this feedback.
- Bidirectional DSL should be supported in the VS SDK. In a private session in the morning, Jean-Marc showed a bidirectional DSL that he has built. It's actually a WCF Designer that many people have found very useful. We should make it easier for folks to build bidirectional DSLs.
At the end of the session, I got my first German form of applause. Apparently, they don't clap; instead everyone knocked on the table to express their appreciation. It was nice.
The visit was also a great chance for us to meet some of the good folks at MTC Munich in person. In particular, I have corresponded with Tim Fischer several times over the past year but I have never met him in person. So it was really nice to put a face to his name. Funny how sometimes you form images of people from the emails you get from them. Tim is much younger and much taller than I had imagined. Christian Binder and Peter Kirchner also met with us during the day and helped us a lot in making the event a success. Thanks guys!
- James
-
You may have already seen my post about out session at Brussels. Sven Cipido from Ordina has just sent me some more pictures taken during our Brussels section, so I wanted to post them here.
Jean-Marc and I in Ordina's office for Vsug.be.
See his entire photo collection of this event here.
-
Bikes, lots of bikes. And trams too. Then there are also motorcycles, scooters, and cars. You better watch where you are walking while you are in Amsterdam!
That was my first impression of this spectacularly amazing and energetic city!
Jean-Marc and I arrived in Amsterdam to speak at DevDays. We spent a lot of time tweaking our session for this event because it is difficult to present the material we wanted to in the 70 minutes that we were given. Our session took over 2 hours in Brussels! But after several iterations, we cut TFS extensibility and shortened/combined a couple of demos and we hit the target time. We also spent several hours before the session preparing and discussing how we can make it more interactive and entertaining for the audience. We came up with a couple of ideas that we decided to try.
Our session was at the end of the first day, but over 220 of attendees packed into our session! We were very pleased by the attendance, and the audience were very responsive and engaged.
Overall, I was pretty happy with the session. It was definitely the most fun session that I have presented because of the way Jean-Marc and I interacted during the session. I especially appreciated his humor. Whenever he makes a small mistake, he would make a joke about the fact that he is French. The audience laughed out loud several times during the session. Also, there was a big round of applause when he completed his first demo. Bravo, Jean-Marc!
I asked one of the staff members to take some pictures for us, and you can see them below.
Picture of the full session.
Picture of Jean-Marc and I on stage.
After our session, we met with Jos Warmer, who is one of our VSX-insiders. He gave us some interesting feedback about DSL and it was good to finally put a face to a name. Below is a picture we took together.

Picture of me, Jos and Jean-Marc.
In a few days, we will be in Munich, Germany. We will only be speaking to a very small group of developers and architects there, but it will be a great opportunity to meet the Microsoft Munich folks. I will send another update at that time.
- James
-
Yesterday in Brussels, we made our first of a series of presentations in our European tour. I met up with Jean-Marc in the morning at the Microsoft office in Brussels. We ran through our preparation work one more time to make sure we have everything ready.
At noon, our host Katrien from DPE took us out to lunch. We discussed ways we can better reach European developers. I told her about our plans to have a VSX conference around TechEd EMEA timeframe in November, and she readily agreed to help us promote the event in Belgium. One piece of information that I heard over and over again in the past but didn't really sink in for me until now, is that Europeans don't really travel to neighboring countries. But hearing it again directly from a European while I am Europe is finally making it sink it. Katrien stressed that aside from very big events like TechEd, there really is no way that we can put on an event that have developers from other countries come. Good thing we are going to have another VSX developer event around TechEd EMEA timeframe in Europe again this year.
We met with some internal teams within DPE in the afternoon. We discussed the positioning of VSX and how it fits into the bigger picture of what Developer Division does and what Microsoft does. There were a couple of developer evangelists and consultants in the room who had a particular interest in DSL, so we also took some time to discuss the future roadmap of DSL.
After our meetings in the afternoon, we had to go to the user group meeting location immediately. Ordina was one of the big sponsors for this Visual Studio user group in Belgium, and the meeting was in one of its offices. We arrived an hour early because a couple of companies wanted to meet with us to discuss future VSX roadmap and how they can work together more closely on their VSX related projects. For obvious reasons, I won't disclose who they are.
At 6:30 pm, our presentation with the user group began. We were happy to see that the room was full and there were over 70 attendees from my estimate. For over 2 hours, Jean-Marc and I spoke about different areas of VSX. He did a great job at presenting the demos and the audience was very engaged. Katrien kindly took some pictures for us during our presentation and you can see them below.

After our presentation ended, we heard from the organizer of the user group that the feedback was very positive. I hope he wasn't just being nice to us :) Anyway, we had a meeting with another company afterwards and they had built a very interesting project on VSX (again, I won't say who it is as I haven't asked for their permission to blog about the meeting). Too bad they didn't bring a demo, but we agreed to re-engage once I return to Redmond.
So at 10 pm, we finally got back to our hotels. It was a very exhausting day, but I think it was very well worth it.
- James
-
Earlier today, we shipped the matching VS 2008 SDK for VS 2008 Sp1 Beta. We are calling this VS 2008 SDK 1.1 Beta, and it is available for download immediately here.
Today, Jean-Marc and I are also kicking off the VSX European Tour in Brussels, Belgium! Over the next 3 weeks, we will be traveling to different countries to speak at various user groups and developer events about VSX. Here is our schedule:
|
Date |
Location |
Event |
| May 20 |
Brussels, Belgium |
VISUG - Visual Studio User Group in Belgium. |
| May 22 |
Amsterdam, Netherlands |
DevDays 2008 |
| May 26 |
Munich, Germany |
Special Microsoft Event for selected VIPs. |
| May 29 |
Zurich, Switzerland |
MSUGS - Microsoft hosted User Group Event. |
| June 2 |
Prague, Czech Republic |
altairis - Microsoft hosted User Group Event |
| June 5 |
Budapest, Hungary |
VSX Day in Budapest |
The Budapest event will be particularly fun, as we will get to meet back with some old friends like Gabor and Istvan from Europe. Gabor is the man behind the super popular Addon Studio for World of Warcraft, and Istvan is the creator of LearnVSXNow. It'll be great to see them again.
Other than these external events, we will also be meeting with internal Microsoft field staff to educate them on VSX, so they can in turn educate others. If you happen to be in any of these cities during those dates, it'd be great for you to join us!
Here is a picture that I took in the Grand Place in Brussels last night!
- James.
-
Today, we release the Visual Studio 2008 Service Pack 1 Beta. This service pack is particularly important for Visual Studio extenders because they can test it and report any compatibility problems with their extensions.
You can find the downloads are at the following locations:
The download pages:
· Visual Studio: http://www.microsoft.com/downloads/details.aspx?FamilyId=CF99C752-1391-4BC3-BABC-86BC0B9E8E5A&displaylang=en
· .NET Framework: http://www.microsoft.com/downloads/details.aspx?FamilyId=8C36ACA4-E947-4760-9B05-93CAC04C6F87&displaylang=en
· Visual Studio Express: http://www.microsoft.com/downloads/details.aspx?FamilyId=BDB6391C-05CA-4036-9154-6DF4F6DEBD14&displaylang=en
· Team Foundation Server: http://www.microsoft.com/downloads/details.aspx?FamilyId=DCB535BE-C32E-474C-9F64-282A2849ACC5&displaylang=en
For those who are using the VS Shell products, we are making new redistributable packages available for SP1 Beta as well. They can be found here:
· VS Shell (integrated mode) redistributable package: http://www.microsoft.com/downloads/details.aspx?FamilyID=945c2c2b-3dae-460d-8c6d-09b5a3c40f0a&DisplayLang=en
· VS Shell (isolated mode) redistributable package: http://www.microsoft.com/downloads/details.aspx?FamilyID=fd340c29-2ef8-4984-96ed-f42e441223fd&DisplayLang=en
More about the VS Shell SP1 Beta
So what's new in VS Shell SP1 Beta redist packages? The biggest change is that we have dramatically decreased the size of the redist package by over 130 MB. Instead of including the entire .NET FX 3.5 redistributable, we now include the .NET FX 3.5 web bootstrapper. The bootstrapper will figure out wether the client machine has .NET FX 3.5 installed and does nothing if it's already there. If it's not already there, it will download and install for you. The large download size has been the biggest piece of feedback from VS extenders since RTM and we hope that you will like the work that we have done in SP1.
Upcoming...
In a few days, we will be shipping VS 2008 SDK 1.1 Beta. This release is meant to be the release that matches VS 2008 SP1 Beta. Mostly, it will be minor updates, but it will enable you to develop on the latest platform (even if it's in beta form).
More details to come when the new SDK release becomes available!
- James
-
I just finished with my Chalk Talk session, and the launch event is winding down. Folks are heading over to the Launch party at 7 pm, but I will be flying home tonight.
My session went well. Typically, chalk talks don't get much attendance, and I was expecting 20-30 people. But in this case, every single seat in the Chalk Talk area was filled with folks putting extra seats at the back and a bunch of folks standing for the entire session. I spoke about the VS Gallery, the VS SDK and using the VS Shell. The attendees were very engaged throughout the session, had great questions and seemed to have enjoyed the material.
Thanks for coming!
- J.
-
If you missed Soma's blog post from this morning, we are launching the Visual Studio Gallery today. This is the one-stop shop where you can find all the Visual Studio extensions to install, and you can also publish your own Visual Studio extensions to the community.
This launch is very exciting for our team, as we view this as a key part of continuing to build a rich 3rd party ecosystem. Moving forward, we are looking into ways to enable to more seamlessly discover, download and install experience extensions within Visual Studio.
You can visit the Visual Studio Gallery here.
-
I am in L.A. today and tomorrow, to attend and speak at the Visual Studio, SQL Server and Windows Server 2008 launch event.
I feel very lucky to be able to participate in this historical event. This launch wave is the largest one ever for any developer / IT Pro based products. If you are not in L.A. right now, don't worry. You can still participate through the virtual launch experience.
This launch is also very exciting for the VSX team because we will also be launching something tomorrow. I won't give it away right now, but if you check our team blog tomorrow, you should see the announcement.
I am giving the following session tomorrow at L.A. Convention Center. Hope to see you there!
Title: "Extend Your Development Experience with the New Visual Studio 2008 Shell"
Location: 502AB-2
Time: 2:45 - 3:45 pm
Abstract: The Visual Studio 2008 Shell enables developers to build custom tools based on the Visual Studio IDE. Whether you are looking to build an "Express" edition for your programming language product or you want to build development tools for embedded systems, the Visual Studio Shell can help you cut costs and focus on your areas of expertise. In this session, we will show you how to build your own instance of the Visual Studio Shell, and highlight the new extensibility features in Visual Studio 2008.

- James