Category Archives: 1513

Book Recommendations for Team Foundation Server 2013

As you can see, some have not been updated for TFS 2013, but their content is still valid.

Here’s my personal selection of books covering TFS 2012/2013:

ProTFS2013 Professional Team Foundation Server 2013

The ultimate reference for TFS. A “must-have”.
This book should not be missing on anyone’s shelve.
The definitive guide to agile software development with Visual Studio 2012 Visual Studio Team Foundation Server 2012: Adopting Agile Software Practices: From Backlog to Continuous Feedback (3rd Edition)

Written by the Product Owner of Visual Studio and Europe’s first MVP for TFS this book is recognized as a de facto guide for teams adopting agile practices.

Chapter 2: Scrum, Agile Practices, and Visual Studio (25 pages)
Chapter 9: Lessons Learned at Microsoft Developer Division (23 pages)

Doing Scrum with VS 2012? This is your book. Professional Scrum Development with Microsoft Visual Studio 2012
How to turn requirements into working software increments using:
- Scrum (as the project management framework)
- Modern, agile software development practices
- Supporting Tools from Visual Studio/Team Foundation Server

Sample chapters available for download.

Testing for Continuous Delivery with Visual Studio 2012 Testing for Continuous Delivery with Visual Studio 2012
(Microsoft patterns & practices)


This book is aimed at test engineers, managers, developers, and folks interested in understanding the changing world of test.

Note: This book is also available as a free download.

Enjoy the read!

–Neno

Turning off policy overrides in TFS

The Goal

Check-In policies have been around since the first version, TFS 2005, to help a team define a list of steps they want to perform prior the checking in. If a policy is not met, it alerts the user.

When policies fail, there is an option to “override” the warning(s) and continue with the check-in (the policy warnings will still be stored as part of the changeset).

Figure 6.6 CheckIn Policy Violations

While it’s easy to set up an alert to get notified when this happens, or query the TFS Warehouse to get a list of all overrides, there’s no built-in way to turn off overrides entirely.

The Solution

A server-side plug-in that intercepts all check-ins and rejects the changeset if it is a policy override. After activating the plug-in (which is simply a drag & drop of the plug-in .DLL into a specific folder on the TFS Application Tier), this is what happens if users try to override:

No Policy Overrides

How to set it up

  • To install, copy TFS.VersionControl.NoPolicyOverrides.dll to the “PlugIns” folder, located at: %ProgramFiles%\Microsoft Team Foundation Server 12.0\Application Tier\Web Services\bin\Plugins
  • Download the .ZIP package with all event-handlers here (for TFS 2013 only!).
  • To uninstall, just remove the .DLL from the “PlugIns” folder.

A word of warning

Disclaimer:
Server-side event handlers must be very well written. As they run inside of the TFS process itself, they can crash TFS, significantly degrade performance or change the behavior of built-in operations (e.g. a badly written plug-in could cause new team project creation to fail).

Note: Server-side plug-ins work on TFS on-premises only (not with Visual Studio Online).

Enjoy!

–Neno

Extending TFS’ default behavior using server-side plug-ins

In TFS 2005, Check-In Policies helped to ensure certain rules prior to check-in. However, check-in policies are executed locally and you must ensure they are available for the client (in the appropriate version) and installed.

In TFS 2010, Gated Check-Ins were introduced, which allowed validations such as the compilation, unit test execution and more (basically whatever the build script specified) to be run on the server-side and reject the check-in if they failed.

Also with TFS 2010, Microsoft introduced server-side plug-ins, which can handle TFS events and either react to them, or – in some cases – even cancel operations. Technically those plug-ins are implementing the ISubscriber interface (see this blog post how to write and debug them).

A word of warning:

Disclaimer:
Server-side event handlers must be very well written. As they run inside of the TFS process itself, they can crash TFS, significantly degrade performance or change the behavior of built-in operations (e.g. a badly written plug-in could cause new team project creation to fail).

Here’s an example:

Instead of using a check-in policy to enforce that changesets must have comments, a server-side plug-in could be used instead. This would guarantee that our rules are enforced, regardless of the client accessing TFS and if the appropriate check-in policy is available and installed for that client or not.

The server-side plug-in is installed by just copying a single .DLL to a “PlugIn” folder on the TFS Application Tier (or all Application Tier if you have more than one).

The following screenshots show how the message looks like that users will see that try to check-in without a comment.

In Visual Studio:

image
In Windows Explorer (via TFS Shell Extension from TFS Power Tools):

image
In Eclipse:

image

How to set it up

  • To install, copy TFS.VersionControl.RequireChangesetComments.dll to the “PlugIns” folder, located at: %ProgramFiles%\Microsoft Team Foundation Server 12.0\Application Tier\Web Services\bin\Plugins
  • Download the .ZIP package with all event-handlers here (for TFS 2013 only!).
  • To uninstall, just remove the .DLL from the “PlugIns” folder.

Note: Server-side plug-ins work on TFS on-premises only (not with Visual Studio Online).

Enjoy!

–Neno

Visual Studio Online (VSO) vs. Team Foundation Server (TFS)

This blog post is comparing the current feature set of Microsoft’s hosted TFS solution – Visual Studio Online (VSO) and the on-premises Team Foundation Server product.

Feature Comparison (as of February 2014)

 

TFS

VSO

Work Items, Version Control, & Build

Yes

Yes

Agile Product/Project Management

Yes

Yes

Test Case Management

Yes

Yes

Heterogeneous Development (Eclipse, Git)

Yes

Yes

Ease of Installation and Setup

+/-

++

Collaborate with anyone, from anywhere

+/-

++

Data stays inside your network

Yes

No

Process Template & Work Item Customization

Yes

No

SharePoint Integration

Yes

No

Data Warehouse & Reporting

Yes

No

CodeLens Support

Yes

No

Cloud Load Testing

No

Yes

Application Insights

No

Yes

Always running the latest version of TFS

No

Yes

Remember: Visual Studio Online is currently a so-called “commercial preview”.

Some other limitations of VSO (as of February 2014)

  • No Data Export (there are plans to make it available for a short time period)
  • No Data Import (if you want to move from on-premises TFS to VSO)
  • No Integration with Active Directory (users sign in using Microsoft Accounts)
  • No choice of geographic location (data stored in data center in Chicago)

–Neno

Video: From Continuous Integration to Continuous Feedback using Microsoft Visual Studio Team Foundation Server 2012

TEE2013

Content abstract:

We all know that listening to our customers and getting early feedback is very important. This talk focuses on how this can be achieved in the real world with the ultimate goal: to ship software that delight our customers!

This session focuses on the front end of continuous delivery: using PowerPoint Storyboarding to communicate ideas and prevent misunderstandings, managing requirements and priorities using a transparent product backlog, and integrating stakeholder feedback using Microsoft Feedback Client, all while getting rapid feedback throughout the entire process.

Link: to video

Continuous Value Delivery at Microsoft TechEd Europe 2013

TechEd Europe 2013

Here are the sessions that relate to “shorter cycle times” and continuous delivery of value:

… and some related sessions (which I referred to):

Available Check-In Policies for Team Foundation Server 2012

Shipping as part of Visual Studio 2012:

  • Builds – Requires that build was successful (CI builds) and therefore build breaks must be fixed before a new check-in.
  • Changeset Comments Policy – Requires that user provide comments on check-ins. (new in VS 2012)
  • Code Analysis – Requires that Code Analysis is run before check-in. [More]
  • Work Items – Requires one or more work items be associated with the check-in.

Note: The Testing Policy that shipped with VS 2010 is not longer available.

Added after installing TFS 2012 Power Tools (needs to be installed an all VS clients):

  • Custom Path Policy – Allows you to scope other check-in policies to specific folders or file types.  [See here for how to use it.]
  • Forbidden Patterns Policy – Prevents users from checking in files with filenames that contain forbidden characters or patterns.
  • Work Item Query Policy – Requires that the associated work items need to be part of the result of a specified work item query.

Note: When using an older version of VS (2008/2010) you need to install the corresponding version of the TFS Power Tools (VS 2008 requires 2008 Power Tools, etc.)

Developed by the Community:
  • Code Review Checkin Policy – allows to enforce Code Reviews prior to check-in (by Colin Dembovsky). Get it here.
  • Checkin Time Tracker v3 – allows you to gather effort values from developers during check-in (by AIT TeamSystemPro Team). Get it here.
  • Column Limit Check-in Policy – prevents users from checking in files that don’t comply with your column limit coding style guidelines (by Gambitrex). Get it here.
  • Merge / Branch Only Check in Policy – Block check ins that are not part of either a branch or merge operation (by Leon Mayne). Get it here.

Note: When using an older version of VS (2008/2010) you need to install the corresponding version of the check-in policies (for a list of check-in policies for VS 2010, see here).

What about the "Override Warnings" link?

There might always be an unforeseen reason why not all policies could be fulfilled.

How can I deploy custom Check-In Policies to all team members?
How can I create custom Check-In Policies?:

Do you know another great check-in policy for TFS 2012? Let me know!

–Neno

Updated (May 17th, 2013): Added Merge / Branch Only Check in Policy.