Aug 032013
 

TFS 2013 Preview

Recently, Microsoft released a preview version of their next version of their team development suite, known as Team Foundation Server (TFS).

Long time readers of Sanders Technology will know that I’ve a long history with TFS, and I’m genuinely a fan of the platform.

Team Foundation Server 2013 breaks from the naming convention used in some of the more immediate releases – 2008, 2010 and 2012 all being two years apart – the only exception being the first release, 2005.

So What’s New in 2013?

The big ticket items are certainly around source and build control.

The 2013 edition continues to build upon the support for another source repository system which will be known to many developers – Git.  Initial integration featured in TFS 2012, and continues to be even stronger in TFS 2013.

Here’s a quick summary of some changes in Team Foundation Server 2013 Preview:

  • Version control
    • Git built in to Visual Studio and TFS
    • Use branches to switch contexts and isolate risk
    • Resolve conflicts
    • Work around a few known issues
  • Team Foundation Build
    • Build Windows 8.1 Preview Store apps
    • Build more simply. Build in Git!
    • Scripts!

    To learn more about what’s new in Team Foundation Server 2013 Preview, I’d encourage you to read the Visual Studio ALM Team Blog here.  To see how it dovetails with new features coming in Visual Studio 2013, check out Brian Harry’s excellent blog here.

    We’re going to take a look at this – and probably more – but first we have to install it!

    The Installation

    Installation GuideGiven this is a preview edition, I’m going to assume that most folks aren’t going to jump on this release and put it into production, but if you are so inclined (as a fresh install or as an upgrade), you can do so – particularly as upgrading is supported – but as per normal, caution is advised.

    The first – absolute first – thing you should do is go and download the installation and administration guides.

    The install media (.iso) contains a link to this location on Microsoft.com where you can obtain the latest installation guides.  I strongly recommend doing this, even if you’ve installed and configured TFS as many times as I have (or more).

    Download Options

    For review purposes, I’m installing TFS 2013 Preview on a clean Windows Server 2012 VM, and I’ll be installing just a ‘Standard Single Server’.

    Beginning the Install

    Before getting underway, I strongly urge a review of the installation pre-requisites to ensure that you have met the requirements for the type of installation you prefer.  In this release, the installation supports – ‘Basic’, ‘Standard Single Server’, ‘Advanced’ and ‘Upgrade’ of the Team Foundation Application Server.  Note that there is also the option to install the Application Tier and Data Tiers separately.

    There is also support for installing the usual suspects – TFS Server Proxy, TFS Build Service and Extensions for SharePoint Products (you’ll recall that with TFS 2012, SharePoint became an optional dependency).

    Standard Single Server

    prereq

    The diagram to the left comes from the Installation Guide and illustrates what we’ll be introducing with our TFS 2013 configuration.

    Notice that the standard installation uses both a local SQL Server instance (configured for Reporting Services and Analysis Services) as well as a local SharePoint Web Application.

    This significantly decreases the number of inbound/outbound ports which are required as the TFS Application and Data tiers are self-contained within the same host.

    Upgrading?

    Upgrade is supported from TFS 2010 (with or without SP1) and any Go-Live version of TFS 2012 to the TFS 2013 Preview.  Upgrading from TFS 2008 is no longer supported, you would have to upgrade from TFS 2008 to an earlier version first.  For more on upgrade scenarios and considerations, check out the MSDN Blog for more details.

    Determine Prerequisites

    As stated above, I’m going to be going with the ‘Standard Single Server’ configuration.  A quick scan of the Installation guide reveals the steps I need to undertake:

    image

    To install a single server configuration you need to install SQL Server before proceeding to install Team Foundation Server 2013.  Supported versions of SQL Server are:

    - The next version of SQL Server (Express,¹ Standard,¹ and Enterprise editions)
    - SQL Server 2012 with SP1² (Express,¹ Standard,¹ or Enterprise Editions)

    Note that this would appear to exclude previous versions of SQL Server, particularly 2008 R2.  I’ve chosen to install SQL Server 2012 Standard Edition for this review.

     

    Kicking off the Installation Media

    Once you’ve dealt with the prerequisites, you can begin installing TFS 2013.

    We’re greeted with the now, familiar cut down installer.  It’s essentially a tick of a box and the clicking of an oversized button, and we’re off.

    1 3 

    Once the initial components are in place (mine required a system reboot), we are met with the familiar Configuration Center.  I select ‘Standard Single Server’ and click the “Start Wizard” button.

    7 image

    For the Standard configuration, you just need to provide a local user account which TFS will use as the service account for SharePoint and SSRS (read only, for accessing TFS reports).  For everything else, TFS will use the standard Network Service account.

    Installing Optional Pre-requisites: SharePoint Foundation 2013

    image

    Now, the installer does some interesting checks.  In this particular case, the VM I’m running only has 2GB of RAM (scalable to 4GB).

    The installer detects the server as not having enough minimum memory, and therefore gives me an opportunity to skip the SharePoint installation and configuration.

    I’m actually wanting to have a look at the SharePoint integration, so I restart and shift the RAM up to the minimum (4 GB).  Problem solved.

    imageSo after changing settings and rebooting, I continued to install.

    This time around, I have the option to install SharePoint Foundation 2013, but I’m warned that it will suffer from performance degradation as I’m running at less than the recommended RAM – 10 GB (memory hog!).

    Therefore, I click to install SharePoint, and the installer UI expands to show installation tasks.  This is a nice end-user experience, and I watch on as the installation takes place.image

    This pops up a couple of other installation dialogs as we progress.  A couple of system restarts are required,

    image

    Eventually, we get towards the finish of the SharePoint component.  Depending on your system’s performance, this could take a little while.

    imageimage

    The Main Event

    Once the readiness checks have finished (I was tripped up by Reporting Services not having been properly configured), you can click on “Configure” to start the final work.

    imageimage

    The final configuration is error-free, and on the final page we’re given a link to click on so we can access our newly minted TFS 2013 (Preview) instance:

    image

    Coming Up Next…

    Now that we have a fully functioning TFS 2013 build, it’ll be time to dig into it some more.  Stay tuned for the next article where we will explore Team Foundation Server 2013 (Preview) using Visual Studio 2013 (Preview) and Team Explorer!

  • Apr 262012
     

    Earlier this month some very useful guidance documentation was published on Codeplex
    The topic?  Build and versioning guidance, from Microsoft’s ALM Rangers group.

    The guides are broken down into a number of PDF files.  In the main documentation archive (which you can download from Codeplex) are a number of files:

    • Branching and Merging Guide – Cheatsheet Advanced Plan.pdf
    • Branching and Merging Guide – Cheatsheet Basic Branch Plan.pdf
    • Branching and Merging Guide – Cheatsheet Picking a Strategy.pdf
    • Branching and Merging Guide – Cheatsheet Standard Branch Plan.pdf
    • Branching and Merging Guide – Cheatsheet Terminology.pdf
    • Branching and Merging Guide – Illustrations.pdf
    • Branching and Merging Guide – Illustrations.pptx
    • Branching and Merging Guide.pdf

    Which, all said, cover a fair amount of material. 
    Also packaged are some Hands on Labs which provide a useful set of demonstration examples, and can be used with the Beta version of TFS.

    According to the main PDF (Branching and Merging Guide.pdf) the following bullet points describe the new content covered in the beta documentation:

    • The guidance will have some new verbiage and recommendations around some of our existing branching
      plans, as well as add some coverage for new branching plans.
    • This guidance introduces you to local workspace which is a new concept in Team Foundation Server 11.
      Local workspace enables you to continue working even when network access is intermittent or
      unavailable thereby providing increased bandwidth availability and client optimizations. 
    • We provide new guidance around effectively managing shared resources in source control by discussing
      various common scenarios and describing the pros and cons with each approach.  This guide lays a solid
      foundation for implementing sharing for your development efforts in your Team Foundation Server
      environment.  
    • Branching and merging with database projects is discussed in detail. 
    • There is in-depth coverage of merge improvements in Team Foundation Server 11. There has been
      enhancements made to the product that brings a whole set of improvements in the area of merging,
      primarily fewer conflicts that require user interaction when merging, new merge tool for conflict
      resolution in merging, new file comparison tool, baseless merging from the UI, and merging available on
      unshelving. 
    • Different scenarios for baseless merging are discussed in this release of the guidance. Baseless merges are
      not ideal but may be required on occasion.  The Pros and Cons of baseless merging are pointed out with
      coverage on the enhancements made in Visual Studio 11 around baseless merging. You can now perform

    There are separate diagrams within the “Branching and Merging Guide – Illustrations.pptx” PowerPoint side deck, enabling ease of access for reuse. 

    You might recall, I published my own (similar) version of this diagram here on Sanders Technology not that long ago:

    image

     

    This diagram is an excellent representation of how to branch and merge for multiple feature sets, keeping the main trunk in synch, as well as the features in release order. 

    The diagrams get quite a bit more sophisticated, here is another which illustrates my own rules for dev/branch and patch management:

    image

    What I quite like about these diagrams is that it underscores how important merging and branching are to a mature development lifecycle.

    This model allows parallel development as well as maintenance on the released product.

    I won’t go into too much detail – there’s a lot to read – suffice to say that if you have a vested interest in learning or understanding application lifecycle management (be it on Team Foundation Server or an alternative), this isn’t a bad place to start.

    The guidance could easily be applied to other source control and lifecycle management tools.

    Handy Links:

    Download the Team Foundation Server 11 Branching and Merging Guidance
    Download the Visual Studio 11 Beta
    Download the Team Foundation Server 11 Beta
    Download the Team Foundation Server 11 Beta Power Tools

    Sep 192011
     
    Part 1 Setting up TFS Azure
    Part 2 Configuring Visual Studio to use TFS Azure
    Part 3 Registering Team Build controllers for TFS Azure
    Part 4 Builds in the Cloud

    Introduction

    Continuing on from Part 1, we’re taking an early look at TFS Azure, Microsoft’s first service offering of Team Foundation Server backed on top of the Azure Cloud service.

    The Continuing Saga

    By now you have probably registered with TFSPreview.com and created an initial Team Project.  Using the same Windows Live credentials, now we’ll look at connecting to and consuming resources from Visual Studio 2010.

    I’m assuming that you already have Team Explorer installed (if not, you’ll need it) and that you’ve applied Visual Studio 2010  Service Pack 1 and the KB Hotfix.  I encountered a plethora of issues getting the hotfix applied, but hopefully you will have had less issues.

    Connecting and Authenticating

    Start Visual Studio 2010 and, once loaded, go to Team (Menu) –> Connect to Team Foundation Server.

    Since this it the first time you’ll be connecting, click on the Servers.. button, and then click on the add button in the next dialog.  Use the URI listed on your TFSPreview administration page (in the form .tfspreview.com">.tfspreview.com">.tfspreview.com">.tfspreview.com">.tfspreview.com">https://<yoursite>.tfspreview.com):

    image image

    If all goes well, you’ll get an authentication page pop up and ask you to select the federated security model of choice (as of writing, only Live IDs are supported).

    Selecting the default provider, we’re taking to Live to sign in – use the same credentials you registered your TFS service with (for best results).  You can create or assign other IDs later on.

    Once authentication is complete, you should find your server has been successfully added to the list of TFS servers.  Select your server and you should be prompted with the available Team Projects:

    image image

    Victory is Mine

    Once opened, Team Explorer should populate as if the TFS service was not cloud based, which means we should be able to use TFS more or less as we would normally, i.e. source control, work items etc..

    image image

    Limitations

    A few things to note, from my first glance:

    • No Team Portal (SharePoint) or Team Web Access
    • Team Members (from TFS Power Tools) doesn’t seem to work/populate
    • No Reporting (SSRS)
    • No Process Guidance
    • Can’t create a new Team Project from inside Visual Studio:

    image

      • You’ll need to create Team Projects from the browser/admin site
    • Group Membership/Security is managed via the website, even if you use the context menu in Visual Studio

    Next Steps

    In the next part, we’ll add a sample solution and define a build controller, and define a build definition or three, and see how well TFS responds.  We’ll also allocate some extra users, and play with permissions, groups and work items.

    Part 1 Setting up TFS Azure
    Part 2 Configuring Visual Studio to use TFS Azure
    Part 3 Registering Team Build controllers for TFS Azure
    Part 4  
    Sep 182011
     

    Part 1 – Setting up TFS Azure (this article)
    Part 2 – Configuring Visual Studio to use TFS Azure
    Part 3 – Registering Team Build controllers for TFS Azure
    Part 4 – Builds in the Cloud

    Introduction

    At the recent BUILD convention in the US, Microsoft announced a series of new Cloud-based services, one in particular being Team Foundation Server.  Although we’ve heard rumours about such an offering for a long time, and that some services (such as TFSNow) actually were offered by third parties, this represents the first major push from Microsoft directly.

    In order to drum up some initial interest, Microsoft launched http://www.tfspreview.com and an early beta period with invites sent to BUILD attendees and select members of the Microsoft development community.  Although there are already a spate of blogs with video and image walkthroughs, I decided to give TFS Preview the Sanders Technology treatment.

    I’ve been building or administering TFS installations for over six years now, since the early betas of Team Foundation Server 2005 back when I was an Associate Consultant at Readify.  I’ve deep experience in all versions of TFS to date, so I expect I’m in a decent position to evaluate and discuss this new service and how it integrates into the development process.

    Let’s start at the beginning..

    Signing Up

    Before we go any further.. have you got an invite code?  They are rather hard to come by, and a lot of the early multi-use codes are now exhausted.  I, personally, have a few activations left on an invite code (or two) so to those lucky readers who get in first, I’m happy to email you a TFS Preview invite code while I can – while stocks last!

    Once you have your invite code, browse to http://www.tfspreview.com and click on the “Create Account” button.

    image image

    On the next page, select a name for your TFS URL, paste your invite code and agree to the ToS.  You’ll need a valid Live Account (which is used for all valid users of TFS in the cloud).

    Assuming it all goes smoothly, your account will be created, and you’ll appear at the main console page.  What to do next, is to examine all your software and make sure you have applied the hotfix (for Visual Studio 2010) if you wish to get your hands dirty.  However, there’s still some initial configuration to be done in your browser first.

    Creating a Team Project

    image

    Everything in TFS revolves around a Collection and a Team Project.  In normal TFS, you can have multiple collections and multiple Team Projects – in the cloud, it seems that we have just the default collection (if anyone can figure out how to create multiple, please let me know).

    From the account page, click on the “Administration” link in the upper right hand corner of the screen.  You’ll enter the Administration console which has a number of options:

    image

    Our immediate priority is to create a Team Project – clicking on “create team project” will provide us with this nifty pop up window – fill in the details as you desire, and proceed by clicking on “Create Project”:

    image

    Administration

    Once the project has been successfully created, you’ll also notice that a default collection has been created, and your team project is now a child of that default collection.  The console now provides more functionality – click on the Project drop list and select “Browse all Projects”:

    image

    Select your Team Project and then click “Navigate”.  I’ve circled the main page navigation as each should be worthy of a bit of investigation.  Each link provides access to security, group membership and key team project configuration (such as Areas and Iterations) which essentially represent their approximate siblings in TFS 2005, 2008 and 2010 respectively.  Little has changed here, except that instead of adding Active Directory accounts to groups, you add users according to their Live Accounts instead.

    image

    From the main page you can view all the traditional options which we would find in Team Foundation Server, I’ve taken screen captures of the most interesting windows:

    image image
    Areas                                                     Iterations

    image image
    Security                                                 Group Membership

    image image
    Member Details                                      Project Groups

    By default, the user who creates the Team Project is an administrator, which means complete access to all settings and functionality.  Now that a Team Project has been created, you will want to consume TFS from within Visual Studio.

    If you haven’t already, download and install the hotfix located here.  When I ran the hotfix I received this:

    image

    If you hit a wall, probably best to reapply Visual Studio 2010 Service Pack 1.  Last of all, you can also hit the TFS Azure forums which are located here: http://social.msdn.microsoft.com/Forums/en-US/TFService/threads

    Check back son for Part 2, where we’ll look at some practical ways to use this new TFS cloud service!

    Downloads

    Software Downloads for the Team Foundation Service Preview:
    http://blogs.msdn.com/b/visualstudioalm/archive/2011/09/14/tfs-preview-downloads.aspx

    Microsoft® Visual Studio® 11 Developer Preview:
    http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27542

    Aug 102011
     

    Not too long ago I wrote an article about Team Foundation Server licensing.  Now that it is 2011, and after some recent access requests for TFS, I’ve decided it is time for an update.

    Does TFS cover SQL Server Licensing?

    One instance of Microsoft SQL Server 2008 Standard Edition or SQL Server 2008 R2 Standard Edition can be used as the Team Foundation Server 2010 database.

    That’s right – TFS 2010 includes a Standard Edition license for SQL Server but only when used exclusively as the data store for TFS and nothing else.  The paper doesn’t stipulate if the license is only valid for single tier or dual tier configurations, but since the database instance must be used exclusively by TFS, I can’t see why it wouldn’t cover dual tier deployments.  Note that if you want to use a different version of SQL (Enterprise, DataCenter) you need a separate license.

    How about TFS user licensing?

    A few years ago, Microsoft eased up a little bit on the licensing restrictions which caused a user to require a Client Access License (which are expensive).  The clause in the TFS licensing is explicitly:

    Client Access License Exception for Certain Work Items
    A user does not need a CAL or External Connector License to create new work items or to update work items that that same user has created. This exception applies only to work items related to defect filing or enhancement requests. However, a CAL is required when a user views or modifies a work item created by another user or interacts with Team Foundation Server in any other way.

    Which opens up TFS for people who wish to create defects (bugs) and feature requests.  Accessing TFS for this purpose is fairly obvious and easy to open to a large host of users – via Web Access.  However, how does a TFS Administrator set permissions appropriately?  It turns out that, via the TFS Administration Console, Active Directory groups and users can be added to a special group called the “Work Item Only View Users”.  For more information on configuring this, see the following article: Work Item Only View (WIOV) Users in TFS 2010

    Members of the Work Item Only View Users group are restricted to a limited view, which is indicated by the “Work Item Only View” tag in the top right hand corner of the web application page:

    image

    By default, I noticed that restricted use users did not automatically have permissions to create work items!  This rendered the whole exercise rather pointless.  Digging deeper, I realised I’d have to grant permissions on a per-Team Project basis so that the limited permission group could create work items.  Given that each Team Project could have a different template base, I believe you’ll also have to grant permissions separately for work item types as well – where the work item type relates to a defect or enhancement.

    Note that external users (users who do not belong to the parent organization) are required to be licensed both with a CAL (if working beyond the scope of the CAL exception) and an External Connector License (which is a nice way of raising some extra revenue).

    I can think of ways around that licensing model..

    Now, don’t think that “multiplexing” or pooling access to TFS will avoid the need for CALS for your users!

    End users or devices that access Team Foundation Server in any way-other than the Client Access License Exception for Certain Work Items exception noted above-are required to have the appropriate licenses, regardless of whether they are using a direct or indirect connection to the software.

    Which translates into: “no matter how a user accesses TFS or TFS data, Microsoft want their money”.  Even automated builds aren’t devoid of licensing creep.  An automated deployment or build which does basically anything other than compile requires a Visual Studio license:

    CAL Requirements for Builds
    Users who merely execute and review builds are only required to have a Team Foundation Server CAL; however, users who author tests or other types of validation and include them as part of a build must be licensed for the appropriate Visual Studio 2010 individual development tool.

    This extends to the execution of: unit tests, code coverage tests, web or load testing, architectural tests (validations) or any code analysis or coded UI or database unit testing.

    Also note that the following shows the many ways TFS can be accessed:

    Accessing Team Foundation Server
    The Team Foundation Server 2010 data can be accessed in several ways, including:

    • Visual Studio Team Explorer 2010, which is included with Visual Studio 2010 Ultimate, Visual Studio 2010 Premium, Visual Studio 2010 Professional, and Visual Studio Test Professional 2010, and available for download to the general public. Team Explorer also can be installed as a standalone client, and on as many physical devices as you like.
    • Visual Studio Team Web Access 2010, which is a browser-based version of the Team Explorer client.
    • Microsoft Office ExcelR or Microsoft Office Project, which can access Team Foundation Server using add-ins for those programs that are provided with Team Explorer.
    • Microsoft Expression Blend. 3, which can access Team Foundation Server without requiring Team Explorer.
    • Microsoft Expression Studio 4 (all editions), which can access Team Foundation Server without requiring Team Explorer.
    • Programmatically, as enabled through the Team Foundation Server 2010 application programming interfaces (APIs) or by other means.

    For more information, why not check out the whitepaper directly?  See below for further reading.

    Visual Studio

    Further Reading

    Visual Studio 2010 and MSDN Licensing White Paper
    Work Item Only View (WIOV) Users in TFS 2010
    Team Foundation Server Permissions
    Visual Studio 2010 and MSDN Licensing White Paper (updated)


    F8S7T93JTXQR