Wilson Mar bio photo

Wilson Mar

Hello!

Calendar YouTube Github

LinkedIn

Check out Git, then commit to it

US (English)   Norsk (Norwegian)   Español (Spanish)   Français (French)   Deutsch (German)   Italiano   Português   Estonian   اَلْعَرَبِيَّةُ (Egypt Arabic)   Napali   中文 (简体) Chinese (Simplified)   日本語 Japanese   한국어 Korean

Overview

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

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/Entra) Authentication Plug-in for SonarQube The AAD/Entra 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. ci-cd (Continuous Integration and Continuous Delivery)
  3. User Stories for DevOps
  4. Enterprise Software)

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

  12. Choices for DevOps Technologies
  13. Pulumi Infrastructure as Code (IaC)
  14. Java DevOps Workflow
  15. Okta for SSO & MFA

  16. AWS DevOps (CodeCommit, CodePipeline, CodeDeploy)
  17. AWS server deployment options
  18. AWS Load Balancers

  19. Cloud services comparisons (across vendors)
  20. Cloud regions (across vendors)
  21. AWS Virtual Private Cloud

  22. Azure Cloud Onramp (Subscriptions, Portal GUI, CLI)
  23. Azure Certifications
  24. Azure Cloud

  25. Azure Cloud Powershell
  26. Bash Windows using Microsoft’s WSL (Windows Subsystem for Linux)
  27. Azure KSQL (Kusto Query Language) for Azure Monitor, etc.

  28. Azure Networking
  29. Azure Storage
  30. Azure Compute
  31. Azure Monitoring

  32. Digital Ocean
  33. Cloud Foundry

  34. Packer automation to build Vagrant images
  35. Terraform multi-cloud provisioning automation
  36. Hashicorp Vault and Consul to generate and hold secrets

  37. Powershell Ecosystem
  38. Powershell on MacOS
  39. Powershell Desired System Configuration

  40. Jenkins Server Setup
  41. Jenkins Plug-ins
  42. Jenkins Freestyle jobs
  43. Jenkins2 Pipeline jobs using Groovy code in Jenkinsfile

  44. Docker (Glossary, Ecosystem, Certification)
  45. Make Makefile for Docker
  46. Docker Setup and run Bash shell script
  47. Bash coding
  48. Docker Setup
  49. Dockerize apps
  50. Docker Registry

  51. Maven on MacOSX

  52. Ansible
  53. Kubernetes Operators
  54. OPA (Open Policy Agent) in Rego language

  55. MySQL Setup

  56. Threat Modeling
  57. SonarQube & SonarSource static code scan

  58. API Management Microsoft
  59. API Management Amazon

  60. Scenarios for load
  61. Chaos Engineering

More about Git & GitHub

This is one of a series on Git and GitHub:

  1. Git and GitHub videos

  2. Why Git? (file-based backups vs Git clone)
  3. Git Markdown text

  4. Git basics (script)
  5. Git whoops (correct mistakes)
  6. Git messages (in commits)

  7. Git command shortcuts
  8. Git custom commands

  9. Git-client based workflows

  10. Git HEAD (Commitish references)

  11. Git interactive merge (imerge)
  12. Git patch
  13. Git rebase

  14. Git utilities
  15. Git-signing

  16. Git hooks
  17. GitHub data security
  18. TFS vs GitHub

  19. GitHub actions for automation JavaScript
  20. GitHub REST API
  21. GitHub GraphQL API
  22. GitHub PowerShell API Programming
  23. GitHub GraphQL PowerShell Module