Source control has become more prevalent with AX development in the last 5 years. Initially, there was no specific source control with the development environment, but we survived. This was done through heavy use of comments and adding a dummy method for the development history to each modified object.
We have had version control for a few versions now, and in AX 2012, it has been improved further. The source control options we have are as follows:
What Microsoft recommends here is either MorphX VCS or TFS. We prefer to avoid shared development and use TFS internally, which is integrated with our project management methodology.
Microsoft provides a good reference for this in MSDN at http://msdn.microsoft.com/en-us/library/aa639568.aspx. The following table, taken from the preceding article, shows the key differences:
MorphX VCS |
TFS | |
---|---|---|
Concurrent development |
No |
Yes |
Isolated development |
No |
Yes |
Change description |
Yes |
Yes |
Change history |
Yes |
Yes |
Quality bar enforcement |
Yes |
Yes |
Branching |
No |
Yes |
Work item integration |
No |
Yes |
Labelling support |
No |
No |
The isolated development feature means that each developer has an isolated AX environment. The developer's machine (usually a virtual server) would need to be reasonably powerful in order to run the environment at a suitable speed.
It also has a more involved process; that is, the developer has to check in their work (which is file-based), and then a build has to be created.
The main advantage of TFS over MorphX VCS is the integration with work items, which can be used alongside your sure-step agile methodology. We also have an advantage in that the source is also held in a separate repository.
The MorphX VCS provides features similar to TFS (except branching), but it allows the development server to be shared by multiple developers. Objects are still checked out (and therefore locked) and checked in with comments. It also allows the use of the built-in code compare tool to review the changes between different versions.
This is a simple, yet clever, version control solution, but it also has one drawback. The version control information is stored in a set of tables in the business database. This means you lose the version control data if you rebuild the business database from the live business database.
18.191.235.8