Logo
PREGNANCY
Windows XP
Windows Vista
Windows 7
Windows Azure
Windows Server
Windows Phone
 
 
Windows Server

Microsoft Dynamics AX 2009 : The MorphX Tools - Version Control (part 1)

9/11/2011 11:13:07 AM
The Version Control tool is a feature in MorphX that makes it possible to use a version control system, such as Microsoft Visual SourceSafe or Microsoft Visual Studio Team Foundation Server, to keep track of changes to elements in the AOT. The tool is accessible from several places: from the Microsoft Dynamics AX drop-down menu at Tools\Development Tools\ Version Control, from toolbars in the AOT and X++ code editor, and from the context menu on elements in the AOT.

Using a version control system offers several benefits:

  • Revision history of all elements All changes are captured along with a description of the change, making it possible to consult change history and retrieve old versions of an element.

  • Code quality enforcement The implementation of version control in Dynamics AX enables a fully configurable quality bar for all check-ins. With the quality bar, all changes are verified according to coding practices. If the change doesn’t meet the criteria, it is rejected. Microsoft uses the quality bar for all check-ins, which has helped raise the quality of X++ code to an unprecedented level. Microsoft developers cannot check in code with compiler errors, compile warnings, or best practice errors. In the final stages of development, tasks in code (to-dos) are also prohibited.

  • Isolated development Each developer can have a local installation and make all modifications locally. When modifications are ready, they can be checked in and made available to consumers of the build. So a developer can rewrite fundamental areas of the system without causing any instability issues for others. Developers are also unaffected by any downtime of a centralized development server.

Even though using a version control system when developing is optional, we strongly recommend you consider one for any development project. Dynamics AX 2009 supports three version control systems: Visual SourceSafe 6.0 and Team Foundation Server, which are designed for large development projects, and MorphX VCS. MorphX VCS is designed for smaller development projects that previously couldn’t justify the additional overhead that using a version control system server adds to the entire process. Table 1 shows a side-by-side comparison of the version control system options.

Table 1. Overview of Version Control Systems
 Classic MorphX (No Version Control)MorphX VCSVisual SourceSafeTeam Foundation Server
Application Object Servers required111 per developer1 per developer
Database servers required111 per developer1 per developer
Team server requiredNoOptionalYesYes
Build process requiredNoNoYesYes
Master fileAODAODXPOsXPOs
Isolated developmentNoNoYesYes
Multiple check-outN/ANoConfigurableConfigurable
Change descriptionNoYesYesYes
Change historyNoYesYesYes
Change list support (atomic check-in of a set of files)N/ANoNoYes
Code quality enforcementNoConfigurableConfigurableConfigurable

The elements persisted in the version control server are file representations of the elements in the AOT. The file format used is the standard Dynamics AX export format (.xpo). Each .xpo file contains only one element.

There are no additional infrastructure requirements when you use MorphX VCS, which makes it a perfect fit for partners running many parallel projects. In such setups, each developer often works simultaneously on several projects, toggling between projects and returning to past projects. In these situations, the benefits of having change history are enormous. With just a few clicks, you can enable MorphX VCS to persist the changes in the business database. Although MorphX VCS provides many of the same capabilities as a version control server, it does have some limitations. For example, MorphX VCS does not provide any tools for maintenance, such as backup, archiving, or labeling.

In contrast, Visual SourceSafe and Team Foundation Server are designed for large projects in which many developers work together on the same project for an extended period of time (e.g., an independent software vendor building a vertical solution).

Figure 1 shows a typical deployment using Visual SourceSafe or Team Foundation Server, in which each developer locally hosts the AOS and the database. Each developer also needs a copy of all .xpo files. When a developer communicates with the version control server, the .xpo files are transmitted. A unique ID is required when the developer creates a new element or label. A Team Server, available as a Microsoft .NET Web service, is required to ensure uniqueness of IDs across all the local developers’ environments. The Team Server is a component available with Dynamics AX.

Figure 1. Typical deployment using version control


Element Life Cycle

Figure 2 shows the element life cycle in a version control system. When the element is in a state marked with green, it can be edited; otherwise it is read-only.

Figure 2. Element life cycle


You can create a new element in two ways:

  • Create a completely new element.

  • Customize an existing element, resulting in an overlayered version of the element. Because elements are stored per layer in the version control system, customizing an element effectively creates a new element.

After you create an element, you must add it to the version control system. First give it a proper name in accordance with naming conventions, and then click Add To Version Control on the context menu. After you create the element, you must check it in.

An element that is checked in can be renamed. Renaming an element deletes the element with the old name and adds an element with the new name.

Check-Out

To modify an element, you must check it out. Checking out an element locks it so that others can’t modify it while you’re working.

By clicking Tools\Development Tools\Version Control\Pending Objects from the Microsoft Dynamics AX drop-down menu, you can see which elements you currently have checked out. The elements you’ve checked out (or that you’ve created and not yet checked in), appear in blue, rather than black, in the AOT.

Undo Check-Out

If you decide that you don’t want to modify an element that you checked out, you can undo the check-out. This releases your lock on the element and imports the server version of the element to undo your changes.

Check-In

When you have finalized your modifications, you must check in the elements for them to be part of the next build. When you click Check-In on the context menu, the dialog box shown in Figure 3 appears, displaying all the elements that you currently have checked out. The Check In dialog box shows all open elements by default; you can remove any elements not required in the check-in from the list by pressing Alt+F9.

Figure 3. Check In dialog box


We recommend the following procedure for checking in your work:

1.
Perform synchronization to update all elements in your environment to the latest version.

2.
Verify that everything is still working as intended. Compilation is not enough!

3.
Check in the elements.

Quality Checks

Before the version control system accepts a check-in, it might subject the elements to quality checks. You define what is accepted in a check-in when you set up the version control system. The following checks are supported:

  • Compiler errors

  • Compiler warnings

  • Compiler tasks

  • Best practice errors

When a check is enabled, it is carried out when you do a check-in. If the check fails, the check-in stops. You must address the issue and restart the check-in.

Other -----------------
- Managing Exchange Server 2010 Clients : Configuring Mail Support for Outlook and Windows Live Mail (part 2)
- Managing Exchange Server 2010 Clients : Configuring Mail Support for Outlook and Windows Live Mail (part 1)
- SQL Server 2008 R2 : Row Estimation and Index Selection (part 4) - Optimizing with Indexed Views & Optimizing with Filtered Indexes
- SQL Server 2008 R2 : Row Estimation and Index Selection (part 3) - Using Multiple Indexes
- SQL Server 2008 R2 : Row Estimation and Index Selection (part 2) - Estimating Access Path Cost
- SQL Server 2008 R2 : Row Estimation and Index Selection (part 1) - Evaluating SARG and Join Selectivity
- Windows Server 2008 R2 : Manage the Active Directory Database (part 3) - Use Fine-Grained Password Policy & Create PSOs
- Windows Server 2008 R2 : Manage the Active Directory Database (part 2) - Defragment the Directory Database & Audit Active Directory Service
- Windows Server 2008 R2 : Manage the Active Directory Database (part 1) - Maintain FSMO Roles & Transfer FSMO Roles
- Windows Server 2008 R2 : Troubleshoot Group Policy
- Microsoft Lync Server 2010 Edge : Edge Installation
- Microsoft Lync Server 2010 Edge : Edge Overview
- Updating Objects and Virtualization with Dynamics NAV : Virtualization with Dynamics NAV
- Updating Objects and Virtualization with Dynamics NAV : Objects in NAV
- SQL Server 2005 : SQLCLR Security and Reliability Features (part 3) - Granting Cross-Assembly Privileges
- SQL Server 2005 : SQLCLR Security and Reliability Features (part 2) - Selective Privilege Escalation via Assembly References
- SQL Server 2005 : SQLCLR Security and Reliability Features (part 1) - The Quest for Code Safety
- SQL Server 2005 : Wrapping Code to Promote Cross-Tier Reuse
- SharePoint 2010 Search : Setting Up the Crawler - Crawling Exchange Public Folders & Crawling Line-of-Business Data
- SharePoint 2010 Search : Setting Up the Crawler - Crawling File Shares & Crawling Web Sites
 
 
Most view of day
- Windows Server 2012 : Configuring IPv6/IPv4 interoperability (part 5) - Stateless address autoconfiguration,Stateful address autoconfiguration
- Microsoft Outlook 2010 : Working with Tasks - Adding a Task
- Windows Small Business Server 2011 : Adding a Terminal Server - Configuring RemoteApps (part 1) - RemoteApp Manager
- SQL Server 2008 R2 : Configuring Resource Governor (part 2) - Defining Workload Groups, Creating Workload Groups in T-SQL
- Backup and Restore of Microsoft Lync Server 2010 : Backup Processes (part 2) - Backing Up the Central Management Store, Backing Up Lync Server Servers
- Developing Disk Images : Capturing a Disk Image for LTI, Capturing a Disk Image for ZTI
- Working with the User State Migration Tool (part 1) - Using the USMT in Four Deployment Scenarios
- Collaborating Within an Exchange Environment Using Microsoft Office SharePoint Server 2007 : Exploring End-User Features in MOSS
- Windows Server 2012 Administration : Configuring Sites (part 2) - Creating a Site - Adding Domain Controllers to Sites
- Windows Phone 7 : 3D Game Development (part 2) - Rendering 3D Primitives
Top 10
- Windows Phone 8 : Configuring Mailbox Settings (part 5) - Configuring Automatic Replies
- Windows Phone 8 : Configuring Mailbox Settings (part 4) - Lightening the Display,Changing the Mailbox Sync Settings
- Windows Phone 8 : Configuring Mailbox Settings (part 3) - Message Signatures, Blind CCing Yourself
- Windows Phone 8 : Configuring Mailbox Settings (part 2) - Unlinking Mailboxes, Conversation View
- Windows Phone 8 : Configuring Mailbox Settings (part 1) - Linking Mailboxes
- Managing Windows Server 2012 Systems : Configuring Roles, Role Services, and Features (part 6) - Tracking installed roles, role services, and features
- Managing Windows Server 2012 Systems : Configuring Roles, Role Services, and Features (part 5) - Installing components at the prompt
- Managing Windows Server 2012 Systems : Configuring Roles, Role Services, and Features (part 4) - Managing server binaries
- Managing Windows Server 2012 Systems : Configuring Roles, Role Services, and Features (part 3) - Adding server roles and features
- Managing Windows Server 2012 Systems : Configuring Roles, Role Services, and Features (part 2) - Installing components with Server Manager - Viewing configured roles and role services
 
 
Windows XP
Windows Vista
Windows 7
Windows Azure
Windows Server
Windows Phone
2015 Camaro