Welcome to MSDN Blogs Sign in | Join | Help

James @ MS

Personal adventures in the world of technology...
StickyNotes Professional Edition for Visual Studio

Our good friend Pablo Galiano has just released StickyNotes Professional Edition for Visual Studio over the holidays.

You may think that the Professional Edition is just an improved version of the the previous free CTP edition, but it is actually totally different and improved. The original version has the limitation that the sticky notes can only be associated with a file. I gave Pablo the feedback that in order for it to be useful, each note needed to be associated with a line, much like comments in a Word document.

That’s exactly what Pablo has added in the Professional Edition. Coupled with new UI, and cool Shared Team Note feature, the new StickyNotes Professional Edition is an indispensible tool for Visual Studio!

You can see how StickyNotes Professional Edition works and get it from here.

cheers,
James

Foldable Display

OLED displays are already awesome enough. Here is a foldable one that would even be cooler.

http://arstechnica.com/news.ars/post/20081125-blue-oleds-and-foldable-displays-on-tap.html

Everyone wants a larger screen phone so they can better browsing and user experience, but nobody wants to carry a large phone. Something like this could really change the game.

 Update: Maybe foldable OLED displays will find their way into mobile devices in 2009? Check out these 2009 predictions.

Economic downturn requires a scorecard too?

For the past several months, we have been constantly bombarded by bad economic news. The massive evaporation of capital wealth on Wall Street makes for very depressing lunch time conversations. The rollercoaster ride of the Dow Jones index is making people cheer one day and cry the next (unfortunately, there is much more crying than cheering). More recently, layoffs and unemployment have been grabbing more attention, as the average person is tuning out from the market volatility and just praying that the stock market will eventually go back up.

Today on CNET, I found an unemployment "scorecard" for tech companies. A quick look at it will give you a good sense of the scale of our economy's problems.

During these times, I am thankful that Microsoft can still provide us with a safe environment where we can continue to focus on our work and continue to innovate.

After the Long Silence…

I have finally decided to change the name of my blog after radio silence for many weeks. The reason that I haven’t been blogging is that I have moved to a new team within Microsoft. In my new role, there isn’t much to blog about, since the project is confidential. However, I thought I might still be able to blog about things that I have learned along the way while I am working on this project.

If you are looking for VSX-related material, I would refer you to the VSX Team Blog. There is also a list of other VSX team members’ blogs on the main VSX Dev Center page.

I am not sure how much I will be blogging yet, but hopefully, I will have something worthwhile to share with everyone.

- James

Localized VS Shell (w/ SP1) Download Links

Several developers have asked me whether we provide localized versions of the VS Shell. The answer is a resounding YES!

Of course, it’s a little difficult to find the download links, so I have included them below:

 

Integrated Mode

Isolated Mode

English

Link

Link

Japanese

Link

Link

Korean

Link

Link

German

Link

Link

Italian

Link

Link

French

Link

Link

Traditional Chinese

Link

Link

Simplified Chinese

Link

Link

Spanish

Link

Link

Visual Studio 2008 SP1 Now Available

Yesterday, we posted the RTM release of Visual Studio 2008 Service Pack 1.

The download links are below:

Downloads

 

The matching VS 2008 SDK 1.1 RTM will be coming next week. Stay tuned...

 

- James

How do I pick what features are included in my VS Shell (isolated) based application?

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.

image

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.

image

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:

image 

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

Get a PLK or SLK without logging into VSIPMembers.com

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.

VS Gallery Gets New Features!

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

Stop 6 (Final Stop): Budapest, Hungary

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.

P1070184

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.

Stop 5: Prague, Czech Republic

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.

P1070071

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:

  1. 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.
  2. 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.
  3. 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.

Stop 4: Zurich, Switzerland

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.

 P1060959
Picture I took of the group.

P1060960

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

Stop 3: Munich, Germany

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.

 

P1060840

A picture of MTC Munich from the front entrance.

P1060841

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

Update from Brussels

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.

Ordina

Jean-Marc and I in Ordina's office for Vsug.be.

 

See his entire photo collection of this event here.

Stop 2: Amsterdam, Netherlands

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.

 

P1060700

Picture of the full session.

 

P1060703

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.

P1060711

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

More Posts Next page »
Page view tracker