Architecture Explorer and Directed Graph Document video
30/9/2008 external link
Check out Suhail Dutta's Channel 9 video/demo of the Architecture Explorer and DGML documents. He starts with Directed Graph via the Architecture Explorer then goes into the Sequence Designer (generating UML sequences from code) and Layer Designer (validating design intent against implementation). These two feature both heavily depend upon the Architecture Explorer's data model (a directed graph of the software artifacts and their relationships) to peer into the code and surmise the high-level information being presented. He even shows the command line version of Layer Validation via MSBuild.
The VS 2010 cat is peeking it's head out the bag - so to speak
30/9/2008 external link
Check out the article on VS 2010. The screen shot there is my feature! The new Architecture Explorer and features related to it have been my main focus for the last 18 months. It's great to see it getting more light of day.
A longer article contains a link to a better image.
All week this week you can check out the Channel 9 coverage of the recent VS 2010 information at http://channel9.msdn.com/posts/VisualStudio/Visual-Studio-Team-System-2010-Week-on-Channel-9. Tomorrow is 'Architecture Day' with Cameron Skinner. Don't miss it!
I'll certainly be sharing more details as I can, but remember that PDC 2008 is the place to go for all the good details first, including Hand-on-labs with running bits, keynotes and lectures with juicy details and demo's in the pavillion including folks from the development team you can chat with. (I won't be there this year, but look for some folks standing in for me in the VS Team System area.)
Back on Oahu
23/9/2008 external link
After a nice week in Redmond (weather was great through Wed, but turned nasty Thu - Sat) I'm back home in Honolulu. The company meeting was a great experience once again. I always get a charge out of seeing how big Microsoft is in terms of financial success, but more importantly our impact on the world of software and technology. We saw some really great demos of future products and features. The whole team from here in Hawaii attended.
The week was chock full of meetings to plan out the next few months. It's hard to feel productive when it's just all talk. I'd rather be writing code, fixing bugs. But the product plan is nice to have and I can't wait to tell you more soon. Stay tuned after PDC for more on this blog about what I've been working on.
On a personal note, I completed the Basic Keelboat sailing certification course. I'm now certified to take a small boat daysailing. Can't wait to do that. The only problem is that Oahu doesn't have boats for rent to the general public. Plenty of Yacht clubs for boat owners and plenty of charters for large boats (crewed mostly - not a lot of bareboat activity in Hawaii), but nothing in the 20-26' range that I can take out for a few hours. I'll keep looking though.
What's up with Allen
16/9/2008 external link
I can't believe it's been a year without blogging. That's got to change... starting today.
If you've read my blog in the past you know that I moved to Hawai'i in May of 2007. While still with Microsoft I helped to get a small office opened up in Honolulu, HI. We're working on tools that ship with VS Team System Architecture Edition. I wish I could talk about the details, but the handlers around here are keeping it all under wraps until PDC2008. I wish I was going this year, but alas the travel schedule was a little too packed. But I'm still quite happy to know that the features me and my team have been working on will be discussed, demo'd and there is a session one can attend to see how VS Team Architect is shaping up for the future. As that gets closer I'll blog more.
On a personal note...
In the last year I've not cut my hair. If you know me you know that I've worn a flat-top haircut for years and so most people that see me for the first time are quite shocked at hair that is down past my shoulders. In the last year I've also gotten to enjoy one of the most beautiful places on the planet and tried my hand at surfing and the ukelele. Surfing could use some work, but playing the ukelele is coming along great. My most recent personal project is learning to sail. Lessons last Sat and this on Puget Sound.
I'm in Redmond this week along with the rest of the office from Hawaii. We're doing some product planning with the larger team and also attending the company meeting on Thu.
I'm going to try to come by the VSIP annual conference here on Microsoft's campus if I can make it.
Stay tuned...
Please stay tuned for more great things as we lift the covers, somewhat, off the next release of Visual Studio and other platforms/technologies from Microsoft.
Orcas first, then Rosario
2/10/2007 external link
In case you are unaware, we're close to shipping Visual Studio 2008 (aka "Orcas"). I hope that's not really a suprise.
A bit of trivia on the code name "Orcas". When when VS 2003 came out the code name was "Everett". Everett is the name of a town just north and west of Redmond, Microsoft's headquarters. If you drew a roughly straight line on a map from Redmond through Everett extending further North and West you'd be in the proximity of things like Camano Island, Whidbey Island, and Vancouver Island in British Columbia, Canada. Whidbey was the codename of the VS 2005 release. Orcas Island is another one of the islands in this area of the map and that's why VS 2008 is codenamed "Orcas".
There's a follow-on product to VS 2008 to update a bunch of tools in the Team System family of Visual Studio tools including some new tools. This release is code named "Rosario". Rosario Resort happens be a very nice area on Orcas Island. If you ever travel to the Pacific Northwest and want to visit a first rate resort with excellent accomodation, entertainment and food, Rosario Resort is a great place to visit. Rosario will also be a great release of tools from Microsoft.
So, with that bit of trivia behind us...
I'll be in Redmond the week of 10/15 for the VSIP Summit taking place that week. I'll be presenting info on what I've been working on here is the Hawaii Development Center. If you are at the summit, please say hello.
We plan to put what I've been working on into the CTP of Rosario that will be coming out in the next month or so. If you happen to be on the distribution of that preview, I'd love your feedback on the release. More details to come in the next few weeks...
Aloha VS SDK
14/5/2007 external link
I've been working in the VS Extensibility area for quite a few years now. But the time is right for me to venture forth into a new area of responsibility for Microsoft.
I'll be helping to form a new team based in Honolulu, Hawai'i, USA. Microsoft is opening the Hawaii Development Center there and I'm one of the most fortunate individuals on the planet to share in the experience. In the future, I'll be blogging about the HDC and this new project so stay tuned for more info on both of these areas. I'll be redesigning my blog appearance to reflect a more tropical attitude, but the address will remain the same.
So, I won't be in Redmond any longer (as of Friday 5/18). We recently held a VSIP Developer Conference and I was a little nostalgic helping to host my last Dev Lab (as they used to be called). I've also gotten to know some of you via trade shows like Tech*Ed and the PDC; I don't know if I'll be able to join you in those shows in the future, but I hope so depending on what content we have to offer from this new project.
It's truly been a pleasure to work with the VSIP partner community and the VS SDK team over these last few years. I'm extremely pleased with the VS SDK we provide and most of that pleasure comes from the great feedback we've received from the VSIP partner community. There's certainly more that can be done in the product and making extensibility easier is one of the main goals of the team. It's great to see how many people are getting involved with VS extensibility and how the general VSIP community is growing; helping one another along the way. It's been great working on the VS core product and helping so many VS SDK users to extend VS in so many interesting ways.
The VS SDK is in good hands. My change of focus provides an opportunity for the rest of the team to shine. They've always been providing the awesome SDK you consume anyway and I've been lucky to have worked with them. The plans for the Orcas VS SDK are solid and the energy the team is putting into the product and the ecosystem is awesome. The future is very bright for the VSIP community.
I wish you success in your VS extensibility endeavors.
Mahalo,
Allen
Check out the VS SDK for VS "Orcas" Beta1
30/4/2007 external link
Last week we released the VS SDK for VS "Orcas" Beta1. You can use this lastest version of the SDK to build VS Integration packages and DSL Tools-based packages that target VS "Orcas" Beta1.
To get this version of the VS SDK requires access to the http://www.vsipmembers.com site.
James Lau blogged some of the details of this release.
Please check it out and provide feedback. The best way to provide feedback is via the Visual Studio section in the Microsoft Feedback Center on MSDN. You can use this link to access the specific area for Visual Studio feedback.
If you'd like to discuss the VS SDK or have questions about VS Extensibility, the best place to go for online help is the Extensibility forum on MSDN.
RDT changes in VS Orcas
16/3/2007 external link
The Running Document Table is used in VS to control the state of opened documents. This is only accessible via interfaces exposed in the VSSDK and the VS Automation Model. End-users only see the effects of the RDT in places like the dialog that pops up asking the user if they'd like to save changes before closing the IDE.
The underlying implementation in previous version of VS had some problems with reentrancy protection being inconsistent. Additionally various entry points weren't very robust with error handling (some would crash, other return error results, etc).
One of the excellent developers in the Developer Tools Platform team responsible for the base VS platform took it upon himself to make a clean sweep through this area of the codebase and came up with a number of improvements. He sent me a document with the changes that he thought the 3rd party community might be impacted by. I wanted to share that information with you.
One important point to make here is that the interface methods of IVsRunningDocumentTable have not changed. Binary compatibility is preserved so you don't have to worry about your code not compiling in Orcas. If you don't use that interfaces in any way, then you don't have to worry about this at all. But if you do use the RDT interfaces, then you need to check your code on how you interacted with the RDT to see if any of these changes affect your runtime behavior.
Here's a synopsis of an email thread that discusses the changes introduced in VS Orcas. These changes were available in the Sept 2006 CTP of VS (and all susquent versions).
Thread affinity for the RDT has been tightened. With the exception of the following methods, all RDT interface methods must be called on the main thread, else RPC_E_WRONG_THREAD will be returned:
GetDocumentInfo
FindAndLockDocument (with RDT_NoLock)
FindAndLockDocumentEx (with RDT_NoLock, as long as the document exists and has a hierarchy/itemid)
FindOrRegisterAndLockDocument (with RDT_NoLock, as long as the document exists and has a hierarchy/itemid)
GetRunningDocumentsEnum
All methods on IEnumRunningDocuments.
This restriction was only inconsistently applied in previous versions.
The externally-visible change in behavior for the RDT will include, but is not limited to, the following:
· The RDT lock will be faithfully acquired on any call into the RDT. This is handled sloppily in the RDT in previous versions, and more rigorous treatment of the RDT lock has the potential for introducing deadlock where none existed in previous versions.
· The RDT lock will not be held when calling out of the RDT. This also has the potential of causing deadlock where none existed in previous versions.
· Interfaces held by the RDT will be released (i.e. not leaked) for documents left in the RDT when it is destroyed. This only happens on shutdown, so this should be a no-op for packages.
· IVsRunningDocumentTable::RegisterAndLockDocument will require an IVsHierarchy when a document is registered with an edit lock. The documentation specifies this, but the code did not enforce it. There are several other code paths where this invariant can be violated as well. Increasing enforcement could be an issue for packages.
· IVsRunningDocumentTable::UnlockDocument will not allow unlocking of a lock if a lock of the specified type is not held. In previous versions you can UnlockDocument(RDT_EditLock) even though you never acquired an edit lock. Fixing this could be an issue for packages as well.
What is the new behavior if the call is made and the type of lock specified is not held? The following code illustrates the differences:
pRDT->RegisterAndLockDocument (RDT_EditLock, ..., &cookie);
pRDT->UnlockDocument (RDT_ReadLock, cookie);
pRDT->GetDocumentInfo (cookie, ..., &cReadLocks, &cEditLocks, ...);pRDT->UnlockDocument (RDT_EditLock, cookie);
In previous versions, the Unlock(RDT_ReadLock) would return S_OK, the GetDocumentInfo would return cReadLocks=0xFFFFFFFF and cEditLocks=1. After the Unlock(RDT_EditLock), the document is still in the RDT (visible to enumerators, etc.).In VS Orcas, the behavior will change so Unlock(RDT_ReadLock) will return failure, meaning GetDocumentInfo will correctly return cReadLocks=0 and cEditLocks=1. After the Unlock(RDT_EditLock), the document is no longer in the RDT, event sinks have gotten OnAfterLastUnlock, etc.
· IVsRunningDocumentTable::UnregisterDocumentLockHolder will AV with an invalid cookie. The fix would turn the AV into an E_INVALIDARG. This should present no issues for packages.
· Documents enumerated by IEnumRunningDocuments will be enumerated in a different order. There is no order expressed or implied by the interface definition, and the current order is based on the hash of the document name so it’s unlikely that the current behavior is stable enough for a package to have dependencies on it, but it’s theoretically possible.
MPPG/MPLEX runtime DLL not needed
8/3/2007 external link
I was recently alerted to an email sent to Soma (Vice President leading the Microsoft Developer Division) about a problem with the VS SDK's MPPG/MPLEX tools.
Here's the question:
After installing VS SDK (feb 2007) and trying to play with the managed parser generator (MPPG/MPLEX), it seems that the MPPGRuntime.dll, discussed in the documentation and needed to use the output from the command line tools, is missing. I've searched the whole installation of the VS SDK and looked in the GAC without success.Can you point me to the appropriate contact to help me resolve this issue?
The dll mentioned (MPPGRuntime.dll) doesn't actually ship. It's an error in the documentation that it is mentioned. I'm working on getting the documentation issue addressed in a future release.
Originally the code in the runtime dll was used both by the tools (MPLEX, specifically) and the generated code. If this had continued to be the case, then a generated parser would not work at all without the dll. The dll would be required to be redistributed with the parser. This complicates things because if Microsoft supplies a dll that a 3rd party ships, then Microsoft is responsible to service the dll. So, now we're talking about an MSI that would be chained together with the parser installer.
To simplify deployment and servicing complexity, I removed the dll and instead placed the code into MPLEX directly. Additionally, because the generated code needed the functionality, we shipped the source code in the Managed Babel folder of the VS SDK. (See the sample in the Example.ManagedMyC folder for details.)
So, there's no need for a runtime dll and you can use the tools to generate a language service with much simpler deployment.
Talk to you later on,
Allen
VS SDK 4.0 is available for download
1/3/2007 external link
On behalf of the VS Tools Ecosystem team, I am pleased to announce that after months of hard work, VS SDK 4.0 has been released! This is the last SDK release planned for Visual Studio 2005. The team has done a ton of work to make this release friendly to developers who are new to Visual Studio extensibility. It is available for immediate download on the Microsoft Download Center.
Some of the new features included in this release:
VS SDK Browser – the new entry-point to the entire SDK; includes new QuickStart Tutorials and a completely revamped sample browsing experience, community resources and tools info
Package Load Analyzer – allows you to easily diagnose package load failures
Toolbox Installer redistributable package – allows component vendors to simplify deployment, along with a sample demonstrating how to do it all.
Sandcastle – new set of tools for generating managed class library documentation
There's an article in eWeek for this release. (That's a first for the SDK as far as I know.)
V4 SDK (almost) ready!
20/2/2007 external link
We're putting the final touches on the v4 VS SDK for VS 2005.
The team and I have been hard at work ensuring it is at a high level of quality. The content is out of this world. There's a few new samples to start with, a new SDK browser connecting you to community resources as well as sample content, tutorials, documentation and tools. There's a Package Load Analyzer tool than can help with Package Load Failure and other package load issues you might encounter in testing and production environments. There's also a Toolbox Controls Installer package, sample code and documentation (including a tutorial) for control vendors to see how we recommend integrating controls into the VS toolsbox. Note: The Toolbox Controls Installer is expected to be in the next release of VS (aka Orcas) so any code that works with v4 of the SDK and V2005 should work without little or no change in Orcas.
Keep your eyes on this blog in the coming days for the release announcement...
Hola! Barcelona is a VS SDK hit!
8/11/2006 external link
My first trip to Europe is turning out to be great! The city of Barcelona is great. Many attractions to see, lots of nice things to do.
Sunday and Monday this week the VSIP team conducted a Developer Lab with lots of great presentations and 1:1 meetings discussing extensibilty. We ended that event with a dinner for Lab attendees and partners at TechEd at a Flemenco show.
Now we are in the middle of TechEd: Developers (next week is the IT conference). Lots of great presentations at this show and about 4000 people in attendance (some 700 staff).
My own theater-style presentation was well attended compared to TechEd US this summer. I wrote code to build a package on stage. Gareth Jones joined us today for a packed theater presentation on the DSLTools that come with the VS SDK. Additionally partners companies that presented have met with great success in attendance. Most attendees treated the theater like a real session venue staying for the entire presentation.
A lot of good traffic through the VS SDK booth on the first day. Typically we play a triage role finding the right people for the attendees question and did so this event, but there were quite a bit of questions directly related to the VS SDK and extending Visual Studio. The session presented on Tuesday afternoon was a hit with a medium sized full room (not packed tight and not sparse). Some good questions after the session and good opportunity to drive traffic to our booth.
I took some time to visit a session on SharePoint customization on Wednesday. SharePoint itself is totally awesome and great a collaboration platform. I was unimpressed, however, with the SDK to provide code that can customize a site. There were several points where I thought that a schema file for some XML configuration files would be very effective at preventing authoring errors. Additionally there are several opportunities for custom project items or even custom projects that would make the development and deployment of SharePoint customizations much easier to accomplish. Definitely a partner opportunity.
More on TechEd and my first trip to Europe when I find time to post...
Allen
VS 2005 SP1 Beta
9/10/2006 external link
If you author a package or add-in for VS, we encourage you to download the VS 2005 SP1 Beta in order to determine if there are any modfications to your package or add-in that need to be done in order to be compatible. It is very likely that there is nothing you need to do to support SP1, but if I were you I wouldn't leave it to a user to discover a lurking problem.
Here's a link to the Beta announcement.
VS SDK v4 Product Backlog is ready for public review
28/9/2006 external link
Below I've pasted the VS SDK Product Backlog for version 4 of the VS SDK. We're planning to ship this version of the VS SDK in mid-December. This will be the last revision of the VS SDK that supports VS 2005. We'd love to get some feedback on these features and work items.
The major areas of focus for V4 are to
enable community collaboration,
ease component vendor pain,
improve the user experience getting started with the VS SDK and
get a start on some VS Orcas platform and SDK work.
Those themes drove the decisions we've made so far, but we need feedback from VS SDK users to ensure we are driving toward a successful release for V4, so please don't be shy about letting us know what you think of our plan. There is, of course, much more we'd like to do, but have to combine a lot of competing priorities and limited resources in order to come up with the best update we can for this time-frame. Your feedback helps us to understand how best to compromise on priorities and align resources.
Category
Priority
Feature
Doc
10
Documentation Tech Reviews I
Infrastructure
20
Checkin suites coverage improvements
Infrastructure
20
Code Coverage Improvements I
Community
20
Community Content Plan (Forum Sweep)
Other Features
20
General Bug Fixing I
Community
25
Community Content Plan (Forum Ownership)
Component Vendor
25
Component Vendor Web Control
Component Vendor
25
Component Vendor Windows Forms Control
Power Toys
25
Ship Source Outliner power toy code for community collaboration
Component Vendor
26
Component Vendor Setup
Component Vendor
27
Component Vendor Toolbox
Community
30
Community Content Plan (Webcast, Screencast)
Iron Python
30
Event generation
Iron Python
30
IP Language Service - Code window dropdowns Webcast
Test
30
Orcas VS PIA redist testing
Other Features
30
Project Aggregator 2 fixes in Orcas
Power Toys
30
Ship power toys more broadly (not just in VS SDK)
Better OOBE
30
Update Sample Browser Spec
Community
40
Community Content Plan (Blogs)
Other Features
40
General Bug Fixing II
Better OOBE
40
Getting Started Docs
Orcas
40
Orcas SDK - Ship with Orcas CTP's
Partner Content
40
Test Adapter Sample (VS IDE Host)
Test
40
Vista GDR (Beta)
Test
40
Whidbey SP1 (RTM)
Community
42
Community Content Plan (Team Chat 30 min)
Better OOBE
43
Update Setup
Component Vendor
45
Component Vendor Help Integration
Community
45
Connect VS SDK user to community shared source for PowerToys and other projects
Component Vendor
50
Component Vendor Component Versioning
Doc
55
Integrate Documentation Tools into SDK
Samples
60
Nested Project Sample (update from Archive folder)
Other Features
60
Project Systems/VSRegEx - Cloning Templates Fix
Iron Python
70
IP Project - BrowseWith context menu for HTML project items
Other Features
70
Project System Base Classes - Cancel build
Other Features
99
Dynamic Project Flavor Sample
Test
99
PPE testing of Orcas
Other Features
99
Setup/Deployment of Packages via Deployment Projects
Other Features
99
Update MenuAndCommands ref samples for ComboBox command type
Infrastructure
100
Code Coverage Improvements II
Doc
100
Documentation Tech Reviews II
V3 of VS SDK for VS 2005 now released
15/9/2006 external link
You can visit the VS Extensibility portal for the latest information and resources. Follow the links to get the SDK (note there's now an easier way to download at the bottom of this mail).
Some really cool things in this release:
Power toys (Check out the Source Outliner tool)
New Samples (Iron Python now does Web Sites and Web Application Projects)
Updated less-restrictive license
Freely available on Microsoft download site.


