Introduction to Azure DevOps Services

Completed

Every project created within Azure DevOps comes with a number of services. You can use all the services or choose just those that fit within your workflow. These services include planning, version control, testing, and build & deploy tools.

Azure Boards

Azure Boards is one of the most used Azure DevOps Services. You can use Azure Boards to plan, track, and discuss work across your teams. The look and feel all depends on which work item process you selected during the creation of the project.

Screenshot of a Azure DevOps board example.

Azure Boards provides Kanban boards and backlogs to support your agile development process. It is an easy drag-and-drop sprint planning tool. All the different tasks can be grouped together in a backlog overview and prioritized by the product owner.

Azure Repos

Azure Repos is the service that is used for version control. You have the possibility to use Git or Team Foundation Version Control. If you opt for Git, you can host unlimited repositories. Each AL extension that you develop can be a separate Git repository. You can create a project for a particular customer and have multiple Git repositories within one project to host all the different extensions you developed for this customer.

In the Azure Repos section, you get an overview of all the files hosted, the commits, branches, and pull requests.

Screenshot of the Azure Repos section with overview.

With a pull request, you can require code validation from other developers in your team before your code is being accepted. This can be a trigger to start an automated build.

Screenshot of the Azure Repos pull requests.

Azure Repos also supports web hooks and REST APIs. So, you can automate validations or react on events in the repository.

Azure Pipelines

Azure Pipelines is the service that you need to set up automated test, automated builds, and automated deployments. Pipelines will run with build agents. These agents can be hosted as a cloud service, so you don't need to invest in infrastructure, or you can run them on your infrastructure. Certainly, if you need to access local resources or target an on-premise Business Central server, then local build agents are the better choice. With local build agents, there is also no time restriction on how long an agent can run.

A build agent is a small executable that can be installed one or more servers (or even desktops). You can group them in an agent pool. So, whenever you start a build, it will search for the next available build agent in the select pool. In that way you can run multiple builds at the same time across different machines.

Screenshot of the Azure Pipelines Build page.

Azure Pipelines has support for different programming languages and can build with Docker containers. For Business Central, you will need to use many PowerShell scripts to set up up an automated build process. This will include getting the source code from a Git repository, using the AL compiler and create an app file. Azure Pipelines is also the service that will be used to set up automated testing. Unit and integration tests are part of your AL Extension (or have a dependency). They are built and executed in a build pipeline. If a test fails, the build will fail as well.

Even if you are using GitHub as your version control system, you can integrate with Azure Pipelines to set up an automated build system. A build definition can be created with YAML files. A YAML file is a text file that defines all the different steps in a build process.

Screenshot example of YAML build file.

Azure Test Plans

With Azure Test Plans, you get tools to configure a manual testing solution. You can define a step-by-step testing process, that will guide testers from the testing team to check every single step of your application's workflow. You can use this to test desktop and web applications.

Each step will be recorded so that when an error occurs, a bug work item can be created with all steps listed the tester executed to get that error. This service is an extra paid service or is part of a Visual Studio Enterprise subscription.

Screenshot of the Azure test plans.

Azure Artifacts

With Azure Artifacts, you have a fully integrated package management. This can be easily integrated with your Azure Pipelines. For .NET applications in Visual Studio, you have the possibility to download existing packages to for example, do image processing, connect to social media platforms, generate barcodes, and so on. You could write all of those functions yourself, but you can also integrate existing packages. Most of the time they are written by the official vendor of those services. These packages are stored in package management services like NuGet.

Screenshot of the Azure Artifacts Packages page.

With Azure Artifacts, you can set up your own package management service and host your own code that can be reused in other projects in your organization. You could create a Business Central extension that will validate license information for all your add-on extensions. Instead of rewriting that code, you could get the package from Azure Artifacts during your build pipelines.