Wednesday, 31 October 2012

Team Foundation Service is RTM!

Today at //Build Microsoft unveiled what a lot of people was waiting for: the RTM of Team Foundation Service.

You can reach it at, despite the old will still work for some time. Billing is still not active, but now we know somewhat more over it

Here’s what you were waiting for: as promised, there’s still a free level of service.

It’s going to be free for team up to five users, with no feature limits!

And moreover, who has a MSDN Premium, Test Professional or Ultimate is entitled to have an unlimited subscription included inside his MSDN!

There’s going to be a paid service with unlimited users for who has not a MSDN Subscription but it’s still early to talk about that.

The only Team Foundation Service component still in beta is the Hosted Team Build.

Monday, 22 October 2012

Marking transactions on Team Foundation Server’s databases

As we know, in the Team Foundation Server PowerTools for the 2010 version and built-in in the 2012 version we have a Backup&Restore utility which is added to the Administration console for…backup purposes J

But it’s not always feasible: in some organization this kind of tooling could not be allowed, and therefore we have to follow the old manual procedure documented in MSDN.

It’s a little bit tedious, as it’s fully manual and we have to repeat this for each database in our Team Foundation Server deployment, so it can be error-prone, and during troubleshooting sessions it can lead to issues.

So, in order to minimize this, there’s a useful step to follow to track down all the transactions on the TFS’ databases: the transaction table.

It’s fairly easy: we have to create an empty table in each database, using the following script:

   1:  Use TFS_Configuration 
   2:  Create Table Tbl_TransactionLogMark 
   3:  ( 
   4:   logmark int 
   5:  ) 
   6:  GO 
   7:  Insert into Tbl_TransactionLogMark (logmark) Values (1) 
   8:  GO 

After that, we can create a Stored Procedure which marks every transaction on the TFS’ databases, and reports back to the table:

   1:  Create PROCEDURE sp_SetTransactionLogMark 
   2:  @name nvarchar (128) 
   3:  AS 
   5:  UPDATE TFS_Configuration.dbo.Tbl_TransactionLogMark SET logmark = 1 
   7:  GO 

Then you can run the Stored Procedure, and mark the transactions with a mark. As MSDN states, “TFSMark”.

   1:  EXEC sp_SetTransactionLogMarkAll 'TFSMark'
   2:  GO

So you can automate this Stored Procedure, and use it as a ‘filtered log’ on your database activities.

It’s nothing new in the end, but as it’s hidden inside the MSDN documentation I’ve never seen it out there, and IMHO it was worth of a mention.

Wednesday, 10 October 2012

Rollback Changeset in Team Foundation Server: the time machine

It may happen you have the need of rolling back a previous changeset (due to various reasons). As far as today, you could do it with Get Latest Version – compare – Merge&Fix. Fairly rough, and not intuitive.

To be honest, this feature existed since Team Foundation Server 2010. It was just tf rollback, and no GUI was provided.

Then the PowerTools integrated it with Visual Studio, but now it has been promoted as a first class feature in Visual Studio 2012.

The time machine (as I called it) works as following:


Then you get it inside the Pending Changes, and you only have to check it in the Team Foundation Server. It’s possible to rollback even selected changesets, ranges, etc.

Wednesday, 3 October 2012

Random questions I got on Team Foundation Service

During the last months I went back and forth demoing Team Foundation Service, and several questions came up. Despite there’s a FAQ page out there, it seems people don’t read corporate pages Smile, so I decided of putting them all together in this page.

Am I tied to Windows Live for my users? Can I use Office365 or corporate accounts?
The answer is not yet. The Team Foundation Service authentication relies on Windows Azure ACS, so it’s technically possible to federate users or use corporate accounts but at this time (October 2012) it is not an enabled scenario, and you still have to rely on Windows Live for authentication. Nothing prevents you to make your corporate accounts Windows Live IDs, just signing up with the Use an existing account option.

Are upgrades managed by Microsoft? Which version of Team Foundation Server do I get signing up on
The Microsoft’s approach on this is pretty clear. The hosted version is going to be always the most recent version on the market, as Brian Harry pointed out on his blog. The Team Foundation Service team works on a three weeks-long sprint, and delivers straight to the service, so you won’t have to wait for Service Packs or Cumulative Updates. Moreover, tfspreview is not subjected to the Patch Tuesday, as critical patches are applied daily if needed.

What about my data? I don’t trust Microsoft to be the hoster of my source code!
Despite you won’t be attracted by Microsoft’s policies and behavior, they are never going to read your data. It’s clearly written in the EULA you accept when you sign up for the service, they can just move your data for backup and high availability purposes, but they are not able to see what’s inside their databases. It’s a legal agreement, and because of this it’s not meant to be interpreted. It’s as it, period.

What about my data? I want to be able to move away from Team Foundation Service whenever I want!
Again, your data is your data. But remember tfspreview is…a preview Smile and so not feature-complete at the moment. Maybe the top priority now for Microsoft is to enable you to easily export your data. Meanwhile, you can always sync it to your on-premise instance of Team Foundation Service via the Integration Platform.

How expensive is the service going to be? How much is it going to cost?
In the Pricing page of it’s clearly stated that there’s going to be a free level of service. We still don’t know what does that mean (in terms of features), but it’s a fact.

These are just the five most common questions I got during these months. For a more complete set of answers, I suggest to go to Smile you’re going to find all you need there.