[go: nahoru, domu]

Jump to content

Azure DevOps Server: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎History: Add version number to history
m Replace redirect back to this page with section link
 
(38 intermediate revisions by 33 users not shown)
Line 1: Line 1:
{{short description|Source code management software}}
{{short description|Source code management software}}
{{Multiple issues|
{{self-published|date=May 2014}}
{{third-party|date=May 2014}}
}}
{{Infobox software
{{Infobox software
| name = Azure DevOps Server
| name = Azure DevOps Server
| logo =
| logo = Windows Azure logo.png
| screenshot =
| logo size = 220px
| caption =
| screenshot =
| developer = [[Microsoft]]
| caption =
| developer = [[Microsoft]]
| released = {{Start date and age|2005}}
| released = {{Start date and age|2005}}
| latest release version = 2019 Update 1 Patch 1
| latest release version = 2022
| latest release date = {{Start date and age|2019|09|10}}<ref>{{cite web |title=Azure DevOps Server 2019 Update 1 Release Notes |url=https://docs.microsoft.com/azure/devops/server/release-notes/azuredevops2019u1 |website=[[Microsoft Docs]] |accessdate=2019-10-12}}</ref>
| latest release date = {{Start date and age|2022|12|06}}<ref>{{cite web |title=Azure DevOps Server 2022 |url=https://learn.microsoft.com/fr-fr/azure/devops/server/release-notes/azuredevops2022?view=azure-devops|website=[[Microsoft Docs]]| date=14 November 2023 }}</ref>
| operating system = [[Microsoft Windows]]
| operating system = [[Microsoft Windows]]
| language =
| language =
| genre = [[Application lifecycle management]]
| genre = [[Application lifecycle management]]
| license = [[Trialware]]
| license = [[Trialware]]
}}
}}


'''Azure DevOps Server''' (formerly Team Foundation Server (TFS) and Visual Studio Team System) is a [[Microsoft]] product that provides [[version control]] (either with [[Team Foundation Version Control]] (TFVC) or [[Git (software)|Git]]), reporting, [[requirements management]], [[project management]] (for both [[agile software development]] and [[waterfall model|waterfall team]]s), automated builds, [[software testing|testing]] and [[release management]] capabilities. It covers the entire [[Application Lifecycle Management|application lifecycle]], and enables [[DevOps]] capabilities.<ref>{{cite web |url=http://msdn.microsoft.com/en-us/library/vstudio/fda2bad5(v=vs.120).aspx |title=Application Lifecycle Management with Visual Studio and Team Foundation Server |year=2013 |website=[[Microsoft Developer Network|MSDN]] |publisher=Microsoft |accessdate=2013-10-15}}</ref> Azure DevOps can be used as a back-end to numerous [[integrated development environment]]s (IDEs) but is tailored for [[Microsoft Visual Studio]] and [[Eclipse (software)|Eclipse]] on all platforms.<ref>{{cite web |url=http://msdn.microsoft.com/en-us/library/gg413285.aspx |title=Adopting Team Explorer Everywhere |publisher=Microsoft |website=[[MSDN]] |accessdate=26 May 2017}}</ref>
'''Azure DevOps Server''', formerly known as '''Team Foundation Server''' ('''TFS''') and '''Visual Studio Team System''' ('''VSTS'''), is a [[Microsoft]] product that provides [[version control]] (either with [[#TFVC|Team Foundation Version Control]] (TFVC) or [[Git (software)|Git]]), reporting, [[requirements management]], [[project management]] (for both [[agile software development]] and [[waterfall model|waterfall team]]s), automated builds, [[software testing|testing]] and [[release management]] capabilities. It covers the entire [[Application Lifecycle Management|application lifecycle]] and enables [[DevOps]] capabilities.<ref>{{cite web |url=http://msdn.microsoft.com/en-us/library/vstudio/fda2bad5(v=vs.120).aspx |title=Application Lifecycle Management with Visual Studio and Team Foundation Server |year=2013 |website=[[Microsoft Developer Network|MSDN]] |publisher=Microsoft |access-date=2013-10-15}}</ref> Azure DevOps can be used as a back-end to numerous [[integrated development environment]]s (IDEs) but is tailored for [[Microsoft Visual Studio]] and [[Eclipse (software)|Eclipse]] on all platforms.<ref>{{cite web |url=http://msdn.microsoft.com/en-us/library/gg413285.aspx |title=Adopting Team Explorer Everywhere |publisher=Microsoft |website=[[MSDN]] |date=28 April 2015 |access-date=26 May 2017}}</ref>


==On-premises vs. >
==On-premises vs. >
Azure DevOps is available in two different forms: on-premises ("Server") and online ("Services"). The latter form is called [[Azure DevOps Services]] (formerly Visual Studio Online before it was renamed to Visual Studio Team Services in 2015). The cloud service is backed by the [[Microsoft Azure]] cloud platform. It uses the same code as the on-premises version of Azure DevOps, minor modifications, and implements the most recent features. Azure DevOps requires no setup. A user [[sign in|signs in]] using a [[Microsoft account]] to set up an environment, creating projects and adding team members. New features developed in short development cycles are added to the cloud version first. These features migrate to the on-premises version as updates, at approximately three-month intervals.<ref>{{cite web
Azure DevOps is available in two different forms: on-premises ("Server") and online ("Services").<ref>{{cite web|url=https://codefresh.io/learn/azure-devops/|title=What Is Azure DevOps? Services, Examples, and Best Practices|website=codefresh.io}}</ref> The latter form is called [[Azure DevOps Services]] (formerly Visual Studio Online before it was renamed to Visual Studio Team Services in 2015). The cloud service is backed by the [[Microsoft Azure]] cloud platform. It uses the same code as the on-premises version of Azure DevOps, with minor modifications, and implements the most recent features. A user [[sign in|signs in]] using a [[Microsoft account]] to set up an environment, creating projects and adding team members. New features developed in short development cycles are added to the cloud version first. These features migrate to the on-premises version as updates, at approximately three-month intervals.<ref>{{cite web
|publisher=1105 Media
|publisher=1105 Media
|year=2013
|year=2013
|url=http://visualstudiomagazine.com/articles/2013/05/10/new-visual-studio-release-cadence-begins.aspx
|url=http://visualstudiomagazine.com/articles/2013/05/10/new-visual-studio-release-cadence-begins.aspx
|title=New Release 'Cadence' Begins with Visual Studio 2012 Update 2
|title=New Release 'Cadence' Begins with Visual Studio 2012 Update 2
|accessdate=2013-10-15
|access-date=2013-10-15
}}</ref>
}}</ref>


Line 39: Line 36:
|url=http://msdn.microsoft.com/en-us/library/cc645581(v=sql.110).aspx
|url=http://msdn.microsoft.com/en-us/library/cc645581(v=sql.110).aspx
|title=Availability Enhancements (Database Engine)
|title=Availability Enhancements (Database Engine)
|accessdate=2013-10-17
|access-date=2013-10-17
}}</ref> The primary container is the project collection. A project collection is a database that contains a group of Team Projects. The Project Collection is another scalability mechanism, in that each collection can be placed on different SQL Servers or SQL Server instances. 'Oe' configuration database per Azure DevOps instance stores project collection metadata. Data from the project collection databases is aggregated into the warehouse database, which denormalizes the data in preparation for loading into an Analysis Services cube. The warehouse and the cube allow complex trend reporting and data analysis.
}}</ref> The primary container is the project collection. A project collection is a database that contains a group of Team Projects. The Project Collection is another scalability mechanism, in that each collection can be placed on different SQL Servers or SQL Server instances. 'Oe' configuration database per Azure DevOps instance stores project collection metadata. Data from the project collection databases is aggregated into the warehouse database, which denormalizes the data in preparation for loading into an Analysis Services cube. The warehouse and the cube allow complex trend reporting and data analysis.


Line 47: Line 44:
|url=http://msdn.microsoft.com/en-us/library/vstudio/ms252473.aspx
|url=http://msdn.microsoft.com/en-us/library/vstudio/ms252473.aspx
|title=Team Foundation Server Architecture
|title=Team Foundation Server Architecture
|accessdate=2013-10-17
|access-date=2013-10-17
}}</ref> To support teams requiring enterprise project scheduling, Azure DevOps also integrates with [[Microsoft Project Server]], which allows enterprise level portfolio management, resource management and project tracking.
}}</ref> To support teams requiring enterprise project scheduling, Azure DevOps also integrates with [[Microsoft Project Server]], which allows enterprise level portfolio management, resource management and project tracking.


===Extensibility===
===Extensibility===
Microsoft provides two good standalone redistributed [[application programming interface|APIs]] for connecting to Azure DevOps. One is a [[Java (programming language)|Java]] SDK, the other is a [[.NET Framework]] SDK. These APIs allow for client connectivity to Azure DevOps. Because Azure DevOps is written on a service-oriented architecture, it can communicate with virtually any tool that can call a web service. Another extensible mechanism is subscribing to system alerts: for example, alerts that a work item was changed, or a build completed. There are approximately 20 preconfigured alerts, and teams can configure as many additional alerts as needed.<ref>{{cite web
Microsoft provides two standalone redistributed [[application programming interface|APIs]] for connecting to Azure DevOps. One is a [[Java (programming language)|Java]] SDK, the other is a [[.NET Framework]] SDK. These APIs allow for client connectivity to Azure DevOps. Because Azure DevOps is written on a [[service-oriented architecture]], it can communicate with virtually any tool that can call a web service. Another extensible mechanism is subscribing to system alerts: for example, alerts that a work item was changed, or a build completed. There are approximately 20 preconfigured alerts, and teams can configure as many additional alerts as needed.<ref>{{cite web
|publisher=Microsoft
|publisher=Microsoft
|year=2013
|year=2013
|url=http://msdn.microsoft.com/en-us/library/vstudio/ms181334.aspx
|url=http://msdn.microsoft.com/en-us/library/vstudio/ms181334.aspx
|title=Set alerts, get notified when changes occur
|title=Set alerts, get notified when changes occur
|accessdate=2013-10-17
|access-date=2013-10-17
}}</ref> When used in an extensible scenario, these alerts can be sent to a web service, triggering actions to alter or update work items (such as implementing advanced business rules or generating work items programmatically based on a given scenario).
}}</ref> When used in an extensible scenario, these alerts can be sent to a web service, triggering actions to alter or update work items (such as implementing advanced business rules or generating work items programmatically based on a given scenario).


Line 64: Line 61:
|url=http://msdn.microsoft.com/en-us/library/bb286956(v=vs.90).aspx
|url=http://msdn.microsoft.com/en-us/library/bb286956(v=vs.90).aspx
|title=How to create an adapter
|title=How to create an adapter
|accessdate=2013-10-17
|access-date=2013-10-17
}}</ref> With the introduction of TFS 2012, custom add-ins can also be created for Team Web Access, called '''Web Access Extensions'''.
}}</ref> With the introduction of TFS 2012, custom add-ins can also be created for Team Web Access, called '''Web Access Extensions'''.


===Clients===
===Clients===
Azure DevOps supports Visual Studio 2010 and later, [[Microsoft Test Manager]] (MTM) 2012 and 2013. Eclipse, older versions of Visual Studio, and other environments can be plugged into Azure DevOps using the Microsoft Source Code Control Integration Provider (MSSCCI Provider – pronounced “Miss-Key”).<ref>{{cite web
Azure DevOps supports Visual Studio 2010 and later, Microsoft Test Manager (MTM) 2012, and 2013. Eclipse, older versions of Visual Studio, and other environments can be plugged into Azure DevOps using the Microsoft Source Code Control Integration Provider (MSSCCI Provider – pronounced “Miss-Key”).<ref>{{cite web
|publisher=Microsoft
|publisher=Microsoft
|year=2012
|year=2012
|url=http://visualstudiogallery.msdn.microsoft.com/b5b5053e-af34-4fa3-9098-aaa3f3f007cd
|url=http://visualstudiogallery.msdn.microsoft.com/b5b5053e-af34-4fa3-9098-aaa3f3f007cd
|title=Microsoft Visual Studio Team Foundation Server 2012 MSSCCI Provider
|title=Microsoft Visual Studio Team Foundation Server 2012 MSSCCI Provider
|accessdate=2013-10-17
|access-date=2013-10-17
}}</ref> These tools provide full access to the features in Azure DevOps.
}}</ref> These tools provide full access to the features in Azure DevOps.
Line 85: Line 82:
|url=http://msdn.microsoft.com/en-us/library/vstudio/hh301769.aspx
|url=http://msdn.microsoft.com/en-us/library/vstudio/hh301769.aspx
|title=Request and review feedback
|title=Request and review feedback
|accessdate=2013-10-17
|access-date=2013-10-17
}}</ref> This tool allows users to exercise an application, annotate what they are seeing with audio and video, capture screens and provide contextual feedback to the development team. This provides specific feedback on the functions of an application from a users’ perspective without requiring meetings and demonstration sessions. Azure DevOps also provides for command line tools for both Unix and Windows environments. The Power Tools for TFS include a [[Windows shell]] integration that allows users to check files in and out, add files and perform other basic tasks by right-clicking on a file or folder.
}}</ref> This tool allows users to exercise an application, annotate what they are seeing with audio and video, capture screens and provide contextual feedback to the development team. This provides specific feedback on the functions of an application from a users’ perspective without requiring meetings and demonstration sessions. Azure DevOps also provides for command line tools for both Unix and Windows environments. The Power Tools for TFS include a [[Windows shell]] integration that allows users to check files in and out, add files and perform other basic tasks by right-clicking on a file or folder.


Line 94: Line 91:
|url=http://tedgustaf.com/blog/2011/1/how-to-customize-tfs-2010-work-items-and-workflows/
|url=http://tedgustaf.com/blog/2011/1/how-to-customize-tfs-2010-work-items-and-workflows/
|title=How to customize TFS 2010 work items and workflows
|title=How to customize TFS 2010 work items and workflows
|accessdate=2013-10-17
|access-date=2013-10-17
|archive-date=2013-10-19
}}</ref> Work items are combined into a '''Process Template''' that contains these and other pieces of information to provide a development framework. Azure DevOps includes Process Templates for the [[Microsoft Solutions Framework]] for Agile, Scrum and CMMI. Teams can choose to use a built-in template or one of the many templates available for use created by third parties. Process templates can be customized using the Process Template Editor, which is part of the Power Tools.<ref>{{cite web
|archive-url=https://web.archive.org/web/20131019045206/http://tedgustaf.com/blog/2011/1/how-to-customize-tfs-2010-work-items-and-workflows/
|url-status=dead
}}</ref> Work items are combined into a '''Process Template''' that contains these and other pieces of information to provide a development framework. Azure DevOps includes Process Templates for the [[Microsoft Solutions Framework]] for Agile, Scrum and CMMI. Teams can choose to use a built-in template or one of the many templates available for use created by third parties. Process templates can be customized using the Process Template Editor, which is part of the Power Tools.<ref>{{cite web
|publisher=Microsoft
|publisher=Microsoft
|year=2013
|year=2013
|url=http://visualstudiogallery.msdn.microsoft.com/f017b10c-02b4-4d6d-9845-58a06545627f
|url=http://visualstudiogallery.msdn.microsoft.com/f017b10c-02b4-4d6d-9845-58a06545627f
|title=Microsoft Visual Studio Team Foundation Server 2013 Power Tools
|title=Microsoft Visual Studio Team Foundation Server 2013 Power Tools
|accessdate=2013-10-17
|access-date=2013-10-17
}}</ref>
}}</ref>


Line 108: Line 108:


==Source control==
==Source control==
Azure DevOps supports two different types of [[source control]] - its original source control engine called Team Foundation Version Control (TFVC) and with the release of TFS 2013, it supports [[#Git|Git]] as a core source control repository.
Azure DevOps supports two different types of [[source control]] its original source control engine called Team Foundation Version Control (TFVC) and with the release of TFS 2013, it supports [[#Git|Git]] as a core source control repository.


===Team Foundation Version Control===
===Team Foundation Version Control===
{{anchor|TFVC}}
{{anchor|TFVC}}
TFVC is a centralized version control system allowing teams to store any type of artifact within its repository.<ref name="MSD-TFVC">{{cite web |title=Team Foundation Version Control (TFVC) |department=Azure DevOps |url=https://docs.microsoft.com/azure/devops/repos/tfvc/index |website=[[Microsoft Docs]] |accessdate=2019-09-23}}</ref> TFVC supports two different types of workspaces when working with client tools - Server Workspaces and Local Workspaces.<ref>{{cite web
TFVC is a centralized version control system allowing teams to store any type of artifact within its repository.<ref name="MSD-TFVC">{{cite web |title=Team Foundation Version Control (TFVC) |department=Azure DevOps |url=https://docs.microsoft.com/azure/devops/repos/tfvc/index |website=[[Microsoft Docs]] |access-date=2019-09-23}}</ref> TFVC supports two different types of workspaces when working with client tools Server Workspaces and Local Workspaces.<ref>{{cite web
|publisher=Phil Kelley
|publisher=Phil Kelley
|year=2013
|year=2013
|url=http://blogs.msdn.com/b/phkelley/archive/2013/05/29/server-workspaces-vs-local-workspaces.aspx
|url=http://blogs.msdn.com/b/phkelley/archive/2013/05/29/server-workspaces-vs-local-workspaces.aspx
|title=Server workspaces vs. local workspaces
|title=Server workspaces vs. local workspaces
|accessdate=2013-10-17
|access-date=2013-10-17
}}</ref> Server workspaces allow developers to lock files for check-out and provide notification to other developers that files are being edited. A frequent complaint for this model is that files on the development machine are marked as read-only. It also requires developers to "go offline" when the server can't be contacted. Local workspaces were designed to avoid these problems. In a local workspace scenario files are not read-only and they do not have to be checked out before working on them. As long as the files are on the developer's local machine, it doesn't matter if the server is connected or not. Conflicts are dealt with at [[revision control|check-in]] time.
}}</ref> Server workspaces allow developers to lock files for check-out and provide notification to other developers that files are being edited. A frequent complaint for this model is that files on the development machine are marked as read-only. It also requires developers to "go offline" when the server can't be contacted. Local workspaces were designed to avoid these problems. In a local workspace scenario files are not read-only and they do not have to be checked out before working on them. As long as the files are on the developer's local machine, it doesn't matter if the server is connected or not. Conflicts are dealt with at [[revision control|check-in]] time.


Line 125: Line 125:
|url=http://msdn.microsoft.com/en-us/library/ee248710.aspx
|url=http://msdn.microsoft.com/en-us/library/ee248710.aspx
|title=How to: Install Team Foundation Proxy and set up a remote site
|title=How to: Install Team Foundation Proxy and set up a remote site
|accessdate=2013-10-17
|access-date=2013-10-17
}}</ref> Proxy servers allow source control contents to be cached at a site closer to the developers to avoid long network trips and the associated latency. Check-ins are still performed directly against the Azure DevOps application tier so the Proxy Server is most beneficial in read scenarios.
}}</ref> Proxy servers allow source control contents to be cached at a site closer to the developers to avoid long network trips and the associated latency. Check-ins are still performed directly against the Azure DevOps application tier so the Proxy Server is most beneficial in read scenarios.


As part of the source control engine, Azure DevOps supports a number of features to help developers ensure the code that is checked in follows configurable rules. This rule engine is called a Check-in Policy. There are several out of the box policies such as the Changeset Comments Policy which will not allow a check-in unless the developer enters a check-in comment. These policies are extensible and can be used to examine all aspects of the code being checked in, the comments and the related work items. Azure DevOps also supports a Code Analysis feature that when used independently is known as [[FxCop]]. The inclusion in Azure DevOps means that the analysis can run against code checked into the server and during automated builds.
As part of the source control engine, Azure DevOps supports a number of features to help developers ensure the code that is checked in follows configurable rules. This rule engine is called a Check-in Policy. There are several out of the box policies such as the Changeset Comments Policy which will not allow a check-in unless the developer enters a check-in comment. These policies are extensible and can be used to examine all aspects of the code being checked in, the comments and the related work items. Azure DevOps also supports a Code Analysis feature that when used independently is known as [[FxCop]]. The inclusion in Azure DevOps means that the analysis can run against code checked into the server and during automated builds.


The Azure Repos extension for [[Visual Studio Code]] supports TFVC.<ref>{{cite web |title=Team Foundation Version Control (TFVC) Support |url=https://github.com/microsoft/azure-repos-vscode/blob/master/TFVC_README.md |department=Azure Repos Extension for Visual Studio Code |website=[[GitHub]] |accessdate=2019-09-23}}</ref>
The Azure Repos extension for [[Visual Studio Code]] supports TFVC.<ref>{{cite web |title=Team Foundation Version Control (TFVC) Support |url=https://github.com/microsoft/azure-repos-vscode/blob/master/TFVC_README.md |department=Azure Repos Extension for Visual Studio Code |website=[[GitHub]] |access-date=2019-09-23}}</ref>


===Git===
===Git===
Line 138: Line 138:
|url=https://github.com/libgit2/libgit2
|url=https://github.com/libgit2/libgit2
|title=GitHub libgit2/libgit2
|title=GitHub libgit2/libgit2
|accessdate=2013-10-31
|access-date=2013-10-31
}}</ref> library. This is the same library that powers the popular [[GitHub]] and the code is freely available from GitHub. Because Microsoft took the approach of using a standard library, any Git client can now be used natively with Azure DevOps (in other words, developers can use their favorite tools and never install the standard Azure DevOps clients). This allows tools on any platform and any IDE that support Git to connect to Azure DevOps. For example, both [[Xcode]] and [[Android Studio]] support Git plug-ins. In addition, if developers do not want to use Microsoft's Team Explorer Everywhere plug-in for [[Eclipse (software)|Eclipse]], they can choose to use eGit<ref>{{cite web
}}</ref> library. This is the same library that powers the popular [[GitHub]] and the code is freely available from GitHub. Because Microsoft took the approach of using a standard library, any Git client can now be used natively with Azure DevOps (in other words, developers can use their favorite tools and never install the standard Azure DevOps clients). This allows tools on any platform and any IDE that support Git to connect to Azure DevOps. For example, both [[Xcode]] and [[Android Studio]] support Git plug-ins. In addition, if developers do not want to use Microsoft's Team Explorer Everywhere plug-in for [[Eclipse (software)|Eclipse]], they can choose to use eGit<ref>{{cite web
|publisher=Eclipse
|publisher=Eclipse
Line 144: Line 144:
|url=http://www.eclipse.org/egit/
|url=http://www.eclipse.org/egit/
|title=EGit
|title=EGit
|accessdate=2013-10-31
|access-date=2013-10-31
}}</ref> to connect to Azure DevOps.
}}</ref> to connect to Azure DevOps.


Line 157: Line 157:
|url=http://msdn.microsoft.com/en-us/library/ms244687.aspx
|url=http://msdn.microsoft.com/en-us/library/ms244687.aspx
|title=Components of the TFS data warehouse
|title=Components of the TFS data warehouse
|accessdate=2013-10-17
|access-date=2013-10-17
}}</ref> (Tfs_Warehouse) which is a relational database and a SQL Server Analysis Services data cube.<ref>{{cite web
}}</ref> (Tfs_Warehouse) which is a relational database and a SQL Server Analysis Services data cube.<ref>{{cite web
|publisher=Microsoft
|publisher=Microsoft
Line 163: Line 163:
|url=http://msdn.microsoft.com/en-us/library/ms244710.aspx
|url=http://msdn.microsoft.com/en-us/library/ms244710.aspx
|title=Perspectives and measure groups provided in the Analysis Services cube for Team System
|title=Perspectives and measure groups provided in the Analysis Services cube for Team System
|accessdate=2013-10-17
|access-date=2013-10-17
}}</ref> Both of these sources are available for reporting through SQL Server Reporting Services when this option is installed. Since these are standard database and cube structures, any tool which can point to these data sources can report from them. This includes tools such as Cognos, Tableau, Excel and other reporting tools. Included with each out of the box process template is a set of reports for reporting services which cover Build information, Test results and progress, project management, agile reports (Backlog Overview, Release Burndown, Sprint Burndown and Velocity), bug and issue data. New reports can be created using Report Builder for SSRS and any of the existing reports can be modified.
}}</ref> Both of these sources are available for reporting through SQL Server Reporting Services when this option is installed. Since these are standard database and cube structures, any tool which can point to these data sources can report from them. This includes tools such as Cognos, Tableau, Excel and other reporting tools. Included with each out of the box process template is a set of reports for reporting services which cover Build information, Test results and progress, project management, agile reports (Backlog Overview, Release Burndown, Sprint Burndown and Velocity), bug and issue data. New reports can be created using Report Builder for SSRS and any of the existing reports can be modified.


Line 171: Line 171:


==Team Build==
==Team Build==
Team Build (prior to TFS 2015) is a build server application included with Team Foundation Server. Two components make up Team Build - [[MSBuild]] and [[Windows Workflow Foundation]]. MSBuild is a declarative XML language similar to [[Apache Ant]]. WF was added to the build process starting with TFS 2010; prior to that only MSBuild was available. The build capabilities have continued to evolve with each subsequent release of Azure DevOps. In TFS 2010 and 2012, the WF templates ([[XAML|Extensible Application Markup Language]]) files were stored in source control and could be edited and versioned directly from source control. In TFS 2013, these files were removed to eliminate clutter and streamline the build process. The WF templates can still be downloaded, edited and stored in source control if desired and TFS 2013 does not break existing TFS 2010 or 2012 build process templates. With the support of [[Git (software)|Git]] in TFS 2013, Team Build has been enhanced to allow automated building of Git projects as well as TFVC projects.
Team Build (prior to TFS 2015) is a build server application included with Team Foundation Server. Two components make up Team Build [[MSBuild]] and [[Windows Workflow Foundation]]. MSBuild is a declarative XML language similar to [[Apache Ant]]. WF was added to the build process starting with TFS 2010; prior to that only MSBuild was available. The build capabilities have continued to evolve with each subsequent release of Azure DevOps. In TFS 2010 and 2012, the WF templates ([[XAML|Extensible Application Markup Language]]) files were stored in source control and could be edited and versioned directly from source control. In TFS 2013, these files were removed to eliminate clutter and streamline the build process. The WF templates can still be downloaded, edited and stored in source control if desired and TFS 2013 does not break existing TFS 2010 or 2012 build process templates. With the support of [[Git (software)|Git]] in TFS 2013, Team Build has been enhanced to allow automated building of Git projects as well as TFVC projects.


Windows Workflow controls the overall flow of the build process and Azure DevOps includes many pre-built workflow activities for managing common tasks that are performed during a build.<ref>{{cite web
Windows Workflow controls the overall flow of the build process and Azure DevOps includes many pre-built workflow activities for managing common tasks that are performed during a build.<ref>{{cite web
Line 178: Line 178:
|url=http://msdn.microsoft.com/en-us/library/vstudio/gg265783.aspx
|url=http://msdn.microsoft.com/en-us/library/vstudio/gg265783.aspx
|title=Team Foundation Build Activities
|title=Team Foundation Build Activities
|accessdate=2013-10-17
|access-date=2013-10-17
}}</ref> MSBuild is the markup language that is found in the .proj (csproj for C# projects and vbproj for Visual Basic projects) files. The build system is extensible with users being able to create their own workflow activities, the ability to inject MSBuild into the process and to execute external processes. The workflow nature of the build allows for unlimited flexibility, but it may take some work to achieve that flexibility. Shared<ref>{{cite web
}}</ref> MSBuild is the markup language that is found in the .proj (csproj for C# projects and vbproj for Visual Basic projects) files. The build system is extensible with users being able to create their own workflow activities, the ability to inject MSBuild into the process and to execute external processes. The workflow nature of the build allows for unlimited flexibility, but it may take some work to achieve that flexibility. Shared<ref>{{cite web
|publisher=Codeplex
|publisher=Codeplex
Line 184: Line 184:
|url=http://tfsbuildextensions.codeplex.com/
|url=http://tfsbuildextensions.codeplex.com/
|title=Community TFS Build Extensions
|title=Community TFS Build Extensions
|accessdate=2013-10-17
|access-date=2013-10-17
|archive-date=2013-10-11
}}</ref> and open source projects have been started to build community backed activities to enhance the capabilities of Team Build.
|archive-url=https://web.archive.org/web/20131011050816/http://tfsbuildextensions.codeplex.com/
|url-status=dead
}}</ref> and open source projects have been started to build community backed activities to enhance the capabilities of Team Build.


The build process can be configured for various types of builds including scheduled builds, [[continuous integration]], gated check-in and rolling builds. A gated check-in build will shelve code that a developer checks in, perform a "get latest" on the server code and perform a build. If the build succeeds, the code is checked in on behalf of the developer who submitted the code. If the build fails, the developer is notified and can fix the code before trying another check-in.
The build process can be configured for various types of builds including scheduled builds, [[continuous integration]], gated check-in and rolling builds. A gated check-in build will shelve code that a developer checks in, perform a "get latest" on the server code and perform a build. If the build succeeds, the code is checked in on behalf of the developer who submitted the code. If the build fails, the developer is notified and can fix the code before trying another check-in.
Line 191: Line 194:
Builds have retention policies with them so that they do not accumulate when not needed (or builds can be directed not to produce any saved output) or build output can be locked and saved forever. New with TFS 2013 is the ability to check in the build results into source control. This was a necessary enhancement to support automated builds on the Azure DevOps Services where there is no drop location to place the builds. In the on-premises version build output can be configured to end up in any accessible shared folder location.
Builds have retention policies with them so that they do not accumulate when not needed (or builds can be directed not to produce any saved output) or build output can be locked and saved forever. New with TFS 2013 is the ability to check in the build results into source control. This was a necessary enhancement to support automated builds on the Azure DevOps Services where there is no drop location to place the builds. In the on-premises version build output can be configured to end up in any accessible shared folder location.


The build process in Azure DevOps is also part of the traceability mechanism in that Team Build brings together many of the artifacts that are created and stored in Azure DevOps. Assuming developers associate source code with work items on check-in, Team Build has the ability to report on the changes in each build - both source code changes and work item changes as well as test results (this includes [[unit testing]] results as well as automated functional testing (CodedUI) results). As bugs and [[Scrum (software development)#Product backlog|PBIs]] are resolved and integrated into builds, the work items which track these artifacts are automatically updated to indicate in which build they were successfully integrated. Combined with the testing tools, testers then get an integrated view of what code was changed in each build, but also which bugs, [[Scrum (software development)#Product backlog|PBIs]] and other work changed from build to build.
The build process in Azure DevOps is also part of the traceability mechanism in that Team Build brings together many of the artifacts that are created and stored in Azure DevOps. Assuming developers associate source code with work items on check-in, Team Build has the ability to report on the changes in each build both source code changes and work item changes as well as test results (this includes [[unit testing]] results as well as automated functional testing (CodedUI) results). As bugs and [[Scrum (software development)#Product backlog|PBIs]] are resolved and integrated into builds, the work items which track these artifacts are automatically updated to indicate in which build they were successfully integrated. Combined with the testing tools, testers then get an integrated view of what code was changed in each build, but also which bugs, [[Scrum (software development)#Product backlog|PBIs]] and other work changed from build to build.


Initially, in TFS 2015 and with Visual Studio Team Services (VSTS), Microsoft has reinvented the architecture for the build engine to be based on a cross-platform friendly Node.js application. Windows, Mac, and Linux build agents are currently supported. Azure DevOps provides for elastic build capabilities via build hosting in Microsoft Azure.<ref>{{cite web
Initially, in TFS 2015 and with Visual Studio Team Services (VSTS), Microsoft has reinvented the architecture for the build engine to be based on a cross-platform friendly Node.js application. Windows, Mac, and Linux build agents are currently supported. Azure DevOps provides for elastic build capabilities via build hosting in Microsoft Azure.<ref>{{cite web
Line 198: Line 201:
|url=https://azure.microsoft.com/
|url=https://azure.microsoft.com/
|title=Microsoft Azure - Portal
|title=Microsoft Azure - Portal
|accessdate=2016-05-17
|access-date=2016-05-17
}}</ref>
}}</ref>


Line 207: Line 210:
|url=https://thenextweb.com/microsoft/2013/06/03/microsoft-acquires-inrelease-adding-continuous-deployment-to-visual-studio-team-foundation-server/
|url=https://thenextweb.com/microsoft/2013/06/03/microsoft-acquires-inrelease-adding-continuous-deployment-to-visual-studio-team-foundation-server/
|title=Microsoft acquires InRelease, adding continuous deployment to Visual Studio, Team Foundation Server
|title=Microsoft acquires InRelease, adding continuous deployment to Visual Studio, Team Foundation Server
|accessdate=2013-11-15
|access-date=2013-11-15
}}</ref> InRelease was fully incorporated into Team Foundation Server 2013. This capability complemented the automated build and testing processes by allowing a true [[continuous delivery|continuous deployment]] solution. The tools were re-branded "Release Management" for TFS 2013. The Release Management capabilities give teams the ability to perform a controlled, workflow (provided by [[Windows Workflow Foundation]]) driven release to development, test and production environments and provides dashboards for monitoring the progress of one or more releases.
}}</ref> InRelease was fully incorporated into Team Foundation Server 2013. This capability complemented the automated build and testing processes by allowing a true [[continuous delivery|continuous deployment]] solution. The tools were re-branded "Release Management" for TFS 2013. The Release Management capabilities give teams the ability to perform a controlled, workflow (provided by [[Windows Workflow Foundation]]) driven release to development, test and production environments and provides dashboards for monitoring the progress of one or more releases.


Line 213: Line 216:


== History ==
== History ==
This first version of Team Foundation Server was released March 17, 2006.<ref>{{cite web |last=Taft |first=Darryl K. |date=2006-03-16 |url=https://www.eweek.com/development/microsoft-announces-release-of-team-foundation-server |title=Microsoft Announces Release of Team Foundation Server |department=Development |website=[[eWeek]] |publisher=[[Ziff Davis]] |accessdate=2019-10-13 |df=mdy}}</ref>
This first version of Team Foundation Server was released March 17, 2006.<ref>{{cite web |last=Taft |first=Darryl K. |date=2006-03-16 |url=https://www.eweek.com/development/microsoft-announces-release-of-team-foundation-server |title=Microsoft Announces Release of Team Foundation Server |department=Development |website=[[eWeek]] |publisher=[[Ziff Davis]] |access-date=2019-10-13 |df=mdy}}</ref>
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
Line 219: Line 222:
!Form
!Form
!Release year
!Release year
!Version Number <ref>{{Cite web|last=kexugit|title=What version of Team Foundation Server do I have?|url=https://docs.microsoft.com/en-us/archive/blogs/tfssetup/what-version-of-team-foundation-server-do-i-have|access-date=2020-08-26|website=docs.microsoft.com|language=en-us}}</ref>
!Version Number <ref>{{Cite web|last=kexugit|title=What version of Team Foundation Server do I have?|url=https://docs.microsoft.com/en-us/archive/blogs/tfssetup/what-version-of-team-foundation-server-do-i-have|access-date=2020-08-26|website=docs.microsoft.com|date=21 November 2013 |language=en-us}}</ref><ref>{{Cite web|last=|title=Azure DevOps Feature Timeline|url=https://docs.microsoft.com/en-us/azure/devops/release-notes/features-timeline#azure-devops-server-build-numbers|access-date=2021-02-15|website=docs.microsoft.com|language=en-us}}</ref>
|-
|-
|Team Foundation Server 2005
|Visual Studio 2005 Team System
|On-premises
|On-premises
|2006
|2006
|8
|8
|-
|-
|Visual Studio Team System 2008
|Team Foundation Server 2008
|On-premises
|On-premises
|2008
|2008
|9
|9
|-
|-
|Team Foundation Server 2010<ref>{{cite web |url=https://news.microsoft.com/2008/09/29/microsoft-unveils-next-version-of-visual-studio-and-net-framework/ |title=Microsoft Unveils Next Version of Visual Studio and .NET Framework |website=Company News |publisher=[[Microsoft]] |date=2008-09-29 |accessdate=2019-10-13 |df=mdy}}</ref>
|Team Foundation Server 2010<ref>{{cite web |url=https://news.microsoft.com/2008/09/29/microsoft-unveils-next-version-of-visual-studio-and-net-framework/ |title=Microsoft Unveils Next Version of Visual Studio and .NET Framework |website=Company News |publisher=[[Microsoft]] |date=2008-09-29 |access-date=2019-10-13 |df=mdy}}</ref>
|On-premises
|On-premises
|2010
|2010
Line 246: Line 249:
|11
|11
|-
|-
|Visual Studio Online<ref>{{cite web |first=Peter |last=Bright |date=2013-11-12 |url=https://arstechnica.com/information-technology/2013/11/microsoft-takes-development-into-the-cloud-with-visual-studio-online/ |title=Microsoft takes development into the cloud with Visual Studio Online |department=Information Technology |website=[[Ars Technica]] |publisher=[[Condé Nast]] |accessdate=2019-10-13 |df=mdy}}</ref>
|Visual Studio Online<ref>{{cite web |first=Peter |last=Bright |date=2013-11-12 |url=https://arstechnica.com/information-technology/2013/11/microsoft-takes-development-into-the-cloud-with-visual-studio-online/ |title=Microsoft takes development into the cloud with Visual Studio Online |department=Information Technology |website=[[Ars Technica]] |publisher=[[Condé Nast]] |access-date=2019-10-13 |df=mdy}}</ref>
|Cloud
|Cloud
|2013
|2013
Line 276: Line 279:
|16
|16
|-
|-
|Azure DevOps Services<ref>{{cite web |last=Cool |first=Jamie |date=2018-09-10 |url=https://azure.microsoft.com/en-us/blog/introducing-azure-devops/ |title=Introducing Azure DevOps |department=Blog |website=[[Microsoft Azure]] |publisher=[[Microsoft]] |accessdate=2019-10-13 |df=mdy}}</ref>
|Azure DevOps Services<ref>{{cite web |last=Cool |first=Jamie |date=2018-09-10 |url=https://azure.microsoft.com/en-us/blog/introducing-azure-devops/ |title=Introducing Azure DevOps |department=Blog |website=[[Microsoft Azure]] |publisher=[[Microsoft]] |access-date=2019-10-13 |df=mdy}}</ref>
|Cloud
|Cloud
|2018
|2018
|
|
|-
|-
|Azure DevOps Server 2019<ref>{{cite web |last=Cool |first=Jamie |date=2019-03-05 |url=https://azure.microsoft.com/en-us/blog/now-available-azure-devops-server-2019/ |title=Now available: Azure DevOps Server 2019 |department=Blog |website=[[Microsoft Azure]] |publisher=[[Microsoft]] |accessdate=2019-10-13 |df=mdy}}</ref>
|Azure DevOps Server 2019<ref>{{cite web |last=Mackie|first=Kurt |date=2019-03-05 |url=https://azure.microsoft.com/en-us/blog/now-available-azure-devops-server-2019/ |title=Now available: Azure DevOps Server 2019 |department=Blog |website=[[Microsoft Azure]] |publisher=[[Microsoft]] |access-date=2019-10-13 |df=mdy}}</ref>
|On-premises
|On-premises
|2019
|2019
|17
|-
|Azure DevOps Server 2020
|On-premises
|2020
|18
|-
|Azure DevOps Server 2022<ref>{{cite web |last=Morales|first=Gloridel |date=2022-12-06 |url=https://devblogs.microsoft.com/devops/now-available-azure-devops-server-2022-rtw/ |title=Now available: Azure DevOps Server 2022 RTW |department=Blog |website=Azure DevOps Blog |publisher=[[Microsoft]]}}</ref>
|On-premises
|2022
|
|
|}
|}
Line 294: Line 307:
* [[Rational Team Concert]]
* [[Rational Team Concert]]
* [[SVNBridge]], a Windows client or server side extension to TFS that allows access to TFS revision controlled items from [[Subversion (software)|Subversion]] client applications.
* [[SVNBridge]], a Windows client or server side extension to TFS that allows access to TFS revision controlled items from [[Subversion (software)|Subversion]] client applications.
* [[WinOps]]
* WinOps


==References==
==References==
Line 301: Line 314:
==External links==
==External links==
* {{Official website}}
* {{Official website}}
* [http://msdn2.microsoft.com/en-us/library/ms364061.aspx Team Foundation Server: At Work]
* [https://learn.microsoft.com/en-us/azure/devops/?view=azure-devops Azure DevOps documentation] on [[Microsoft Learn]]
* [http://msdn2.microsoft.com/en-us/library/aa302182.aspx Visual Studio 2005 Team System: Enterprise-Class Source Control]
* [http://msdn2.microsoft.com/en-us/library/ms364074.aspx Using Source Code Control in Team Foundation]
* [http://msdn2.microsoft.com/en-us/library/ms364062.aspx Team Foundation Server Fundamentals: A Look at the Capabilities and Architecture]
* [http://msdn.microsoft.com/en-us/tfs2008/bb980951.aspx Visual Studio Team System 2008 Web Access]
* [http://msdn.microsoft.com/en-us/library/fda2bad5.aspx Visual Studio Application Lifecycle Management]
* [https://www.visualstudio.com/team-services/ Visual Studio Team Services]
* [http://java.visualstudio.com/ Java Support in Team Foundation Server and Visual Studio Team Services]
* [https://www.visualstudio.com/en-us/news/releasenotes/tfs2017-relnotes Team Foundation Server 2017 Release Notes]


{{Version control software}}
{{Version control software}}
{{Microsoft Azure Services Platform}}
{{Microsoft}}
{{Microsoft}}


Line 331: Line 337:
[[Category:Load testing tools]]
[[Category:Load testing tools]]
[[Category:Java development tools]]
[[Category:Java development tools]]
[[Category:Task management software]]

Latest revision as of 11:49, 4 May 2024

Azure DevOps Server
Developer(s)Microsoft
Initial release2005; 19 years ago (2005)
Stable release
2022 / December 6, 2022; 18 months ago (2022-12-06)[1]
Operating systemMicrosoft Windows
TypeApplication lifecycle management
LicenseTrialware
Websiteazure.microsoft.com/en-us/services/devops/server/ Edit this on Wikidata

Azure DevOps Server, formerly known as Team Foundation Server (TFS) and Visual Studio Team System (VSTS), is a Microsoft product that provides version control (either with Team Foundation Version Control (TFVC) or Git), reporting, requirements management, project management (for both agile software development and waterfall teams), automated builds, testing and release management capabilities. It covers the entire application lifecycle and enables DevOps capabilities.[2] Azure DevOps can be used as a back-end to numerous integrated development environments (IDEs) but is tailored for Microsoft Visual Studio and Eclipse on all platforms.[3]

On-premises vs. online[edit]

Azure DevOps is available in two different forms: on-premises ("Server") and online ("Services").[4] The latter form is called Azure DevOps Services (formerly Visual Studio Online before it was renamed to Visual Studio Team Services in 2015). The cloud service is backed by the Microsoft Azure cloud platform. It uses the same code as the on-premises version of Azure DevOps, with minor modifications, and implements the most recent features. A user signs in using a Microsoft account to set up an environment, creating projects and adding team members. New features developed in short development cycles are added to the cloud version first. These features migrate to the on-premises version as updates, at approximately three-month intervals.[5]

Architecture[edit]

Server architecture[edit]

Azure DevOps is built on multi-tier, scalable architecture. The primary structure consists of an application tier responsible for processing logic and maintaining the web application portal (referred to as Team Web Access or TWA). Azure DevOps is built using Windows Communication Foundation web services. These may be consumed by any client, although the client object model is recommended. The data tier and application tier can exist on the same machine.

To support scalability, the application tier can be load balanced and the data tier can be clustered. If using Microsoft SQL Server 2012 or later, AlwaysOn SQL Server Failover Clusters and Availability Groups are supported which allows for geographic replication of data.[6] The primary container is the project collection. A project collection is a database that contains a group of Team Projects. The Project Collection is another scalability mechanism, in that each collection can be placed on different SQL Servers or SQL Server instances. 'Oe' configuration database per Azure DevOps instance stores project collection metadata. Data from the project collection databases is aggregated into the warehouse database, which denormalizes the data in preparation for loading into an Analysis Services cube. The warehouse and the cube allow complex trend reporting and data analysis.

Azure DevOps can integrate with an existing SharePoint farm. SQL Server Reporting Services are supported for more advanced reporting against the data warehouse or the Analysis Services data cube. These installations can be on the same system or on different systems. Build servers, lab management servers, release management servers and proxy servers (to reduce some of the load on the application tier), test machines and load test machines can also be added to the infrastructure.[7] To support teams requiring enterprise project scheduling, Azure DevOps also integrates with Microsoft Project Server, which allows enterprise level portfolio management, resource management and project tracking.

Extensibility[edit]

Microsoft provides two standalone redistributed APIs for connecting to Azure DevOps. One is a Java SDK, the other is a .NET Framework SDK. These APIs allow for client connectivity to Azure DevOps. Because Azure DevOps is written on a service-oriented architecture, it can communicate with virtually any tool that can call a web service. Another extensible mechanism is subscribing to system alerts: for example, alerts that a work item was changed, or a build completed. There are approximately 20 preconfigured alerts, and teams can configure as many additional alerts as needed.[8] When used in an extensible scenario, these alerts can be sent to a web service, triggering actions to alter or update work items (such as implementing advanced business rules or generating work items programmatically based on a given scenario).

The data warehouse can also be extended through the creation of custom data warehouse adapters.[9] With the introduction of TFS 2012, custom add-ins can also be created for Team Web Access, called Web Access Extensions.

Clients[edit]

Azure DevOps supports Visual Studio 2010 and later, Microsoft Test Manager (MTM) 2012, and 2013. Eclipse, older versions of Visual Studio, and other environments can be plugged into Azure DevOps using the Microsoft Source Code Control Integration Provider (MSSCCI Provider – pronounced “Miss-Key”).[10] These tools provide full access to the features in Azure DevOps.

Microsoft Excel and Microsoft Project are also supported to help manage work items which allows for bulk update, bulk entry and bulk export of work items. Microsoft Project can be used to schedule work when conforming to a waterfall software development methodology. Both Excel and Project support bi-directional updates of data. This allows, for example, project managers to put a schedule in Project, have that work imported into Azure DevOps where developers update the work and then the schedule can be updated without the project manager having to perform extra work.

With Team Foundation Server 2012, Microsoft PowerPoint was also integrated with Azure DevOps to enable rapid storyboard development to help with the requirements management process. The integration provides extensible storyboard shapes that can be used to build any type of interface mockup that can then be animated with PowerPoint's built-in functions. These storyboards can then be linked to work items.

In an effort to handle the growing geographic dispersion of teams and to involve stakeholders earlier and more often in the process, Microsoft added the Feedback Client.[11] This tool allows users to exercise an application, annotate what they are seeing with audio and video, capture screens and provide contextual feedback to the development team. This provides specific feedback on the functions of an application from a users’ perspective without requiring meetings and demonstration sessions. Azure DevOps also provides for command line tools for both Unix and Windows environments. The Power Tools for TFS include a Windows shell integration that allows users to check files in and out, add files and perform other basic tasks by right-clicking on a file or folder.

Work items[edit]

At the heart of Azure DevOps is the "work item". A work item represents a thing – it can be work that needs to be accomplished, a risk to track, a test case, a bug or virtually anything else a user can imagine. Work items are defined through the XML documents and are highly extensible.[12] Work items are combined into a Process Template that contains these and other pieces of information to provide a development framework. Azure DevOps includes Process Templates for the Microsoft Solutions Framework for Agile, Scrum and CMMI. Teams can choose to use a built-in template or one of the many templates available for use created by third parties. Process templates can be customized using the Process Template Editor, which is part of the Power Tools.[13]

Work items can be linked to each other using different relationships to create a hierarchical tree of work items or a flat relationship between work items. Work items can also be linked to external artifacts such as web pages, documents on a file share or documents stored in another repository such as SharePoint. Work items can also be linked to source code, build results, test results and specific versions of items in source control.

The flexibility in the work item system allows Azure DevOps to play many roles from requirements management to bug tracking, risk and issue tracking, as well as recording the results of reviews. The extensible linking capabilities ensure that traceability from requirements to source code to test cases and results can be accomplished and reported on for auditing purposes as well as historical understanding of changes.

Source control[edit]

Azure DevOps supports two different types of source control – its original source control engine called Team Foundation Version Control (TFVC) and with the release of TFS 2013, it supports Git as a core source control repository.

Team Foundation Version Control[edit]

TFVC is a centralized version control system allowing teams to store any type of artifact within its repository.[14] TFVC supports two different types of workspaces when working with client tools – Server Workspaces and Local Workspaces.[15] Server workspaces allow developers to lock files for check-out and provide notification to other developers that files are being edited. A frequent complaint for this model is that files on the development machine are marked as read-only. It also requires developers to "go offline" when the server can't be contacted. Local workspaces were designed to avoid these problems. In a local workspace scenario files are not read-only and they do not have to be checked out before working on them. As long as the files are on the developer's local machine, it doesn't matter if the server is connected or not. Conflicts are dealt with at check-in time.

To improve performance for remote clients, Azure DevOps includes the ability to install Proxy Servers.[16] Proxy servers allow source control contents to be cached at a site closer to the developers to avoid long network trips and the associated latency. Check-ins are still performed directly against the Azure DevOps application tier so the Proxy Server is most beneficial in read scenarios.

As part of the source control engine, Azure DevOps supports a number of features to help developers ensure the code that is checked in follows configurable rules. This rule engine is called a Check-in Policy. There are several out of the box policies such as the Changeset Comments Policy which will not allow a check-in unless the developer enters a check-in comment. These policies are extensible and can be used to examine all aspects of the code being checked in, the comments and the related work items. Azure DevOps also supports a Code Analysis feature that when used independently is known as FxCop. The inclusion in Azure DevOps means that the analysis can run against code checked into the server and during automated builds.

The Azure Repos extension for Visual Studio Code supports TFVC.[17]

Git[edit]

With the release of TFS 2013, Microsoft added native support for Git. This is not a Microsoft specific implementation but a standard implementation based on the libgit2[18] library. This is the same library that powers the popular GitHub and the code is freely available from GitHub. Because Microsoft took the approach of using a standard library, any Git client can now be used natively with Azure DevOps (in other words, developers can use their favorite tools and never install the standard Azure DevOps clients). This allows tools on any platform and any IDE that support Git to connect to Azure DevOps. For example, both Xcode and Android Studio support Git plug-ins. In addition, if developers do not want to use Microsoft's Team Explorer Everywhere plug-in for Eclipse, they can choose to use eGit[19] to connect to Azure DevOps.

Using Git does not preclude the benefit of using Azure DevOps work item or build system. When checking code in with Git, referencing the work item ID in the check-in comment will associate the check-in with the given work item. Likewise, Team Build will also build Git projects.

One of the major reasons to use Azure DevOps as a Git repository is that it is backed by SQL Server and is afforded the same protection as Team Foundation Version Control (TFVC). This gives developers some choices when choosing the type of project and work style that works best for them.

Reporting[edit]

Reporting has been a core component of Azure DevOps since its initial release in 2005. The reporting infrastructure consists of a data warehouse[20] (Tfs_Warehouse) which is a relational database and a SQL Server Analysis Services data cube.[21] Both of these sources are available for reporting through SQL Server Reporting Services when this option is installed. Since these are standard database and cube structures, any tool which can point to these data sources can report from them. This includes tools such as Cognos, Tableau, Excel and other reporting tools. Included with each out of the box process template is a set of reports for reporting services which cover Build information, Test results and progress, project management, agile reports (Backlog Overview, Release Burndown, Sprint Burndown and Velocity), bug and issue data. New reports can be created using Report Builder for SSRS and any of the existing reports can be modified.

More specialized reporting is available for load test results. This data is available directly within Visual Studio and can be exported to Excel for detailed analysis.

TFS 2013 introduced a new feature called "light-weight reporting" which provides for the ability to create real-time reports based on query results and which do not rely on the warehouse or cube. TFS 2012 (and continuing into 2013) offers real-time burndown, velocity and CFD diagrams directly within Team Web Access.

Team Build[edit]

Team Build (prior to TFS 2015) is a build server application included with Team Foundation Server. Two components make up Team Build – MSBuild and Windows Workflow Foundation. MSBuild is a declarative XML language similar to Apache Ant. WF was added to the build process starting with TFS 2010; prior to that only MSBuild was available. The build capabilities have continued to evolve with each subsequent release of Azure DevOps. In TFS 2010 and 2012, the WF templates (Extensible Application Markup Language) files were stored in source control and could be edited and versioned directly from source control. In TFS 2013, these files were removed to eliminate clutter and streamline the build process. The WF templates can still be downloaded, edited and stored in source control if desired and TFS 2013 does not break existing TFS 2010 or 2012 build process templates. With the support of Git in TFS 2013, Team Build has been enhanced to allow automated building of Git projects as well as TFVC projects.

Windows Workflow controls the overall flow of the build process and Azure DevOps includes many pre-built workflow activities for managing common tasks that are performed during a build.[22] MSBuild is the markup language that is found in the .proj (csproj for C# projects and vbproj for Visual Basic projects) files. The build system is extensible with users being able to create their own workflow activities, the ability to inject MSBuild into the process and to execute external processes. The workflow nature of the build allows for unlimited flexibility, but it may take some work to achieve that flexibility. Shared[23] and open source projects have been started to build community backed activities to enhance the capabilities of Team Build.

The build process can be configured for various types of builds including scheduled builds, continuous integration, gated check-in and rolling builds. A gated check-in build will shelve code that a developer checks in, perform a "get latest" on the server code and perform a build. If the build succeeds, the code is checked in on behalf of the developer who submitted the code. If the build fails, the developer is notified and can fix the code before trying another check-in.

Builds have retention policies with them so that they do not accumulate when not needed (or builds can be directed not to produce any saved output) or build output can be locked and saved forever. New with TFS 2013 is the ability to check in the build results into source control. This was a necessary enhancement to support automated builds on the Azure DevOps Services where there is no drop location to place the builds. In the on-premises version build output can be configured to end up in any accessible shared folder location.

The build process in Azure DevOps is also part of the traceability mechanism in that Team Build brings together many of the artifacts that are created and stored in Azure DevOps. Assuming developers associate source code with work items on check-in, Team Build has the ability to report on the changes in each build – both source code changes and work item changes as well as test results (this includes unit testing results as well as automated functional testing (CodedUI) results). As bugs and PBIs are resolved and integrated into builds, the work items which track these artifacts are automatically updated to indicate in which build they were successfully integrated. Combined with the testing tools, testers then get an integrated view of what code was changed in each build, but also which bugs, PBIs and other work changed from build to build.

Initially, in TFS 2015 and with Visual Studio Team Services (VSTS), Microsoft has reinvented the architecture for the build engine to be based on a cross-platform friendly Node.js application. Windows, Mac, and Linux build agents are currently supported. Azure DevOps provides for elastic build capabilities via build hosting in Microsoft Azure.[24]

Release management[edit]

In mid-2013 Microsoft purchased a product called InRelease from InCycle Software.[25] InRelease was fully incorporated into Team Foundation Server 2013. This capability complemented the automated build and testing processes by allowing a true continuous deployment solution. The tools were re-branded "Release Management" for TFS 2013. The Release Management capabilities give teams the ability to perform a controlled, workflow (provided by Windows Workflow Foundation) driven release to development, test and production environments and provides dashboards for monitoring the progress of one or more releases.

Microsoft has rebuilt Release Management for Visual Studio Team Services and on-premises version of TFS with the new changes in 2015 Update 2. The new version of Release Management leverages the web browser as the client and relies on the same agent architecture as Team Foundation Build. Release Management enables DevOps capabilities for Azure DevOps.

History[edit]

This first version of Team Foundation Server was released March 17, 2006.[26]

Product name Form Release year Version Number [27][28]
Team Foundation Server 2005 On-premises 2006 8
Team Foundation Server 2008 On-premises 2008 9
Team Foundation Server 2010[29] On-premises 2010 10
Team Foundation Service Preview Cloud 2012
Team Foundation Server 2012 On-premises 2012 11
Visual Studio Online[30] Cloud 2013
Team Foundation Server 2013 On-premises 2013 12
Team Foundation Server 2015 On-premises 2015 14
Visual Studio Team Services Cloud 2015
Team Foundation Server 2017 On-premises 2017 15
Team Foundation Server 2018 On-premises 2017 16
Azure DevOps Services[31] Cloud 2018
Azure DevOps Server 2019[32] On-premises 2019 17
Azure DevOps Server 2020 On-premises 2020 18
Azure DevOps Server 2022[33] On-premises 2022

See also[edit]

References[edit]

  1. ^ "Azure DevOps Server 2022". Microsoft Docs. 14 November 2023.
  2. ^ "Application Lifecycle Management with Visual Studio and Team Foundation Server". MSDN. Microsoft. 2013. Retrieved 2013-10-15.
  3. ^ "Adopting Team Explorer Everywhere". MSDN. Microsoft. 28 April 2015. Retrieved 26 May 2017.
  4. ^ "What Is Azure DevOps? Services, Examples, and Best Practices". codefresh.io.
  5. ^ "New Release 'Cadence' Begins with Visual Studio 2012 Update 2". 1105 Media. 2013. Retrieved 2013-10-15.
  6. ^ "Availability Enhancements (Database Engine)". Microsoft. 2012. Retrieved 2013-10-17.
  7. ^ "Team Foundation Server Architecture". Microsoft. 2012. Retrieved 2013-10-17.
  8. ^ "Set alerts, get notified when changes occur". Microsoft. 2013. Retrieved 2013-10-17.
  9. ^ "How to create an adapter". Microsoft. 2008. Retrieved 2013-10-17.
  10. ^ "Microsoft Visual Studio Team Foundation Server 2012 MSSCCI Provider". Microsoft. 2012. Retrieved 2013-10-17.
  11. ^ "Request and review feedback". Microsoft. 2012. Retrieved 2013-10-17.
  12. ^ "How to customize TFS 2010 work items and workflows". Ted Gustaf. 2010. Archived from the original on 2013-10-19. Retrieved 2013-10-17.
  13. ^ "Microsoft Visual Studio Team Foundation Server 2013 Power Tools". Microsoft. 2013. Retrieved 2013-10-17.
  14. ^ "Team Foundation Version Control (TFVC)". Azure DevOps. Microsoft Docs. Retrieved 2019-09-23.
  15. ^ "Server workspaces vs. local workspaces". Phil Kelley. 2013. Retrieved 2013-10-17.
  16. ^ "How to: Install Team Foundation Proxy and set up a remote site". Microsoft. 2013. Retrieved 2013-10-17.
  17. ^ "Team Foundation Version Control (TFVC) Support". Azure Repos Extension for Visual Studio Code. GitHub. Retrieved 2019-09-23.
  18. ^ "GitHub libgit2/libgit2". GitHub. 2013. Retrieved 2013-10-31.
  19. ^ "EGit". Eclipse. 2013. Retrieved 2013-10-31.
  20. ^ "Components of the TFS data warehouse". Microsoft. 2013. Retrieved 2013-10-17.
  21. ^ "Perspectives and measure groups provided in the Analysis Services cube for Team System". Microsoft. 2013. Retrieved 2013-10-17.
  22. ^ "Team Foundation Build Activities". Microsoft. 2013. Retrieved 2013-10-17.
  23. ^ "Community TFS Build Extensions". Codeplex. 2013. Archived from the original on 2013-10-11. Retrieved 2013-10-17.
  24. ^ "Microsoft Azure - Portal". Microsoft. 2016. Retrieved 2016-05-17.
  25. ^ "Microsoft acquires InRelease, adding continuous deployment to Visual Studio, Team Foundation Server". The Next Web. 2013. Retrieved 2013-11-15.
  26. ^ Taft, Darryl K. (March 16, 2006). "Microsoft Announces Release of Team Foundation Server". Development. eWeek. Ziff Davis. Retrieved 2019-10-13.
  27. ^ kexugit (21 November 2013). "What version of Team Foundation Server do I have?". docs.microsoft.com. Retrieved 2020-08-26.
  28. ^ "Azure DevOps Feature Timeline". docs.microsoft.com. Retrieved 2021-02-15.
  29. ^ "Microsoft Unveils Next Version of Visual Studio and .NET Framework". Company News. Microsoft. September 29, 2008. Retrieved 2019-10-13.
  30. ^ Bright, Peter (November 12, 2013). "Microsoft takes development into the cloud with Visual Studio Online". Information Technology. Ars Technica. Condé Nast. Retrieved 2019-10-13.
  31. ^ Cool, Jamie (September 10, 2018). "Introducing Azure DevOps". Blog. Microsoft Azure. Microsoft. Retrieved 2019-10-13.
  32. ^ Mackie, Kurt (March 5, 2019). "Now available: Azure DevOps Server 2019". Blog. Microsoft Azure. Microsoft. Retrieved 2019-10-13.
  33. ^ Morales, Gloridel (2022-12-06). "Now available: Azure DevOps Server 2022 RTW". Blog. Azure DevOps Blog. Microsoft.

External links[edit]