Geek Noise
Rants, rambles, news and notes by Peter Provost
13

20 jährigen Maurfall

Friday, 13 November 2009 04:46 by Peter Provost

This week I was in Berlin presenting four sessions at TechEd Europe. This is a beautiful city and it was a great event.

We were very fortunate to be here for the 20th anniversary celebration of the falling of the Berlin Wall and I thought I’d share some pics. Don Smith got a bunch more using his much better camera and we also got some video of it actually coming down, but these are all I have here with me tonight.

As you may be able to tell it was pouring down rain for the 2+ hours we waited for it all to happen, but the people were fun, there was music and speeches (in German) and best of all... Glühwein!

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
26

Extending Visual Studio 2010 UML Designers – Part 1: Getting Started

Monday, 26 October 2009 10:28 by Peter Provost

This is the first in a series of blog posts to show how the new UML Modeling capabilities in Visual Studio 2010 Ultimate can be extended. Later articles will expand on the examples shown here and show more advanced extensibility.

Introduction

In Visual Studio 2010 Ultimate we have introduced a set of new UML 2.1.2 modeling capabilities. We include designers for producing five UML diagram types:

  • Class Diagram
  • Sequence Diagram
  • Component Diagram
  • Use Case Diagram
  • Activity Diagram

In addition, we also have tools for analyzing, documenting and validating your architecture. The Layer Diagram can be used to define the large layered components on your solution, map them to real code elements and later validate that your as-built system conforms to what you planned. If you have existing systems you want to investigate and understand better, we have the Architecture Explorer and a set of Dependency Graphs that you can create to see how the parts come together.

As we were building our new capabilities, we realized that people would need to be able to add new capabilities to the diagrams and models we’re including in the box. You may, for example, want to add a command for refactoring the model to the menu that appears when you right click on on a shape on the Class Diagram. Or perhaps you want to be able to drag-and-drop something onto a diagram and have it create new model elements based on the source of the drag. Or maybe your enterprise has guidelines about what makes a model “valid” and want to code those validation constraints into the tool so you know when you have deviated.

We can support all of those scenarios using very simple extensibility mechanisms that are present in Visual Studio 2010 Ultimate.

Before You Begin

This series of articles assumes you already have Visual Studio 2010 Beta 2 Ultimate installed on your system. To make our lives a lot easier we will also be using the Visual Studio 2010 Beta 2 SDK to get our projects started, installed and debugged.

In case you are missing any of those, you can find links to all of the downloads on the Visual Studio 2010 and .NET Framework Beta 2 Landing Page.

Creating Your First Extension Project

Visual Studio 2010 uses the Managed Extensibility Framework for lightweight extensibility and we were eager adopters of that when we created our own extensibility hooks. What this means is that to create a new UML Designer extension, you create a new VSIX Project (a VSIX is just a ZIP file that tells Visual Studio how to install the extension…see What is a VSIX? for more information) and then add a simple little MEF component to it. Easy pie. So let’s get started…

Creating the VSIX Project

Before we can get into the extension itself, we need to get our project set-up correctly.

  1. Create a new C# VSIX Project (you can do VB if you want but my code here is in C#). File | New | Project | Visual C# | Extensibility | VSIX Project.
  2. Add references to the following .NET Assemblies:
    • Microsoft.VisualStudio.Modeling.Sdk.10.0
    • Microsoft.VisualStudio.Uml.Extensions
    • Microsoft.VisualStudio.Uml.Interfaces
    • System.ComponentModel.Composition
  3. Open source.extension.vsixmanifest in the editor. (If it opens in an XML editor, close it and choose View Designer from the file context menu).
  4. Fill in the Name, Author, and Description sections.
  5. Set “Supported VS Editions” to Visual Studio Ultimate.
  6. Save all open files and close them.
  7. Delete the file VSIXProject.cs from the project

VSSDK Beta 2 Bug Workarounds

Unfortunately there are a couple of bugs in the current VSSDK Beta 2 that we have to work around. I’ve been told they will be fixed in an update release but until then, let me take you through the project cleanup required to make this work:

Step 1 – Tweak the .csproj file

  1. Right click on your project and choose “Unload Project”.
  2. Right click again on your project and choose “Edit Yourprojectname.csproj”
  3. In the topmost property group, look for the XML tag <IncludeAssemblyInVSIXContainer>. It will be set to false. Change it to true.
  4. Save the .csproj file and reload it into Visual Studio.

Step 2 – Tweak the .vsixmanifest file

  1. Right click on the file “source.extension.vsixmanifest” and choose View Code
  2. At the bottom of the file in the section called <Content> add the following line. (Yes, those vertical bars are important.)
    <MefComponent>|Yourprojectname|</MefComponent> 
  3. Save and close the file.

Say “Hello World!”

Now let’s make this thing fly. We won’t get into any complicated UML or model manipulation in this article. Instead we will just add a new menu item to the context menu of the UML Class Designer. When clicked, the menu item will say Hello World.

  1. Add a Project Reference to System.Windows.Forms (a simple way to get a MessageBox).
  2. Add a new class named HelloWorldCommandExtension.cs to the project
  3. Have your new class implement the ICommandExtension interface and add the following attributes to your class (you will need to add the required using directives):
    [Export(typeof(ICommandExtension))] 
    
    [ClassDesignerExtension] 
  4. Delete the body of the QueryStatus method
  5. Replace the Text property implementation as shown here:
    public string Text
    
    {
    
        get { return "Hello World!"; }
    
    }
    
  6. Replace the Execute method as follows:
    public void Execute(IMenuCommand command)
    
    {
    
        System.Windows.Forms.MessageBox.Show("Hello World!");
    
    }

Testing Your Extension

The nice thing about using the VSIX project template is that is sets everything up for debugging and testing for you using the Visual Studio Experimental hive. To run your extension without debugging, press Ctrl+F5. To run with debugging enabled, just press F5.

One the Experimental Hive is up and running, create a new Modeling Project, add a new Class diagram, and right click on the surface. You should see your “Hello World!” menu item and choosing it should display the message box. Voila!

Next Steps

In the next part of this series, I will show you how to create new model elements in the Model Store and display them on the diagram surface. Subsequent articles will explore other diagram types and more complex scenarios including creating a full VSPackage.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:   , , ,
Categories:   Technology
Actions:   E-mail | del.icio.us | Permalink | Comments (10) | Comment RSSRSS comment feed
19

Visual Studio 2010 and .NET 4.0 Beta 2 LIVE on MSDN

Monday, 19 October 2009 03:32 by Peter Provost

VS-2010-dotNet4-LogoThis morning we released to MSDN the Beta 2 release of Visual Studio 2010 and .NET Framework 4.0 to MSDN. See Soma’s blog post for the official bits.

There is so much good stuff coming in Beta 2 it is hard to keep track of it all. Over in the Arch Tooling team where I work, we’ve done a ton of work on increasing the performance of the UML, Layer and Architecture designers we’ve made. We have also added a BUNCH of new and cool MEF-based extensibility hooks into our designers so customers can add new and interesting features that we may not have thought of.

We’ve been dogfooding this release (client and server) internally for quite a while now and I have to say I really like it. It feels good, it looks good and it does what I want to do.

Probably the biggest thing people will talk about initially, however is the new SKU changes we’re making in 2010. I remember way back before I joined Microsoft I criticized the “role-based” SKU system as not actually aligning with how real teams get work done. As Brian Harry explains on his SKU changes post, we’ve fixed that by adopting a SKU system very similar to that used by Windows and Office:

  • Microsoft Visual Studio 2010 Ultimate with MSDN: the comprehensive suite of application lifecycle management tools for software teams to ensure quality results from design to deployment.
  • Microsoft Visual Studio 2010 Premium with MSDN: a complete toolset for developers to deliver scalable, high quality applications.
  • Microsoft Visual Studio 2010 Professional with MSDN: the essential tool for professional development tasks to assist developers in implementing their ideas easily.

As you can see this is a much cleaner SKU model and we’re excited to see how customers respond.

This Beta 2 release is available on MSDN subscriber downloads NOW and will be generally available on Wednesday October 21. .NET Framework Beta 2 will be released in English, Japanese, German and Arabic.  VS Beta 2 will be released in English, Japanese, and German.

There have also been a bunch of updates recently to the Microsoft Developer Network (MSDN) website. A serious design update and ton of new social networking features should help people get the information they need faster than ever. Scott Hanselman blogged about it last week.

We all hope you try this release out and give us tons of feedback on how it works for you and your business.

Edit: Added link to Brian Harry’s SKU post and some descriptive content about the SKUs.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:   ,
Categories:   Technology
Actions:   E-mail | del.icio.us | Permalink | Comments (1) | Comment RSSRSS comment feed
03

Code Generation Made Easy

Wednesday, 3 December 2008 03:39 by Peter Provost

Visual Studio Logo The Text Template Transformation Toolkit, aka T4 Templates, is getting some press recently. T4 is a code generation and templating system that is built into VS, but not enough people know about it.

In P&P, we used it for almost all of our code generation in our Software Factories, and it will be an important part of how we do code-gen in Visual Studio Team System Architecture Edition.

This recent article in the Redmond Developer News prompted me to blog this, and it is a nice overview of what T4 is all about with quotes from many of the key people involved in the development of the toolkit.

Here are some more recent posts about T4:

Enjoy!

Currently rated 1.0 by 1 people

  • Currently 1/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:   ,
Categories:   Technology
Actions:   E-mail | del.icio.us | Permalink | Comments (2) | Comment RSSRSS comment feed
14

ArcCast.TV – What’s coming for Architects in Visual Studio Team System

Tuesday, 14 October 2008 06:25 by Peter Provost

Somehow this slipped past me, but a couple of weeks ago a webcast that I did with local Architect Evangelist Joe Shirey posted up on Channel9.

Here’s the official description:

ARCast.TV - Peter Provost on what’s coming for Architects in Visual Studio Team System

The upcoming version of Visual Studio Team System (code named Rosario) has a number of new features and functions for Architects.  Senior Program Manager of Visual Studio Team System for Architects Edition, Peter Provost, sits down with Joe Shirey to discuss what investments Microsoft has made into the product and how it will potentially improve the lives of Architects.

In addition to that, a number of other great webcasts have been going up by my team mates and other VSTS folks. We’ve created a special section on Channel9 for all of this great content at http://channel9.msdn.com/VisualStudio/ so please go check it out!

Currently rated 1.0 by 1 people

  • Currently 1/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:   ,
Categories:   Technology
Actions:   E-mail | del.icio.us | Permalink | Comments (0) | Comment RSSRSS comment feed
11

Visual Studio 2008 SP1 and .NET 3.5 SP1 Release to Manufacturing

Monday, 11 August 2008 04:24 by Peter Provost

Time for another release announcement:

REDMOND, Wash. — Aug. 11, 2008 — Microsoft Corp. today announced the release to manufacturing (RTM) of the .NET Framework 3.5 Service Pack 1 (SP1) and Visual Studio 2008 SP1. These releases come just nine months after the release of the .NET Framework 3.5 and Visual Studio 2008, and include a substantial number of updates based directly on customer feedback. The service packs continue to address the needs of the developer community by making it even easier to develop applications for the latest platforms, with new features such as the .NET Framework Client Profile for faster deployment of Windows-based applications, multiple enhancements to ASP.NET, and unparalleled support for database application development through the ADO.NET Entity Framework, ADO.NET Data Services and integration with SQL Server 2008.

“Visual Studio 2008 SP1 and the .NET Framework 3.5 SP1 had an extremely positive impact on our ability to develop a Web-based application that our customer, Misys Healthcare Systems, could use to manage patients’ records — in fact, it helped us boost development speed by 60 percent,” said Galen Murdock, president and CEO at Veracity Solutions Inc. “The Microsoft ASP.NET AJAX improvements and new capabilities such as ADO.NET Entity Framework and ADO.NET Data Services meant we didn’t have to worry about any of the underlying plumbing and could simply focus on building a highly responsive and interactive experience for users.”

Read the entire press release here:
http://www.microsoft.com/presspass/press/2008/aug08/08-11NETFXPR.mspx

UPDATE: Here are links to all the downloads:

Visual Studio 2008 Express Editions with Service Pack 1 (Bootstrappers)
http://go.microsoft.com/fwlink/?LinkId=123679

Visual Studio 2008 Express Editions with Service Pack 1 (iso)
http://go.microsoft.com/fwlink/?LinkId=123680

Visual Studio 2008 Service Pack 1 (Bootstrapper)
http://go.microsoft.com/fwlink/?LinkId=122094

Visual Studio 2008 Service Pack 1 (iso)
http://go.microsoft.com/fwlink/?LinkId=122095

Visual Studio  Team System 2008 Team Foundation Server Service Pack 1
http://go.microsoft.com/fwlink/?LinkId=124829

.NET Framework 3.5 Service Pack 1
http://go.microsoft.com/fwlink/?LinkId=124150

Currently rated 3.0 by 2 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:   ,
Categories:   Technology
Actions:   E-mail | del.icio.us | Permalink | Comments (3) | Comment RSSRSS comment feed
07

Dark Visual Studio - I'm hooked

Monday, 7 July 2008 10:24 by Peter Provost

Dark Visual StudioI admit I was skeptical when Brad Wilson was talking to me about his Dark Visual Studio color scheme. Oddly enough, though, I've used a dark scheme in Vim for quite a while, so it should have felt more natural to me.

Lately I've been doing a lot more coding and decided to give it a shot. I'm now one week in and I'm hooked. I'm using Brad's settings (Consolas version) unmodified and are very nice on the eyes.

The screenshot on the right is of my current setup, as I typically run it, with all Tool Windows hidden but accessible via keystrokes.

In his post he mentions his "black-on-white with presentation tweaks" settings, but I don't think he's posted it. GIVE IT! Tongue out

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags:  
Categories:   Technology
Actions:   E-mail | del.icio.us | Permalink | Comments (6) | Comment RSSRSS comment feed
14

The Last vsvars32.ps1 I'll Ever Need

Saturday, 14 June 2008 06:48 by Peter Provost

I know Chris Tavares mentioned this at work one day when I was at P&P, and I'm very excited that he blogged it and made it so easy to do.

The last vsvars32.ps1 I'll ever need

I made one tiny modification, which is to default to 9.0 instead of 8.0 since that is the environment I use, but other than that it seems to work great.

Thanks Chris!

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
28

New Unit Testing Features in Orcas

Tuesday, 28 August 2007 05:23 by Peter Provost

A while back Naysawn Naderi has posted a series of write-ups of the upcoming features in Visual Studio Orcas (that I forgot to blog about) that are specifically to address the needs of TDD and developer-oriented testing. I was on the committee of people who helped advise their work in this area and while there is still a lot of work to do, they are doing some good stuff that should help:

  1. Better Execution Times
  2. Run Tests Context Menus
  3. Short cut keys to run tests (WOOT!)
  4. Disable the "test deployment" icki-ness
  5. Support for the Abstract Test Pattern via Test inheritance (boo!)
  6. Click thru to the point of failure

Yes, we all know these things should have been there in V1, but they weren't. And now we're trying to make it better.

Grats to Naysawn and team for helping move the ball along.

Technorati Tags: , ,

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
09

Unit Testing Makes it into VS-Pro (Finally)

Monday, 9 April 2007 04:20 by Peter Provost

One of the more popular and commented on posts on this blog was one I made back before joining Microsoft and before VSTS shipped where I tried to start a community push to get Unit Testing into all of the VS SKUs.

Naysawn Naderi (PM for Developer-Oriented Testing in VSTS) recently announced that we have made a major step in that direction by getting this capability into the Visual Studio Pro.

Great work guys!

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5