Welcome to MSDN Blogs Sign in | Join | Help

MSR Software Engineering Innovation ( Senova ) Awards

Product groups at Microsoft work quite closely with the folks in Microsoft Research. Periodically we meet with our MSR colleagues to discuss the various challenges we are currently experiencing as we tackle real-world issues prevalent in shipping commercial software, or that we see looming within the foreseeable future.

MSR has just started a “Request for Proposals” around Software Engineering research. Click here to see the full details.

This is a great opportunity for folks in academia to build on what we are doing in Visual Studio 2010 and other MS technologies and really push the limits on what is possible. It’s also a great way to get your ideas out in front of a ton of extremely smart and creative people looking to solve real-world problems.

Here’s a quick blurb off the web site:

Goals and Objectives

Multiple challenges face the software engineering community in the realm of software engineering education, research, and tools. With this request for proposals, Microsoft Research will support academic research in software engineering technologies, tools, practices, and teaching methods. Projects can be related to any of the core areas of interest in software engineering research and education. Proposals are invited from but not limited to the following areas of interest:

  • Computer supported cooperative work
  • Empirical software engineering
  • Engineering secure software
  • Mining software repositories
  • Programming languages and design
  • Software dependability, safety, and reliability
  • Software engineering education
  • Software processes
  • Software requirements engineering
  • Software testing and analysis
  • Software verification
  • Static analysis and bug-finding

Application deadlines are Feb 1, 2010. :)

Posted by camerons | 0 Comments
Filed under:

PDC 2009

Realized I haven’t mentioned that I am planning on giving a talk at this year’s PDC. Here’s that abstract:

Visualization, UML, and DSLs

Cameron Skinner

Microsoft Visual Studio Team System 2010 Architecture Edition introduces a whole host of new designers and modeling tools to help enterprises and teams build software. UML Diagrams and the Layer Diagram can be used to plan and design the assets your team will produce, and communicate effectively about those designs during the entire development lifecycle. The Architecture Explorer and Graphs help you investigate and better understand the assets you have to enable more effective planning and decision making. Come learn how you can use all of these tools when investigating your current assets, and planning and designing your future work.

I hope to see you all there!

One other thing that I also want to mention is that Jens Jacobsen, a Program Manager on my team, has just started blogging. His first-time post is right here.

I’m looking forward to watching what Jens comes up with, as he is planning on focusing in on how to improve overall User Experience of the tooling we are producing, now and into the future. He is uniquely qualified to lead the charge on this as he has deep experience in user experience research.

So check out his blog and give Jens some feedback / participate in future discussions he begins.

Thanks!

Cameron

Posted by camerons | 0 Comments
Filed under: ,

VS2010 Beta 2 Feedback Survey

Following up on my last post, Jason Zander has actually created a simple survey that would be great if you could take. Check out his post here, or go directly to that survey from here.

This type of feedback absolutely helps us create the best product we can, so we very much appreciate your time on this type of thing!

Cameron

Performance

There are a number of features in the product that completely depend on the source code you push through the feature in regards to memory utilization and performance. For example, the creation of the “Standard Graphs” ( any of the graphs generated by the following menu items

image

) can be a very fast operation or can take some time and use some significant amount of memory, depending on how large your solution is.

We have lots of internal tests and code bases we run the product against, but I would like to hear how the product is performing against the code you are putting it up against.

Please drop me a note and let me know what your experiences are now that the Beta2 build is broadly available. I want to hear the good, the bad, and the ugly! Don’t hold back! :)

Thanks,

Cameron

Posted by camerons | 6 Comments

Providing Feedback

By now, you’ve pulled down the Beta2 bits and have started exploring. ( No you say? Please check this post for details on how to get the bits…. )

You may have questions, want to express concerns, find bugs and want to report them, or in general just look for more venues where topics specific to the Architecture and Modeling tools in Visual Studio 2010 can be found.

The MSDN forums are the place to start, and in particular, the following two forums have been created for the Beta2 bits:

Visual Studio Architectural Discovery & Modeling Tools
”Discuss the code visualization and modeling tools in Visual Studio 2010, such as Architecture Explorer, dependency graphs, UML diagrams, and layer diagrams”

Visual Studio 2010 Domain-Specific Languages (DSL) & Modeling Tools Extensibility
”Discuss the Microsoft Domain-Specific Language (DSL) Tools and extending the architecture and modeling tools for Visual Studio 2010”

As the product roles into RTM, these forums will be the place to directly interact with MVP, fellow users, and of course the folks from Microsoft that actually built the product!

See you there! :)

Cameron

Custom Toolbox Items

[NOTE: This post is part of a blog series, the start of which is here.]

When defining layer diagrams for your organization, or various other modeling concepts and diagrams that you want to make available to your team, you can of course simply check in those diagrams to your version control system, such as Team Foundation Server. But another mechanism we have enabled in the product that can easily be overlooked is the ability to create custom toolbox items from existing diagrams ( UML or Layer ), and then make those available through the VSIX mechanism also new in Visual Studio 2010.

In this post, I’m going to walk you through the steps needed to create a couple different custom toolbox items. ( I’ll talk about the new VSIX capabilities in another post. )

Let’s create a Layer Diagram ( I discuss the basics of what the Layer Diagram is about here ) that can be used as the pattern for a new toolbox item that will appear whenever a Layer Diagram is present in the VS document well.

 

1) Select the “Architecture->New Diagram…” menu item.

 image

2) Select the “Layer Diagram” in the Add New Diagram dialog, and give the diagram the “PresentationLayer” name:

image

3) If you are following along exactly, this will prompt you for the name of a new modeling project. Let’s give the project the name of “CustomToolBoxItems”:

image

Cool. Now the new layer diagram and modeling project show up inside Visual Studio.

What we’re going to do now is replicate a layer diagram that is found in the second edition of the Patterns & Practices Architecture Guide. Specifically, the layer diagram described in Chapter 6: Presentation Layer Guidelines.

4) Create the following layer diagram:

image

Tips & Tricks, plus a Beta2 BUG ALERT:

I cut a quick video to include with this post to show a couple of suggestions / tips on how to quickly build the diagram above, as well as call out some funky behavior in the Beta2 build that has since been corrected. Here’s that video.

One thing I failed to mention in the video is that you can navigate in and out of nested layers by holding the Shift-> to get the tab to go to inner layers, and Shift-< to go to containers.

5) Save the PresentationLayer.layerdiagram

At this point, you need to create a directory in your %userprofile%\my Documents\Visual Studio 2010 directory.

6) Start a command prompt and cd to %userprofile%\my Documents\Visual Studio 2010

7) Create a directory called “Team Architecture”

8) cd into the “Team Architecture” directory and create another directory called “Custom Toolbox Items”

9) Copy your “PresentationLayer.*” files from your modeling project to the “Custom Toolbox Items” directory.

Here’s an image of my command line actions of steps 5-9:

image

Ok, we’re almost there. Before we exit Visual Studio, do take notice of the current toolbox window, which should look something like this:

image

10) Exit and then restart Visual Studio, and create a new modeling project.

11) Create a new layer diagram

Once the new layer diagram is visible, your toolbox should look something like this:

image

At this point, you can select the “PresentationLayer” toolbox item and drop into your new layer diagram. You should see the exact same diagram that we created in the step 4!

Now this is great, but we also give you the ability to control how these new toolbox items are displayed and organized. Enter the .tbxinfo file.

12) Create a file called “MyCustomItems.tbxinfo” in the “Custom Toolbox Items” directory we created in step 8.

13) Open that file in Visual Studio, and paste the following code:

<?xml version="1.0" encoding="utf-8" ?>
<customToolboxItems xmlns="http://schemas.microsoft.com/visualstudio/2010/TeamArchitect/CustomToolboxItems">
  <customToolboxItem fileName="PresentationLayer.layerdiagram">
    <displayName>
      <value>Presentation Layer Pattern</value>
    </displayName>
    <tabName>
      <value>Patterns &amp; Practices</value>
    </tabName>
    <image>
      <bmp fileName="cloudservice.ico"/>
    </image>
    <f1Keyword>
      <value>PLayerHelp</value>
    </f1Keyword>
    <tooltip>
      <value>Create the Presentation Layer As mentioned In Pattern And Practices' Architecture Guidance v2</value>
    </tooltip>
  </customToolboxItem>
</customToolboxItems>
 
Once you save that file, exit Visual Studio, open a modeling project and open a layer diagram, you’ll see the following:
 image

NOTE:

As you play around with these custom tool box items, it is possible that you’ll start to see toolbox items from past experiments. If you start to see things your aren’t expecting, right click in the toolbox and select “Reset Toolbox”:

image 

That’s it! You can experiment with adding more custom toolbox items created by using layer diagrams, and you can do the exact same thing with any of the UML diagrams as well. This is a great way to get started with Design Patterns or any other template you’d like to make more accessible with your engineering team.

Enjoy!

Cameron

 

[NOTE: This post is part of a blog series, the start of which is here.]

DSL SDK for Visual Studio 2010 Beta2 Released

Jean-Marc has just posted some great details on the Beta2 version of the DSL SDK.

The amount of capabilities that have gone into the DSL Toolkit this version has been great to see. That team has done a fantastic job of increasing the power of what a DSL created via the toolkit can get done.

Man, this has been a crazy week, in all the best of ways! :)

Layer Diagram in Visual Studio 2010 Ultimate Beta 2

[NOTE: This post is part of a blog series, the start of which is here.]

 

I’ve had a couple of posts that have discussed the general nature of the Layer Diagram ( check out this older post to get a rough idea of what this diagram is all about ), a new diagram type we have introduced in VS2010. The main concept of the Layer diagram has remained the same, but a number of subtle and not so subtle changes have occurred to this diagram since the early CTPs, through Beta 1, and now finally, Beta 2. I’m going to discuss some of those details at the high level, then dig into more of the details in the posts ahead.

But for this post, I figured I’d post a video to get you into the latest features of the layer diagram as quickly as I can. You will need to install the free Camtasia codecs in order to view it. Enjoy!

Posted by camerons | 0 Comments

Lovett is Blogging!

Chris Lovett, an architect on my team who has a glorious and long history with Microsoft, has finally joined the blogosphere! His expertise is all things .NET, but in particular he knows the code behind the new DGML graphs and dependency diagrams that are new in Visual Studio 2010 Ultimate.

His first two posts are fabulous, both of which include videos of Chris walking through some of the power of the DGML graphing technology. Be sure to check out his “teaser” post here, and a more in-depth post on our Standard Dependency Graphs.

Be sure to subscribe to his blog, as I know he’ll be putting up quite a bit more content in the weeks ahead.

You’ll be glad you did! :)

“First-time Experience” with Arch Tools

[NOTE: This post is part of a blog series, the start of which is here.]

 

Ok, you’ve downloaded the Beta 2 bits of Visual Studio 2010 and .NET Framework 4.

Now you want to explorer the new Modeling and Visualization tools. This post will help you make those first couple of steps.

1) Launch Visual Studio

Notice the new top-level menu item called “Architecture”:

image

With no solution open, selecting the menu item simply results in the following:

image

 

2) Select “New Diagram…”

After a couple of seconds, a dialog box appears, which looks like this:

image

This dialog makes it very easy to see all the diagrammatic capabilities that are new in 2010. You see the ability to create a total of five different UML diagrams, a Layer Diagram option, and last but not least, the Directed Graph Document.

I’ll go into detail on all these later, but for now, just accept all the defaults and hit the OK button.

Now, because you do not have any solution open, you will see the following dialog:

image

( You’ll see the same dialog even if you have a solution open, but no Modeling projects exist in the solution ).

BUG ALERT:

Unfortunately, a little bug slipped through the cracks that I want to point out so you don’t waste your time logging a bug that has already been fixed.

If you hit the cancel button at this point, you’ll see this dialog:

clip_image002

You can hit the OK button and no harm will be done, but not quite the experience we’re looking for. ;)

Take the defaults and hit the OK button. You should see something similar to what you see in the image below ( minus my red annotations of course ):

image

At this point, your ready to start adding items to the class diagram to your hearts content. This is a pretty common first couple of steps that you will take as you start using VS 2010 Ultimate to model your problem domain using the various UML diagrams.

The steps above are very similar if you have an existing solution already open, but I do want to point out a couple of differences. The steps below are quite common when you are looking to the tool to help you understand an existing code base.

3) Open an existing solution

Just open any solution you’ve got within reach. I’m going to open up the old standby, Petshop 4.0. ( This will result in the current solution being closed, but don’t worry about that. )

Once your solution is opened, you’ll see some new additions to the “Architecture” menu item:

image

Go ahead and try one of the menu items out. I selected the “Generate Dependency Graph->By Assembly” menu item, which resulted in a graph that looks like this:

image

Don’t worry about the details on this yet. We’ll be diving into those details in future posts. For now, we’re just kicking tires.

One last thing to point out before calling this post done.

4) Open up a source file

In my case, I’m going to open up the Order.cs file in the OracleDAL project.

Find a decent size method in your class, right click in the text editor, anywhere within the method and select …

5) Generate Sequence Diagram

You’ll see this dialog:

image

Just take the defaults and hit OK. In my case, a diagram is generated that looks like this:

image

Again, I’m not going to go into any more detail on this than I have just done. I just wanted to point out a few very common ways into some of the new features in the product.

As I pointed out in this previous post, I’ve got a lot of topics I’m going to nail down for you. I don’t have any specific order that I’m committed to following, so if you have some preferences of which topics I do first, please let me know!

Cameron

NOTE: This post is part of a blog series, the start of which is here.

Modeling and Visualization in Visual Studio 2010 Ultimate

This posts marks the start of wave of posts that I plan on doing in the days and weeks ahead. Below find a picture of the general topics that I plan on drilling into. I’ll likely veer off the path a bit here and there, but in general, the next wave of posts coming off my desk are going to be organized by the topics you see below.

Post describing the easy ways into the product.

Take note of the swim-lane titles ( “Understand The Code” etc. ). I’m planning on organizing the topics into themes or issues that those capabilities in the product are really meant to solve or address. For example, “Understand The Code” is a theme about understanding your existing system via code analysis and various visualization techniques and patterns. The end goal of that is to then be better armed to actually manipulate that code base to make it do some new feature that your customer has recently changed their mind about. ;)

As I flesh out these various topics with blog posts, I’ll be sure to come back to this post and turn the above Activity Diagram into an image map that links back to the post most relevant to the topic. That way, you’ll be able to more easily reference these topics in the future.

So with that, let me leave you get back to work. I’ve got a lot of writing to do. :)

Cameron

 

[UPDATED: The “First-time Experience”, “Layer Diagram”, and “Custom Toolbox Items” are now linked to posts explaining those topics. ]

Posted by camerons | 2 Comments

Visual Studio 2010 and .NET Framework 4 Beta 2!!!

Ok, it has been a little while since I blogged last, but it is for good reason, and now’s the time to show you why.

The entire Visual Studio team, including my own, have been working extremely hard to get the Visual Studio 2010 Beta 2 release squared away, and I’m very pleased to announce that those bits have been made available as of 9:00 AM PDT today! ( See Soma’s announcement here. )

WooHoo!!!

There have been simply a *ton* of changes to the product since last we chatted, both from a functionality perspective ( we’ve made lots of progress that I can’t wait to tell you about! ) to changes in the Visual Studio SKU structure, to logo and name branding, and pricing changes. MSDN itself has been redesigned!

But first and foremost, if you are an MSDN subscriber, stop what you are doing and go down load Beta2 and the .NET Framework 4 bits from this link. I really think you’re going to like what you see! And Beta2 is a “Go Live” release, which means we are encouraging you to use the product in production, with an implied understanding that if serialization formats or what have you change between now and RTM, we’ll provide a way to move your data and artifacts forward so that you don’t lose any work.

If you aren’t an MSDN subscriber, general availability for the release will happen on October 21st.

To get more information on the new packaging and licensing details, please visit this link. But here’s a taste of the new Visual Studio 2010 logo:

image

And to top everything else off, the official launch date for Visual Studio 2010 and .NET Framework 4 is March 22nd, 2010!

SKU Structure Change

A couple words about the changes that you can read more about here. The Architecture Edition, along with many of the features of the Team System 2008 Development box, are now part of the Visual Studio 2010 Ultimate product.

The Visual Studio product line has moved to more of a “Russian Doll” model in regards to how the features are represented in each version of the product. At the top of the stack, including all the features and functionality of Visual Studio 2010 Premium and Visual Studio 2010 Professional, is the capabilities found in Visual Studio 2010 Ultimate. Going forward, I’m going to be spending my time with posts describing the Modeling and Visualization technologies in Ultimate, as that is what I know best, as that is what my team does. :)

But quickly, here’s a general view of the capabilities found in the new SKU structure. Please understand that from a feature perspective, Ultimate contains everything you see in this list ( all the Premium + Professional features ), plus the Ultimate specific features.

The features in red are the ones my team is responsible for delivering. Those features are the ones I will continue to blog about in depth in the days and weeks ahead.

Microsoft Visual Studio 2010 Ultimate ( includes all features from Premium and Professional SKUs ):

  • IntelliTrace
  • UML Modeling
  • Layer Diagram & Architectural Validation
  • Architecture Explorer
  • Web Testing
  • Load Testing

Microsoft Visual Studio 2010 Premium ( includes all features from the Professional SKU ):

  • UI Test Automation
  • Test Impact Analysis
  • Performance Profiling
  • Static Code Analysis
  • Code Coverage
  • Code Metrics
  • Database Change Management
  • Database Deployment
  • Database Unit Testing
  • Test Data Generation
  • Read-Only UML, Layer, and DGML Graphs

Microsoft Visual Studio 2010 Professional:

  • Silverlight Tools
  • Multi-Core Development
  • Sharepoint Development
  • Cloud Development
  • Web Development
  • Windows Development
  • Generate from Usage
  • Office Development
  • New WPF Editor
  • Customizable IDE

So stay tuned, as I’m planning on a number of posts that are designed to drill into the new features available in this beta 2 release of Visual Studio!

Cameron

Channel 9 Video for Beta2

If you’re one of those folks who really isn’t into readying installation guides and simply want to get right into the details, be sure to check out this video that Brian Keller over at Channel 9 did showing the steps required to download and install Beta2. Great stuff!

If you like that, you might want to check out a number of the other 10-4 videos as well, subscribe to the feed, that sort of thing. Check it out here.

Oracle provider Beta Available!

As many of you already know, I started my career at Microsoft as the PUM responsible for building the first version of Database Professionals, which was later merged into the VSTS Developer box.

I was thrilled to see the announce email ( which I have pasted verbatim into this post ) hit my inbox, announcing the beta availability of the Oracle DSP provider that works with the beta version of VSTS 2010. What this essentially means is that with these new bits from Quest Software, you can point the DBPro functionality at an Oracle database!

If you have seen the capabilities that the DBPro feature set enables but have been unable to take advantage of it due to the fact that your organization runs on top of an Oracle database, follow some of the links below!

You'll be glad you did!

Cameron

 

<BetaAnnounceEmail>

clip_image002

The beta is LIVE!!
It seems like just yesterday that we began working on Project Fuze, the DSP for Oracle database support in Visual Studio Team System 2010… maybe that’s because I didn’t have to write the code! Anyway, after many, many months in our super-secret development lab we’ve finally finished the beta version! The public beta is now available on TeamFuze.net – make sure that you visit Microsoft’s site for more information on their public beta of Visual Studio Team System 2010 since you’ll need to have that running in order to try out Project Fuze.

Your participation is key!
Beta participation is free and open to anyone. However, in order to make the software actually useful to you, we need to hear back from you about the things you like (send that to me…) as well as the things you don’t like (send that to the developers!). Seriously, without your invaluable feedback, the beta is nothing more than a glorified preview. We want to do everything possible to make sure that Project Fuze will deliver an excellent experience and make you more productive in Visual Studio Team System; we can’t do that without your consistent, honest feedback. So please join the forums and post often! We’re listening!

Check out the video!
We recorded a video demonstration of how to use Project Fuze inside of Visual Studio Team System 2010. In it we cover creating a new Oracle database project, importing your schema, managing and altering objects, comparing your changes to the live schema and deploying them back to the database. Don’t forget to bookmark our YouTube playlist for future video updates.

Thanks to all of you for your patience these last few months!

-- The TeamFuze Team

For more information or to opt out of this newsletter, please contact info@teamfuze.net

 

</BetaAnnounceEmail>

Posted by camerons | 0 Comments
Filed under:

Performance tips using Windows Server 2008 as Workstation

My team and I do a lot of development on Windows Server 2008. Turns out it is a great workstation environment, but to really squeeze all the performance out of the environment, there are a few things you need to be aware of.

This article has a great walk through of many of the steps.

Most of this I was already aware of, but there were two steps that I was not aware of. After following the suggestions, startup performance of Visual Studio, and every other application I launch has improved significantly.

Be sure to take note of the "Performance Options" section, which has a great walkthrough of how to instruct the OS to optimize performance for Programs rather than ( the default ) Background Services.

The other tip is the "Turn on SuperFetch" service. SuperFetch is a service that is on by default in Win7 but off by default in Server 2008. This is the bit of magic that makes the OS more responsive to app startup based on past usage.

How did I miss this stuff???!!! :)

Posted by camerons | 1 Comments
Filed under:
More Posts Next page »
 
Page view tracker