New TFS Administration Tool

One of the tools any TFS admin keeps in their toolbox is the TFS Administration Tool. This tool makes it very easy to manage security for TFS. Allowing you to manage user permissions on all three platforms used by TFS. Specifically TFS, SharePoint and Reporting Services.

Download version 2.2 here.

Agile in non-software environments

Many moons ago I blogged about agile being adapted by a school in the states. 

Colin Bowern passed on another interesting presentation called “Agile in the Bathtub

I thought I’d share another Microsoft fellow who has written and blogs about Agile not only at work but in your personal life. If your struggling with time management read J.D. Meier’s book “Getting Results the Agile Way: A Personal Results System for Work and Life”.  Meier’s blogs about Agile Results it is a must to read. In one  blog Meier’s explains how to use Evernote (a free application) as your Personal Information Assistant and become agile in all you do.

 Testa  Smile

Toronto ALM User Group

Happy New Year everyone.

We have two great sessions to start 2013.

Patterns of Testable Software – with Asaf Stone on January 24th

2013 ALM Summit in Review – with Jeremy Garner-Howe on February 7th

Looking forward to seeing you there.

Development for Office and SharePoint Moves Forward

Over the next couple of months, you’re going to start hearing more and more about the new App for Office model. In a nutshell, this is a new model for developing and deploying applications to Office 2013 and SharePoint 2013. The main idea is to remove the installation requirement for applications onto a server while still providing the full range of functionality to the applications. Is this case, the servers I’m talking about are the Exchange Server and the SharePoint farm.

At the heart of the Apps for Office/SharePoint model is Web technologies. And while it’s a major simplification, the general approach is as follows: the application (i.e. Word, Excel, SharePoint) hosts a control that displays a Web page. That Web page is the ‘app’. The site behind that Web page is hosted wherever it wants to be, but most importantly it does *not* have to be hosted in the SharePoint or Exchange environment. The Web page has the ability to interact with the application through a number of techniques, including client-side JavaScript and/or server-side code (ASP.NET, PHP, etc.). From the perspective of the user, it does *not* appear that the app is a Web page, but it feels like it is directly integrated with the application.

As you might guess, this is not a complete or thorough description of the process. But if you want to learn more, you can join me on Dec 12 in Charlotte (register here) or Dec 14 in Toronto (register here). And if those dates/places don’t work for you, keep your eyes open for new dates across North America starting in February.

Mapping to a TFS Source Control Folder

So often I see developers mapping to their local folder from the middle of the source control tree to a folder on their desktop, then another folder to a different location. It gets very messy very quickly.

Some people may like to map folders this way, however I prefer a cleaner mapping implementation. When working on a team I would rather have the same folder structure as the server and everyone else on the team. Also it’s nice not to have to map each app I work on. I would rather just map once and be done with it.

Here is what I do: From a clean never been mapped TFS source control repository. If you already have  mappings check everything in and remove them before doing this. (These instructions are for Team Explorer 2012)

Open the Source Control Explorer

Select the top node which should be your Server\Collection

Right click and select Advanced | Map to Local Folder from the context menu

Create a folder on the drive of your choice with the same name as the Collection. I like to create a Source folder then inside that folder create the Folder with the same name as the collection.  That way if I have more than one Collection they are separate folders but all under Source.







Once you hit the MGetLatestap button you will be prompted to get latest of everything in the collection.





I recommend you select No. I doubt you want everything, do you?

Now traverse the Source Control tree look and watch the Local Path at the top it changes as you move. To get a particular application just right click on the folder and select Get Latest Version and it will get it into the folder structure you see.

Have everyone on the team do this. Then when you go from machine to machine you always know where to find the source. Also it looks just like the server.

Cloaked folders in the TFS Build Workspace


Here is a little Trick I find most people don’t know about.

When setting up a Build Definition you have to tell the build server where to get the source code from. We do this by declaring the folders to download from on the workspace tab of the build definition. It takes time to download all the files to the build server so you don’t want to get any unnecessary folders from source control.

Generally you can just select the root of the branch and pick up everything from there. Although there are times when the build you are creating does not require all the files in the branch. Lets say for example that you have two builds that run one that only builds the application and one for your WIX projects to create an install package. You likely want to keep all the files together for branching purposes. Something like this:


The folders in my example are for the following:
Builds files used by the build process specific to this application. Includes third party DLL’s we do not have the source code for.
Install WIX Project.
Resources Various resource files used by the application.
Source Application Source Code.

Now what I want is to get certain folders when building the app for a CI build and different ones when creating an install package.

CI Build

Install Package









I could just do this. But then I am getting more than I need in both cases.





Or to get just what I need I could do this. (Making sure I put everything into the correct folder on the build agent.

CI Build: image





Installation Package Build:image





Or I could use the cloaked status to let the build know not to get a particular folder.

Therefore on the CI Build where I want everything but the Install Folder I could do this: image




And on the Install Package Build I don’t need Source or Resources so I could do this:image

Creating Engaging Apps - Web vs Native

If you are writing an app for the general public (as opposed to one you’re writing for you in your organization), one of the first questions you face is whether you create it as a Web application or develop it for your target platforms using native code (XAML/HTML5/C#,Objective C, Java). There are a number of reasons I can think of to use native code over Web technologies. Better performance. Better integration with the device. Able to take advantage of functionality that is specific to the device (as opposed to coding to the lowest common denominator). By the same token, there are reasons to utilize Web technologies instead of native code. Faster time to market. Easier deployment. Consistent experience across all platforms.

But what does this have to do with creating engaging apps?


That’s right. The choice of technologies that you use is not what makes an application engaging. Consider the following tips for an engaging application:

Use the power of faces – People love faces. We have evolved so that we have specific wiring in our brain with the sole purpose of recognizing faces. We do it so well, we see faces where they don’t exist (such as in clouds, tree bark or grilled cheese). Take advantage of this by putting faces on your site. Even better, get the face to look at at important part of your site: people instinctively follow the eyes of the face.

Use food, sex and danger to attract interest – If you have ever heard me teach a courses, you will have heard me say (right at the very beginning) that when someone sees something new, they place it into one of four categories: can I eat it, can it eat me, can I mate with it, and everything else. If you want your site to be considered interesting, put it in one of the first three categories.

Tell a story – We learn through stores. It’s how we teach our children. It’s what we see in movies. Stories are a big part of how information is conveyed to us. Take advantage of this in your app. If you have information to give to the user, put it in story form. It doesn’t matter what medium you use (words, pictures, music), but using a story narrative will help your user understand and retain your information.

Build commitment over time – I’m guessing that most of you did not propose to your wife on the first date. It takes time for both people to make sure of the commitment that is implicit in marriage. The same is true of business. You don’t ask for a 6-figure sales order on the first cold call. Or, if you do, I’m guessing your success rate is low. :) Instead, let the relationship build over time. Let the user choose how they want to interact with you (RSS, Twitter, Facebook) and make sure that you don’t take advantage of the trust that is implicit in that interaction.

See? Nothing at all about technology. Engaging apps is all about the design sensibilities and visual aesthetics of the app. Focus your energies on that. Get that right and the choices you make for technology, so long as it doesn’t get in the way, because ancillary at best.

ALM User Group in Toronto meets this Thursday, Nov 8th at 5:30pm

Come out on Thursday to the Toronto ALM User Group (TALMUG) click here to register. TALMUG

Be Loved By Your Development Teams: Using the Team Foundation Server – Project Server Connector

Organizations are investing heavily in building project management competencies through the improvement in processes and use of tools such as Microsoft Office Project Server to ensure the predictable and reliable delivery of projects. At the same time an increasing number of development teams are moving towards agile techniques. Integrating and reconciling development teams and project management has become extremely important. Microsoft’s Application Lifecycle Management strategy includes solutions designed to enable Visual Studio, Team Foundation Server, and Project Server to connect together seamlessly.

This session will explore the Team Foundation Server - Project Server Integration Feature Pack and demonstrate how this enables development teams and project managers to work efficiently and increase productivity.


Microsoft–Test Manager Certification Exam & More

Microsoft has just released their new certification exam for Software Testing with Visual Studio 2012. The exam number is 70-497

The skills and/or tasks covered in the exam are:

  1. Create and Configure Test Plans (31%)
  2. Manage Test Cases (34%)
  3. Manage Test Execution (35%)

Check out the details here and see Charles Sterling’s blog for additional information.

If you are interested we have a course on all these items that will help prep you for the exam.

Contact O# at 877-SO-SHARP

Testa Smile

Microsoft Test Manager–links to power tools

Test Scribea tool designed to export your Test Plan to word document. The test scribe template can be customized. Shai Raiten has two articles on how to customize.

How to customize test scribe template

Test Scribe – Developer Guide

Regular Expression Tester ExtensionParses regular expressions from your code, so you can modify and test them and insert the updated versions. Matches and groups are highlighted for an easy overview of exactly what captures your regular expression generates. Also allows you to save your regular expressions.

Silverlight Plugin - Using the Microsoft Visual Studio UI Test plugin for Silverlight, you can create Coded UI Tests or action recordings for Silverlight applications.

TFS Power Tools – blog by Brain Harry

Testa Smile