Version Control: TFS offers both the centralized “TFVC” version control technology as well as the distributed “Git” version control technology.
TFVC is a file and folder based version control system, which includes the ability to check-out, check-in, label, lock, branch, and merge. The security model is extremely granular allowing permissions to be set at the individual file, folder, or branch level (with inheritance as needed). The Git implementation is comparable to other on-premise Git offerings, such as Bitbucket and GitLab. The Git feature set has improved greatly between the 2013 and 2017 (latest) versions.
Build: The TFS build engine allows us great flexibility in how we perform our builds. While continuous integration (build on check-in) is used throughout the majority of the organization, we also leverage scheduled and manually initiated builds. The build workflow is entirely customizable and extensible to suit any need. Out-of-the-box build workflows in TFS 2013 are very NET-centric, however this has been completely overhauled in the 2015 and 2017 releases of the product. The newer versions of TFS can be used to create builds for virtually any technology stack, such as iOS builds on a Mac, Android builds, Java builds on windows\linux, etc.
.NET API: The ability to hook into TFS with custom a .NET code via API calls is critical. It allows us to automate any and all version control and build operations that we need to. Custom tooling which interfaces with TFS is a major component of our DevOps strategy/code delivery pipeline.
I agree!