Microsoft Dynamics AX 2012 underwent a name change in what would have been version 7. The official name is now Microsoft Dynamics 365 for Operations. It isn't just that the version number has been dropped, but it appears to have been adopted into the Microsoft Dynamics 365 product suite. The product is not a component of Microsoft Dynamics 365, which is just a way to group Microsoft's various business solutions. We can't, therefore, shorten the name to Dynamics 365, we will refer the product by either its full name or the abbreviation Operations.
New features will be introduced to Operations as both a continual and cumulative process. There are two main types of update, Platform and Application. Platform updates are similar to the binary updates in prior releases, but also contain AOT elements that are now locked and can no longer be changed. Platform updates can contain changes to the language, and new features have been brought in with each bi-yearly release. When running in the Cloud, Microsoft will periodically release updates to the Platform for you. This is needed, since the it uses Azure SQL Server and they may need to service the platform in order to maintain compatibility to the database server.
Application updates are changes to the other packages that make up the source code of Operations, and can be considered similar to the meta data updates in previous releases of Operations.
This book was started on the May 2016, or Update 1 release and has been updated with each release. The version on publication is Update 5, released in March 2017.
All development work is carried out in conjunction with Visual Studio Team Services or VSTS. It used to be optional, but the implementation process that is managed through Lifecycle Services (LCS) requires that we have a VSTS project linked to it to function to its fullest. This is not just for source control and work management, but it is also used when performing code upgrades.
Please see the following links for further reading on Microsoft Dynamics 365 for Operations:
- For more information on LCS, please see the link,Â https://lcs.dynamics.com/Logon/Index
- An overview of Microsoft Dynamics 365 for Operations for Developers and IT Pros is available at https://docs.microsoft.com/en-us/dynamics365/operations/dev-itpro/
- To obtain an evaluation copy of Microsoft Dynamics 365 for Operations, please see the link, https://docs.microsoft.com/en-us/dynamics365/operations/dev-itpro/dev-tools/get-evaluation-copy
All development work in Operations is either performed on a development virtual machine hosted in Azure, or a local virtual machine. Each developer will use their own virtual machine. Azure hosted virtual machines are deployed through LCS under your own Azure subscription, and can be used to development, learning, and demonstration. Once, as a customer, a cloud hosted subscription has been bought, you are provided 3 environments as part of that subscription under Microsoft's subscription. These are Build, Sandbox, and Production. The build sever is a OneBox server (all in one virtual machine) that is also labelled Development, but it should always be used as a build server and not for development. The sandbox server is a full environment, with multiple servers using a separate Azure SQL Server. The production environment is the environment that you (as a customer) will go live with. All code must first be deployed to the sandbox before it is applied to live, which this is enforced by LCS - no more 'quick fixes' directly into live, and no access to SQL server for the production environment.
The on premise version of Operations may allow us to bypass some of these rules, but we shouldn't try - these practices of forcing code through a full testing cycle are very important. Waiting a couple of days for a needed feature may be inconvenient, but regression is perceived very negatively by users. During the implementation we ask a lot of the users, they are already busy with their jobs and are being asked to also help with testing new software, so user buy-in to the project is a critical factor, and regression is the most efficient way of eroding the initial excitement of delivering new software.
For local development virtual machines that are often the cheapest option, we will download the virtual machine from Microsoft Connect. This is a website used for many programs at Microsoft, and access is provided to partners and customers.
The terms Visual Studio Team Services and Team Foundation Server (TFS) are often used interchangeably. In Visual Studio, the user interface states that we are connecting to a Team Foundation Server. However, we are actually connecting to VSTS, which is an online service. VSTS is required for Operations development, and that is what we will use.
The project is normally created under the end-user's VSTS site, unless the work is being written as an ISV solution (or a personal development or learning project). The reason for using the client's VSTS system is that LCS is associated with the VSTS site, and support calls created through Cloud-powered support are generated within the associated VSTS. Cloud powered support is an online support solution within LCS that is exposed to the Operations client, allowing users to log support issues with their internal support team.
For up to five users, VSTS is free, and the customer can create many accounts with limited access without charge. These accounts as called stakeholder accounts, and allows the user access to work items, which also allows the users the ability to log support calls from within Operations. For those with an MSDN subscription, the five user limit is not counted.
This process is normally performed as part of the LCS project creation. If this were an implementation project type, the project is created when the customer signs up for Operations. The customer would then invite their Cloud solution provider (Partner) to the project. If this were an internal development project, such as a new vertical solution by an ISV, a
create solutions, and
learn Dynamics 365 for Operations project type would be used.
In either case, we will have an LCS project, which will usually have an Azure VM deployed that acts as a build server.
For simplicity, and to keep the focus on software development, a project of type
create solutions, and
learn Dynamics 365 for Operations was created for the purpose of the example of the book.
Before we get started, we will need an LCS project and a VSTS site. The VSTS site can be created through the following link:
Once we have the site created, we can then create our project.
To create the project, follow these steps:
- Navigate to your VSTS site, for example,
Recent projects & teams, click on
- Complete the form as shown as follows:
Unique name, careful to name the projects for easy recognition, and how they are ordered. This is more important for ISVs who may have many projects.
Short description of the project
Team Foundation Version Control
- Once complete, you can then navigate to your project and work with VSTS in order to plan your project.
- To authenticate with LCS, we will need to generate a personal access token; to set this up, click on the control panel (cog) icon, as shown in the following screenshot:
- This takes you to the control panel, again, on the top-right click on your name and choose
Security, as shown in the following screenshot:
- The personal access tokens option is selected by default; on the right-hand pane, click on
Create a personal access token form, enter a short description, for example, the LCS project name. Set the
Expires infield based on how long you would like it to last for.
- Leaving the
Authorized scopesfields as default; press
- Finally, copy the resultant access code into a safe place; we will need it when we link VSTS to LCS. If we don't, we will have to create a new access token as you can't see it after the web page is closed.
Next, we will need to link the project to our LCS project. If an LCS project is not currently linked to a VSTS project, we get the following message on the left hand side, as shown in the following screenshot:
To configure VSTS for the LCS project, follow these steps:
- To authenticate with LCS, we will need to generate a personal access token, so from within VSTS.
- Click on the
Setup Visual Studio Team Servicesbutton in the
Action centerdialog box.
- On the
Enter the Visual Studio Team Servicesite page, enter the URL of our VSTS site into the
Visual Studio Team Services site URLfield; for example,
- Enter the personal access token generated earlier into the
Personal access tokenfield.
- On the
Select the Visual Studio Team Service projectpage, select the project from the
Visual Studio Team Servicelist.
- You are then shown the
Workitem type mappinglist. This allows you to select how to
LCS Workitem Type/
LCS Workitem Sub Typeelements to
VSTS Workitem Typeelements. Leave this as the default and press
- On the final
Review and savepage, press
- This takes us back to the main project page and the action center will ask you to authorize the project; click on
- You will be warned about being redirected to an external site; click on
- You may be asked to log on; if so, do it with the account you use for VSTS, which might be your
- This will open the Authorize application page from within VSTS, and you will be told that you are allowing
Microsoft Dynamics Lifecycle Servicesto access the VSTS and the specific permissions it will receive. Press
Operations uses VSTS for its source control, work, and build management. The only steps here that we technically must perform are step 1 through step 5, but without performing the previous steps, we lose the ability to integrate LCS. If our project was for a customer implementation, we should consider it mandatory to integrate VSTS with LCS.
For more information on VSTS and LCS, please check out the following links:
- AX Dev ALM usage guide and resources (https://blogs.msdn.microsoft.com/axdevalm/)
- LCS for Microsoft Dynamics 365 for Operations customers (https://ax.help.dynamics.com/en/wiki/how-lifecycle-services-for-microsoft-dynamics-ax-works-lcs/)
- Developer topology deployment with continuous build and test automation (https://ax.help.dynamics.com/en/wiki/developer-topology-deployment-with-continuous-build-and-test-automation/)
The next link is useful background knowledge, but a lot of this is one for you when using an implementation LCS project:
- Set up technical support for Microsoft Dynamics 365 for Operations (https://ax.help.dynamics.com/en/wiki/ax-support-experience/)
This link is for when we have a customer implementation project and demonstrate some of the synergy of leveraging VSTS and LCS with Operations.