Wilson Mar bio photo

Wilson Mar

Hello. Hire me!

Email me Calendar Skype call 310 320-7878

LinkedIn Twitter Gitter Google+ Youtube

Github Stackoverflow Pinterest

https://wilsonmar.github.io/tfs-vs-github

Check out Git, then commit to it


Overview

What is TFS?

TFS (Team Foundation Server) is licensed from Microsoft.

TFS is available to subscribers of MSDN. The over 100 different downloads of TFS are to these dimensions :

  1. Visual Studio vs. core
  2. Express vs. not.
  3. Version (2015, 2013, 2011, etc.)
  4. Update level (None, 1, 2, 3, etc.)
  5. Web Installer vs. full download

  6. Release Management made its debut with 2013
  7. Project Server Extensions made its debut with 2015
  8. Office Integration made its debut with 2015

  9. Feedback Client for VS TFS 2015 dated 9/17/2015
  10. Team Explorer Everywhere for TFS 2012, 32 MB provides access to TFS from Linux, with an Eclipse plug-in.

The sizes of installers:

Release Version Update Edition Express Standard
03/30/2016 2015 2 Standard 461 MB 461 MB
08/06/2015 2015 - VS 891 MB 911 MB
07/10/2015 2013 5 VS 531 MB 2518 MB
11/24/2014 2013 4 VS 530 MB 531 MB
11/24/2014 2013 3 VS 531 MB 2517 MB
04/02/2014 2013 2 VS 529 MB 2515 MB
11/13/2013 2012 4 VS 484 MB 1170 MB
11/11/2013 2013 - VS 506 MB 2481 MB
06/26/2013 2012 3 VS 483 MB 1168 MB
04/04/2013 2012 2 VS 483 MB 1167 MB
12/12/2012 2012 1 VS 465 MB 1135 MB
08/15/2012 2012 - VS 447 MB 1104 MB
03/08/2011 2010 1 - - 477 MB
08/05/2010 2010 - VS - 1318 MB
09/26/2008 2008 1 VSTS - 1318 MB
11/28/2007 2008 Trial Workgroup - 1318 MB
03/17/2006 2005 Trial Workgroup - 448 MB

Internally, TFS has a Standard vs. Basic configuration.

Update 2 of Team Foundation Server 2015 dated 3/30/2016 consisted of these downloads for (x86 and x64) - DVD (English) :

  1. TFS Express, 461 MB

  2. TFS Express - Web Installer, 2 MB

  3. TFS (core), 461 MB

  4. TFS (core) - Web Installer, 2 MB

  5. TFS Office Integration, 139 MB

  6. TFS Office Integration - Web Installer, 2 MB

  7. TFS Project Server Extensions, 3 MB

  8. TFS Project Server Extensions - Web Installer, 2 MB

  9. Release Management Server for TFS - Web Installer, 2 MB

Visual Studio 2015 with Update 1 dated 11/30/2015:

  1. Visual Studio TFS Office Integration - Web Installer, 2 MB

  2. Visual Studio TFS Office Integration, 240 MB

  3. Release Management Server for Team Foundation Server 2015 with Update 1 (x86 and x64) - Web Installer (English)

  4. Visual Studio Team Foundation Server Express 2015 with Update 1 (x86 and x64) - DVD (English)

  5. Visual Studio Team Foundation Server Extensions for Project Server 2015 with Update 1 (x86 and x64) - DVD (English)

  6. Visual Studio Team Foundation Server Express 2015 with Update 1 (x86 and x64) - Web Installer (English)

  7. Visual Studio Team Foundation Server 2015 with Update 1 (x86 and x64) - Web Installer (English)

  8. Visual Studio Team Foundation Server 2015 with Update 1 (x86 and x64) - DVD (English)

Pricing and options

Microsoft’s Express editions are free for up to 5 users. Express TFS makes use of Express SQL.

Microsoft offers hosting on codeplex.com, Microsoft’s open source project hosting site.

A 30-day free trial of TFS cloud service is available from DiscountASP.

More than just version control

TFS is the community server behind Microsoft’s Visual Studio IDE.

In 2010, TFS was primarily a replacement for Visual Source Safe product.

In 2012, TFS became a part of Microsoft’s new ALM (Application Lifecycle Management) “best practices”:

  • Version Control
  • Requirements
  • Agile Planning - Plan and Track
  • Design
  • Develop
  • Automated Build
  • Testing & Defect Tracking
  • Feedback
  • Test Lab Management
  • Reporting

In 2015 TFS added more tools:

tfs visual studio

  • Layer Diagrams
  • Architecture Validation
  • UML diagrams

  • Code Analysis makes suggestions based on IL inspections

  • Unit Testing
  • Code Metrics (Cyclometric Complexity)
  • Code Coverage results appear in Build reports

  • During Manual Testing, capture video and IntelliTrace
  • Test Impact Analysis
  • “Coded UI” testing

  • Performance Testing (Lab Management)

UML Diagrams:

  • Activity - flow of work between actions and participants
  • Component - Interfaces, prots, relationships
  • Class - types and relationships
  • Sequence - interactions between objects and components
  • Use case - goals and tasks

New Build System with 2015

http://aka.ms/vsopreview describes the TFBuild (Team Foundation Build) yet also supports Java, Linux, and Apple XCode (XPlat), on-prem or in the cloud with Visual Studio Online.

https://github.com/Microsoft/vso-agent

TFBuild also supports previous XAML-based MSBuilds.

Several TFBuild servers can run at once in parallel. Each server uses a pool of Agents that can be used across several Collections. Each collection has a queue. An agent can belong to several queues.

TFS setup

There is only one repository in each machine hosting TFS. Git allows for many repos.

In TFS, create a team project, then folders for each individual project and branches.

PROTIP: Naming conventions for team project name?

TFS 2012 had 3 process templates to define work item field names:

  • Visual Studio scrum 2.0
  • MSF for Agile Software Development 6.0
  • MSF for CMMI Process Improvement 6.0
  • SAFe for enterprises?

IN VS, a new project can be added to TFS with a checkbox, or added by right-clicking the Solution node.

Git vs. TFS

TFS is a centralized version while
Git is distributed as everyone has a full copy of the whole repo and its history.

TFS has its own language: Check-in/Check-out is a different concept.

TFS users “check-in” which invokes file locking whereas
Git users do commits based on distributed full versions with difference checking.

TFS provides a “shelf” to hold local changes temporarily.
Git provides a stash area away from items being committed.

Shelve-sets in TFS are stored in the centeral server.
Stashed items in Git remain local machine.

TFS groups changes in sequentially numbered changesets.
Git assigns a 32-byte hash to each commit.

TFS branches creates a new folder.

This site summarizes the differences:

TFVC Git
Check-In Commit + Push
Get Latest Version Pull
‘Map Local Path’ Clone
Shelve Stash (only local though)
Label Tag
‘Compare Local to Server’ Fetch
Checkin and get Latest Sync

Visual Studio GUI

To check-in right-click on the app within Team Explorer. For VS 2013:

vs2013 tfs app checkin

To see differences, right-click on the folder within Source Control Explorer. For VS 2013:

vs2013 sourcecontrolexplorer alt-click

To apply a label, select Advanced: For VS 2013:

vs2013 advanced apply label

Click on an item within History compare: For VS 2013:

vs2013 change history alt click

To work on individual files, right-click on the file within Solution Explorer. For VS 2013: vs2013 file alt-click sol explorer

Git is King?

Public repository websites at even Google and others have moved to adopt Git and GitHub.

Visual Studio 2015 provides support for both GitHub and TFS.

git-tfs bridge

As http://git-tfs.com/ describes, use Chocolately on a Windows machine:

   cinst GitTfs

The above is equivalent to:

   choco insttall Git-tf -y

Alternately, follow manual instructions at https://gittf.codeplex.com/

This installs the contents of https://github.com/git-tfs/git-tfs

Clone using the git-tfs command rather than git command:

   <strong>git-tfs</strong> clone http://github.com/etc.

Remove TFC bindings

TFS source control bindings (*.vssscc files) are unique to TFS. So remove it. This can be done from within Visual Studio.

Edit your .sln file to remove the

   GlobalSection(TeamFoundationVersionControl) ...
   EndGlobalSection
   

README.md Markdown File

One artifact unique to GitHub is the README.md file (where .md means markdown or text).

It’s optional but most GitHub repos have one.

Keeping history

The issue is keeping history

Resources

  • https://www.microsoft.com/en-gb/developers/articles/week02mar2014/migrating-a-tfs-tfvc-based-team-project-to-a-git-team-project-retaining-as-much-source-and-work-item-history-as-possible/

  • http://chriskirby.net/blog/migrate-an-existing-project-from-tfs-to-github-with-changeset-history-intact

John Brown of TritiumConsulting.com presented a video course with Pluralsight https://app.pluralsight.com/library/courses/tfs-integration/table-of-contents

Virtual Environments

AMong Visual Studio ALM virtual machines VHD avaialble 10 days at a time.

Azure Active Directory (AAD) Authentication Plug-in for SonarQube The AAD OAuth2 provider for SonarQube, created by Hosam Kamel and Jean-Marc Prieur (product owner), enables AAD users to automatically be sign up and authenticated on a SonarQube server.

TailSpin

Microsoft’s TailSpin toys sample MVC 2 ordering application was first released for Visual Studio.NET 2003 building a 3-tier app with a SQL 2000 XML service via OLE DB with COM Interop.

Brian Keller, Principal Technical Evangelist, Visual Studio ALM for Microsoft, built for VS 2010 a virtual machine image with sample data and 14 hands-on labs to a ficticious (http://bit.ly/aC5Lb2) Tailspin Toys end-to-end eCommerce sample MVC 2 application. This expired in 2012 VSKitFdbk@Microsoft.com

https://msdn.microsoft.com/en-us/library/aa645517(v=vs.71).aspx Tailspin Toys Application Visual Studio .NET 2003

The new home for ALM is at http://vsalmvm.azurewebsites.net/

https://technet.microsoft.com/en-us/virtuallabs?f=255&MSPPError=-2147217396

https://technet.microsoft.com/en-us/virtuallabs?f=255&MSPPError=-2147217396 TechNet Virtual Lab: Introduction to Team Foundation Build 2015 (vNext), Test Run Analysis and Machines

Resources

  • Lynda video course shows several version control products, including use of TFS by Visual Studio 2012.

  • http://betterexplained.com/articles/aha-moments-when-learning-git/

  • https://msdn.microsoft.com/en-us/library/jj190809.aspx VS 2015 with Git Branches

  • svnvsgit.com compares SVN vs Git.

More on DevOps

This is one of a series on DevOps:

  1. DevOps_2.0
  2. User Stories for DevOps

  3. Git and GitHub vs File Archival
  4. Git Commands and Statuses
  5. Git Commit, Tag, Push
  6. Git Utilities
  7. Data Security GitHub
  8. GitHub API
  9. TFS vs. GitHub

  10. Choices for DevOps Technologies
  11. Java DevOps Workflow
  12. AWS DevOps (CodeCommit, CodePipeline, CodeDeploy)
  13. AWS server deployment options

  14. Digital Ocean
  15. Cloud regions
  16. AWS Virtual Private Cloud

  17. Azure Cloud Onramp
  18. Azure Cloud
  19. Azure Cloud Powershell

  20. Powershell Ecosystem
  21. Powershell on MacOS
  22. Powershell Desired System Configuration

  23. Jenkins Server Setup
  24. Jenkins Plug-ins
  25. Jenkins Freestyle jobs
  26. Jenkins2 Pipeline jobs using Groovy code in Jenkinsfile

  27. Dockerize apps
  28. Docker Setup
  29. Docker Build

  30. Maven on MacOSX

  31. Ansible

  32. MySQL Setup

  33. SonarQube static code scan

  34. API Management Microsoft
  35. API Management Amazon

  36. Scenarios for load