The Ramblings of Two Microsoft .NET Developers, TFS, and Visual Studio ALM Guys --- "Yes, we are both named Ed."

Need a List of Strings as a TFS 2010 Build Process Parameter?



I’ve been hitting my head against the table today trying to have a nice experience for editing a collection of string values as a custom build process parameter in my TFS 2010 build definition.  The problem comes with what editor is actually used to edit the process parameter at design time.  You can specify a custom editor for any of your custom build process parameters which is really handy but I needed the ability to use editors that were out of the box but still provided a sufficient experience to the end user.

My journey towards a solution…

Attempt 1

I began really wanting to have one build process parameter that had the type of Dictionary<string, string>.  That didn’t work out so well because when I went to edit it in my build definition, I received this editor and the add/remove members buttons.

TFS 2010 Build String Collection Editor

Attempt 2

I gave up on the Dictionary<T, T> approach and decided that I could handle it by specifying two collections of type Collection<string>.  I also attempted to try List<string> and even a String[] but ended up with this editor that seemed to not like System.String.

TFS 2010 Build String Collection Editor

Attempt 3

I found Microsoft.TeamFoundation.Build.Workflow.Activities.StringList.  It is a custom type that is known to Team Build 2010 and even has a custom editor that is registered to it that shows up.  That editor is Microsoft.TeamFoundation.Build.Controls.WpfStringListEditor.  Works great for me!  Take a look:

TFS 2010 Build String List Editor

 

Ed Blankenship



TFS 2010 Microsoft Certification Exam (70-512) Available



Looks like this past weekend Don from Microsoft Learning announced the public availability of the Team Foundation Server 2010 Microsoft certification exam.  I had several people ask about what happened to the Beta exam for 70-512 and the only thing I can see is that it was released directly to the public without a Beta phase.

If you pass this exam, you will receive the Microsoft Certified Technical Specialist certification for TFS 2010.  Officially it will indicate:
MCTS: Visual Studio 2010 Team Foundation Server, Administration

I’ll be taking the exam this weekend so I’ll let everyone know how it goes.  Well… as much as I can!  Exam candidates agree not to disclose details about the exam when they take it.

There aren’t any preparation materials available just yet as listed on the Exam Details site.  It does however list the topics that are covered on the exam:

About this Exam

This exam is designed to test the candidate's knowledge and skills on installing, configuring and maintaining Visual Studio 2010 Team Foundation Server.

Audience Profile

This exam is intended for candidates who install, configure, and manage a Microsoft Visual Studio Team Foundation Server (TFS) 2010 implementation. Candidates typically work in an enterprise development organization that provides process automation services by using TFS.

The qualified candidate has:

  • a solid understanding of the TFS architecture and components.
  • experience installing and configuring a TFS in both single-server and multi-server configurations.
  • experience managing security for TFS components.
  • experience configuring and using Team Build.
  • experience adapting process templates to an organization.
  • experience managing project artifacts with TFS version control.
  • experience configuring and using work item tracking.

Skills Being Measured

This exam measures your ability to accomplish the technical tasks listed below.The percentages indicate the relative weight of each major topic area on the exam.

Installing and Configuring TFS (27%)

  • Install TFS.

    This objective may include but is not limited to: SQL Server version support, installing TFS in a multi-tier or multi-machine environment, installing TFS in a load-balanced environment, setting up version control proxy

  • Configure application tier

    This objective may include but is not limited to: validating an installation, configuring SMTP for TFS, changing the URL (friendly name), changing the default SharePoint Web application, setting up reporting (SQL Server Analysis Services)

  • Migrate and upgrade TFS.

    This objective may include but is not limited to: upgrading TFS 2005 or TFS 2008 to TFS 2010, importing a source base from Microsoft Visual Source Safe (VSS), a third-party revision control system, or a sub-version

  • Install and configure team lab.

    This objective may include but is not limited to: set up environment templates, installing and configuring test agents, installing and configuring Virtual Machine Manager (basic Virtual Machine Manager installation), creating library shares or resource pools

  • Install and configure multiple build agents and controllers.

    This objective may include but is not limited to: tagging, binding a controller to a project collection, adding as build agent

Managing TFS (27%)

  • Manage Team Project Collections.

    This objective may include but is not limited to: moving project collections, managing team collections and projects, creating and configuring team project collections, moving team projects from one collection to another, creating a team project with SharePoint and SQL Server Reporting Services, cloning (splitting team project collections, partitioning)

  • Configure for backup and recovery. 

    This objective may include but is not limited to: backup and recovery of TFS and related components, recover a failed application tier, recover a failed database tier, implement a disaster recovery plan

  • Monitor server health and performance.

    This objective may include but is not limited to: application tier logs, monitoring the server for performance issues (monitoring activity logging database and TFS server manager), monitoring job infrastructure for failed jobs (monitoring warehouse adapters and warehouse jobs), cleanup of stale workspaces and shelvesets, cleanup builds (applying retention policies), setting up team build to use a version control proxy server

  • Administer TFS application tier.

    This objective may include but is not limited to: retiring or archiving projects and purging the system, rebuilding a warehouse, configuring user permissions by using Active Directory Domain Services  and TFS groups, moving a TFS instance to a new server or a new domain, configuring security for TFS Work Item Only View

  • Manage reporting for TFS.

    This objective may include but is not limited to: basic reporting using Microsoft Office Excel Services, adding a custom report to a SharePoint project portal, uploading a new SQL Server Reporting Services TFS report, configuring to enable a report to appear in a SharePoint project portal

  • Set up automated functional and UI tests.

    This objective may include but is not limited to: setting up a build definition, configuring the build definition to use the proper lab environment, setting up tests to work on an installed agent, setting up a service as interactive, setting up data collectors

Customizing TFS for Team Use (24%)

  • Configure a team build definition.

    This objective may include but is not limited to: setting up for a Symbol Server and Source Server, setting up for test impact analysis, setting up for custom build numbers, configuring build log verbosity, setting up for code analysis, setting up for automated unit testing, setting up for architecture validation

  • Configure and execute a build. 

    This objective may include but is not limited to: queuing a build with parameters, reconciling workspaces as part of a gated check-in workflow, setting up build triggers (gated check-in, continuous integration, scheduled build)

  • Modify a process template.

    This objective may include but is not limited to: customizing a process template by changing the workflow for a work item, adding a new work item type as a child of an existing work item (WI), uploading and downloading process templates

  • Configure a team project.

    This objective may include but is not limited to: areas and iterations, default security groups, portal settings (team project portal site URL, process guidance URL)

  • Apply work item customizations.

    This objective may include but is not limited to: link types, Global list, creating a new WI category and adding existing WI types to the new category, adding or removing fields, transitions, queries, customizing a workflow, creating or editing a work item type, importing and exporting work item types, renaming work item types

  • Create Work Item Query Language (WIQL) queries.

    This objective may include but is not limited to: query folders and permissions, query types (tree, flat, directed), defining WIQL keywords, adding fields to a query, creating a WIQL query by using Team Explorer, identify built-in macros

  • Configure client connectivity to TFS.

    This objective may include but is not limited to: configuring Visual Studio, Team Explorer, Microsoft Excel, Microsoft Project, and other tools to connect to TFS, configuring clients for proxy server

Administering Version Control (23%)

  • Create and manage workspaces.

    This objective may include but is not limited to: cloaking, undo delete, modifying a workspace, deleting a workspace, specifying the workspace visibility, restoring deleted items, unlocking other users’ checkouts, pending changes, and code

  • Configure shelvesets. 

    This objective may include but is not limited to: private builds, creating a shelveset, deleting a shelveset, opening another user’s shelveset

  • Branch and merge source artifacts.

    This objective may include but is not limited to: track change visualizations, converting a folder into a proper branch and creating a new branch, merging and resolving file conflicts, viewing branch hierarchy, creating a branch, deleting a branch

  • Configure version control proxy.

    This objective may include but is not limited to: cache hit ratio, setting up the cache size, setting up for multiple TFS servers

  • Configure team project version control settings.

    This objective may include but is not limited to: enable multiple checkout, enable get latest on checkout, configuring check-in policies for a team project (work items, builds, code analysis, testing policies)

Good luck!  Let me know how you end up doing on the exam.

Ed Blankenship



Book Review for Wrox Professional Application Lifecycle Management with Visual Studio 2010



During the first week of April, a little package was sitting on my front porch with the first book to be released on the Visual Studio 2010 release that deals with the new Application Lifecycle Management (ALM) features.  For those of you who don’t know, this essentially means the former “Team System” line of products as we were exposed to it in the 2005 and 2008 releases.  Although the entire Visual Studio suite of products is considered something that helps you with ALM, the book primarily focused on Visual Studio 2010 Ultimate, Visual Studio 2010 Premium, Visual Studio 2010 Test Professional, Visual Studio 2010 Lab Management, and Team Foundation Server 2010.  During the Introduction, I even appreciated how the authors discussed about “where Team System went.”  It’s the best explanation of the branding change that I’ve seen to date.

I was extremely excited to start immediately reading the book.  Even though I have been closely involved with the 2010 release as a Microsoft MVP, when I started to read this book my goal was to be exposed deeper in the feature set being introduced in the 2010 release.

At the time of writing this blog post, the book was selling for $34.64 at Amazon.  The suggested retail price is $54.99.  It is currently #7 in the Software Development books category!

Strengths

If you are new to the ALM features in Visual Studio, I felt this book really offered you the ability to get the high-level overview of all of those features.  It’s essentially similar to a “survey” course that you would have taken in college.   It’s 696 pages that ends up going through all of the Visual Studio client and server features at just the right level of detail. There were even some areas that I felt that I learned more about and hadn’t been exposed to heavily in the past.

The architecture features were something that I had hoped to learn the most from.  They have just never been something that I dived into great detail during the 2010 release cycle.   All of the new UML diagrams that are available including the new architecture features like Use Case, Activity, Sequence, Component, Class, Dependency, and Layer Diagrams.  There was a also a great introduction to the Architecture Explorer.

The testing features have really been what has made up a majority of the Visual Studio 2010 release and the book definitely reflects that.  Going through the testing features, I really felt like I understood the end to end story.  It felt very rounded out!  These chapters are where I picked up a majority of the nuggets of information.  I can’t tell you how many times I said “wow, I didn’t know you could do that.”  I also feel like this is a great place to pick up some introductory knowledge about how Visual Studio Team Lab Management fits into the ALM story.  I also kept thinking how great this book would be for the testers on your team that are new to the Microsoft testing platform and Team Foundation Server.

There are so many changes to TFS, I can’t even begin to start describing them.  Thankfully, the book did a great job.  Especially with the revamp of Team Build to use Windows Workflow Foundation.  You can even download the Team Build chapter from the book for free here:  Team Foundation Build.  Other than automated builds, you’ll get a good pass by all of the rest of the new TFS 2010 features and architecture/topology changes.

There was a whole chapter dedicated to debugging with IntelliTrace!  That’s awesome.  I’m very much a fan of IntelliTrace and think that will truly change the way you develop.

Criticisms

I have been hoping to have a book available out there that really only discusses TFS.  The book definitely has a few chapters available on TFS and spends a good amount of time but that discussion is not the nitty gritty that I think some readers out there are really looking for.  With that said, I don’t think this book was positioned for the “TFS Administrator” exclusively.  Again, I really think this is a survey-level review of the entire ALM stack of features for Visual Studio.  That doesn’t allow you to go into the depths of any particular product.  There currently isn’t a book available for TFS 2010 with the level of detail that I am sure some readers out there are hoping for.  We’ll see what happens in the months to come…

My next criticism isn’t so much for the content of the book as what is media choices are available.  I own a Kindle DX and I imagine a few other techies in the world have some type of eBook reader as well.  I was hoping to have a CD that contained a DRM-free PDF that I could copy over to my Kindle DX whenever I’m traveling and need a quick resource for reference.  Wrox certainly does allow you to get a PDF of books but you have to order them separately even if you had purchased the hard copy.

Finally, the only other thing that I noticed was in that chapter about IntelliTrace (see above) there wasn’t a mention of Symbol & Source Server.  I couldn’t believe it.  There is definitely a discussion later in the book about Team Build’s integration with Symbol & Source server but I was hoping to have seen some more detail in the IntelliTrace chapter about the importance of having them setup for your organization.  You’ll want to put two and two together.

 

Now that I’m finished scrounging from the bottom of the barrel to find some criticisms… :)

My Recommendation

Hands down, get this book.  I think it’s well worth it.   I know each of the authors and it really looks like they put a tremendous amount of effort into writing the book.  The topics are really presented well and at the right level of detail for someone really wanting a crash course in all of the Visual Studio ALM features.  I can’t even tell you how many new nuggets of information that I ran across of things that I didn’t even realize were in the product.

It certainly gets my stamp of approval! :)  Kudos to the authors.

 

Very respectfully,

Ed Blankenship

Microsoft MVP of the Year, Visual Studio ALM and Team Foundation Server



Can I Use Microsoft Test Manager for User Acceptance Tests?



Microsoft Visual Studio Test Professional 2010 Box

That answer is a resoundingly yes, in my opinion, and I believe you would find some real value in having your UAT testers using Microsoft Test Manager to perform those UAT tests.  However, I think the real question that should be asked is do you have to purchase a license for Microsoft Visual Studio 2010 Test Professional to use Microsoft Test Manager to perform those User Acceptance Tests (UAT?)

 

Background

What are you talking about, Ed? 

There is a licensing exclusion that exists that really helps out when business users connect to development/test environments to perform user acceptance testing.  This exclusion really kicks in and helps when those development/test servers have used Operating Systems, SQL  Server, etc. licenses that conform to the MSDN EULA.  The exclusion basically says those non-technical business users don’t require an MSDN subscription to connect to those development/test servers if they are only performing user acceptance tests.  Normally, each person who connects to a development/test environment that has MSDN software installed on it (like the OS) requires that each of them has an active MSDN subscription.

Here’s the full description directly from the Visual Studio 2010 Licensing Whitepaper:

User Acceptance Testing

At the end of a software development project, end users (or team members acting as proxies for end users) typically review an application and determine whether it meets the necessary criteria for release—a process sometimes called user acceptance testing or UAT. MSDN software may be accessed by end users who do not have MSDN subscriptions for purposes of acceptance testing, provided that the use of the software otherwise complies with all MSDN licensing terms.

Under MSDN subscription licenses, user acceptance testing must not use live production data. If a copy of any live production data is used, then that copy of the data must be discarded after the testing is complete and cannot be incorporated back into the live production data.

So back to the real question…

 

Do you have to purchase a license to use Microsoft Test Manager to perform UAT?

Well that’s the question that a client brought up.  Did they have to purchase a license of at least Visual Studio 2010 Test Professional for those business users if they wanted to use Microsoft Test Manager to perform the UAT tests?

Microsoft’s answer is:  Yes

The fact that you are using Microsoft Test Manager, in their opinion, is that you are doing more technical & formalized testing than what they would consider to be in the UAT licensing exclusion for MSDN software.

 

Ed Blankenship



Team Explorer Everywhere Announced and Launched



One of the announcements made yesterday was the new product Microsoft Visual Studio Team Explorer Everywhere 2010!  If you are not familiar with the former Teamprise products that were purchased late last year by Microsoft, this new product is essentially the Microsoft branded version of Team Explorer that works inside most Eclipse-based IDEs.

Visual Studio Team Explorer Everywhere 2010 Logo

You can download this new product from the Microsoft Downloads site or from  MSDN Subscriber Downloads.  There is even a new forum dedicated on the MSDN Forums site.

If you are curious about this product, be sure to follow Martin Woodward’s blog site for more information.  Martin Woodward is now the Program Manager on the TFS Product Team who works with this line of tools.

 

Ed Blankenship

Posted in TFS | VSTS

Team Explorer Included in Visual Studio 2010 Installation



One of the really great things about the Visual Studio 2010 installers is the fact that Team Explorer is installed with all of the Visual Studio editions (except Express.)  This even includes Visual Studio 2010 Test Professional.  In previous versions of Visual Studio, you would have to install Team Explorer additionally after you installed Visual Studio.  Thankfully those days are long past us…

However, if you do have users that only need the functionality of Team Explorer 2010 (like the add-ins and integration for Microsoft Office Excel and Microsoft Office Project) then you can download them separately either from MSDN Subscriber Downloads or from the Microsoft Downloads site

Visual Studio 2010 Team Explorer on MSDN Subscriber Downloads

Just a reminder, you can download Team Explorer 2010 for free but you still need to make sure that each user has a TFS 2010 CAL (unless they meet certain exclusions.)   If you purchased Visual Studio 2010 with a full MSDN subscription then you already receive a TFS 2010 CAL included.   The complimentary MSDN Essentials subscription that is included with Visual Studio 2010 Professional does not include a TFS 2010 CAL though.

 

Ed Blankenship

Posted in TFS | VSTS


Visual Studio 2010 and TFS 2010 Launch Today



imageEven more important news… is that Visual Studio 2010, .NET Framework 4,  and Team Foundation Server 2010 are being launched today!  It’s been a really long time coming but super excited that this day is here.

Microsoft .NET Framwork LogoVisual Studio 2010 Logo

You can watch the launch event live from Las Vegas here. I believe the coverage will start at 8:30 AM (PDT) / 12:30 PM (EDT.)

Trial downloads should be available sometime today at the Visual Studio 2010 Marketing Site.  MSDN Subscribers will be able to download the CDs for Visual Studio and TFS later today starting at 10:00 (PDT) / 2:00 PM (EDT.)  I doubt that Volume Licensing customers will be able to download the 2010 CDs today from the Volume Licensing Center.  It may take some time before it is available through the VL channel.  If you are unable to get the media through MSDN, you can always download the trial CDs today and then apply the product key later on when you get it from MSDN or the Volume Licensing site.  It doesn’t require you to uninstall and reinstall.  You can just activate your trial copy!

  • In Visual Studio 2010, go to Help –> Register Product
  • In Team Foundation Server 2010 Administration Console, click the root node in the navigation pane and then click Update License.

Visual Studio 2010 Product KeyTFS 2010 Product Key

Happy Launch Day!

Ed Blankenship

Posted in TFS | VSTS

Notion Solutions acquired by Imaginet Resources Corp



In other news today… Imaginet Resources Corp has announced that they will be acquiring Notion Solutions.  Branding has even been updated on the Notion website already:

Notion Solutions An Imaginet Company

I have been working with the ALM folks over at Imaginet for a few years now including their co-founder Joel Semeniuk who is also an MVP in Visual Studio ALM (Team System) and a Microsoft Regional Director.  They’re a good group and definitely looking forward to working with them closely after the acquisition.  The Imaginet folks are also the ones who have been doing the software development effort around the freely available tools for TFS (Work Item Manager, Project Dashboard) and newly available TeamPulse.

TeamPulse

Posted in TFS | VSTS


Which Edition of Visual Studio 2010 Do I Buy?



Visual Studio 2010 LogoThe launch of Visual Studio 2010 and Team Foundation Server 2010 is just around the corner and I’m starting to hear this question quite a bit:  Which edition of Visual Studio 2010 do I need to buy for my team members?  My usual attempt at humor  would be responding with the question “How much money do you have?” but that doesn’t usually go very well for those with tight budgets. 

The first thing I want to say before we move any further in this discussion is:

  • The first rule of buying any type of Microsoft license is don’t buy retail if you don’t have to.  Say that a few times to yourself.  There are so many different volume licensing programs available that would end up working well for your team and organization size.  Do a little work and phone up your local Microsoft Sales representative to see about your options.  You’ll find that you could save a ton of money and most of them that I have worked with on behalf of my clients are willing to work out what’s best for you and your budget.  Give it a try – it’s really not difficult and could save your team quite a bit of money.

Earlier this year, the suggested retail prices were announced for each of the Visual Studio 2010 editions.  This should be a baseline of how to relatively compare the prices between each edition; not that you would ever pay retail prices right?

 

The Editions

Thankfully, we don’t have all of the editions that we had in the 2008 and 2005 releases.  In the 2010 release, there are essentially now three editions plus a new edition for generalist/non-technical testers.

Visual Studio 2010 Ultimate BoxVisual Studio 2010 Premium BoxVisual Studio 2010 Professional BoxVisual Studio 2010 Test Professional Box

I won’t spend time talking about which features are available in each edition and how to compare them because I believe the Microsoft Visual Studio marketing site is doing a really great job with the high-level overview.

Personal aside/opinion:  I believe IntelliTrace, alone, is worth the cost of Visual Studio 2010 Ultimate for you junior/senior developers.  I’m talking about both the local debugging scenario and the ability for testers to gather IntelliTrace logs while testing and then opening those up to troubleshoot a bug.  Both scenarios have been extremely valuable to me personally when I have both my developer & tester hats on.  I do understand that it takes some work getting the latter scenario to work correctly (symbol server, source serverTFS builds, etc.)  and also takes some effort around getting developers to actually learn how to use it well but it’s totally worth it in the long run.  Don’t hesitate to find some help from an excellent Microsoft Partner specializing in the Visual Studio ALM products, like Notion Solutions, if you want some assistance getting your developers/testers trained and setting up all of the nuts & bolts to get everything working.  (Shameless plug, I know, but what can I say?)

 

MSDN

Seriously, just be sure to get the MSDN Professional subscription included when you purchase your Visual Studio licenses.  (More information about MSDN Subscriptions)

Not only that, make sure your IT department (officially, the volume licensing administrator at your organization) gives all of your team members the “benefit access number” so that each team member can register for the MSDN benefits.  I can’t believe how many IT organizations don’t want their team members to access their benefits because “they might download the software at home” or heaven forbid “install it on their machines themselves.”  Come on…  You can tell I’ve heard several excuses.

Some of the new benefits of an MSDN Professional subscription are now that you receive priority forums support in addition to the included technical support calls, a real TFS 2010 CAL and a real TFS 2010 production license among many of the other benefits.

 

 

Scenario-Based Purchase Decisions

Microsoft did a good job reducing the number of editions but for some reason I’m still getting the question about what to purchase.  That tells me that people are still confused about deciding what’s appropriate for each team member especially when they have to consider the cost difference.  (Aside:  BTW, comparable ALM products on the market are SO much more expensive for what they deliver.)

More than likely, you are going to want to look at what scenarios you want to enable for your team.  Earlier this week, some colleagues at work and I were able to put together this presentation that goes through the different scenarios that I think most people would be interested in taking advantage of when adopting Visual Studio 2010 and TFS 2010.  You can look at each individual scenario and it will point out what you need to purchase for the different roles on your team.  After each of the individual scenarios are mentioned, you can even start to look at the most common combinations and see what that looks like.  Of course, I couldn’t go through every combination but if you don’t see one, post a comment.

Final Thoughts

I hope that you were able to get some information to help you make a better purchase decision.  Any suggestions?  I’ll be happy to update this blog post or the PowerPoint deck from time to time with those suggestions or other common combination requests.  Just leave me a comment below!

 

Take care,

Ed Blankenship

Posted in TFS | VSTS


Feature Support for Unmanaged Code in Visual Studio 2010 and TFS 2010



Just got exposed to a great table about what features are available in Visual Studio 2010 and Team Foundation Server 2010 for unmanaged code (C++.)  Thanks to Anna Russo for sharing!  Anyone know the source of this information?

Product Features (Visual Studio 2010 Ultimate)
Team Foundation Server
Version Control Yes
Work Item Tracking Yes
Build Automation Yes
Team Portal Yes
Reporting & Business Intelligence Yes
Agile Planning Workbook Yes
Test Case Management Yes
Visual Studio Team Explorer 2010 Yes
Development Platform Support
Windows Development Yes
Web Development N/A
Office and SharePoint Development N/A
Cloud Development N/A
Customizable Development Experience Yes
Testing
Unit Testing No
Code Coverage No
Test Impact Analysis No
Coded UI Test No
Web Performance Testing N/A
Load Testing N/A
Database Development
Database Deployment Yes
Database Change Management Yes
Database Unit Testing Yes
Database Test Data Generation Yes
Debugging & Diagnostics
"Pinnable" DataTips for easier data inspection N/A
Post-mortem debugging support for .NET (dump debugging) No
Breakpoint improvements (search in Breakpoints window, label, import/export) No
New WPF Visualizer N/A
Enhancements for debugging multi-threaded applications (Parallel Stack and Tasks) Yes
64-bit support for mixed-mode debugging Yes
Static Code Analysis Yes
Code Metrics No
Profiling Yes
IntelliTrace (Historical Debugging) No
Architecture and Modeling
UML & Layer Diagram Viewer Yes
Architecture Explorer Yes
UML 2.0 Compliant Diagrams (Activity, Use Case, Sequence, Class, Component) Yes
Layer Diagram and Dependency Validation No
Lab Management
Microsoft Test Manager Yes
Virtual environment setup & tear down Yes
Test Case Management Yes
Manual Test Execution Yes
Manual Test Record & Playback Yes
Lab Management Configuration Yes

 

Ed Blankenship

Posted in TFS | VSTS