Microsoft bills Dynamics AX as an “enterprise resource planning solution”, but that term is not quite accurate. Like most ERP products, Dynamics AX is more akin to development platforms such as Salesforce than turn-key products that one can simply use. Since changes to the platform offers new opportunities and challenges for enterprise developers, now one of the products being tracked by InfoQ.
The change list for AX 2012 weighs in at a hefty 209 pages so we are only going to cover some of the highlights.
Deprecated Platforms
On the client-side, Windows XP is no longer supported. Given Vista’s troubled history, this means most companies using the installed client will upgrade to Windows 7.
On the server-side, Windows Server 2003 and SQL Server 2005 are no longer supported.
Dynamics AX also has a browser-based client exposed via the Enterprise Portal server. The following browsers are explicitly not supported:
- Internet Explorer 6 and 7
- FireFox 2.0 and 3.0
- Apple Safari (all versions)
The Enterprise Portal server must be installed on a 64-bit operating system and is not compatible with Windows SharePoint Services 3.0 or Office SharePoint Server 2007.
For development of plug-ins, extensions, and the like developers may not use runtimes older than .NET 4.0 or C++ 2008 SP 1.
Database Changes
As mentioned above, Oracle can no longer be used as the underlying database. Microsoft hopes to gain performance improvements by using writing code that targets a specific version of SQL Server instead of writing more general, cross-platform code. There were no specific complaints about Oracle; this allowed the Dynamic AX team to also take dependencies on SQL Server Reporting Services.
In prior versions relationships between tables were stored in extended data types (ETD). The use of ETDs created problems when two tables had more than one relationship or a relationship requires a composite key. Relationships are now stored metadata under the Relations node for the individual table.
There is also a new type of relationship known as “table inheritance”. Table inheritance is designed to work like the class inheritance found in OOP languages such as C++ and C#. This feature cannot be ignored, as Microsoft has already begin moving fields around to take advantage of it and queries will to be updated accordingly. On the plus side, fewer explicit joins will be needed in the X++ SQL.
In a move that is sure to be welcomed by many, deactivated tables are no longer permanently deleted. While the data is no longer available via Dynamics AX, it can still be directly accessed via the underlying SQL Server.
Services and Application Integration Framework Changes
The Services and Application Integration Framework (AIF) is used primarily for message-based integration. Like many products dating back to the late 90’s, Dynamics AX expects all data import/export operations to be in a specific XML format. With the 2012 edition developers will finally be able to support non-XML formats. This is done via a .NET binary that translates the data into or out of XML.
Microsoft’s dedication to Windows Communication Foundation is reflected in this area of the platform. The special purpose adapters for MSMQ and BizTalk are being replaced by “native WCF functionality”.
Security
Dynamics AX is moving from an explicit permission style (think Windows users and groups) to a role-based security model. While great for management, from a developer perspective this won’t change a whole lot. Far more interesting is the improvements in data security.
Previously the data security model was nothing but smoke and mirrors. All of the supposedly restricted information was sent to the client and simply filtered out on the screen. With the new model the data is filtered on the server.
Data filtering is also more flexible now. Data filtering rules can now take into account data found in tables other than
Reporting
It seems like no EPR platform can perform a major upgrade without breaking the reporting model and Dynamics AX is no exception. Dynamics AX 2012 will be switching from its internal Report Services to SQL Server Reporting Services. While most of the built-in reports have been converted, custom reports will not be upgraded. Of especial concern is the depreciation of X++ reports. While it looks like they will still run for now, Microsoft recommends that they be rewritten as SQL Server Reporting Services reports. The reasons cited for deprecating the X++ reporting framework include the lack of charting and the inability to include non-Dynamics AX data sources in reports.
It should be noted that X++ itself isn’t being deprecated. It can be used to Report Data Provider classes, which are then fed into custom reports. In addition to X++ and SQL Server Reporting Services, report writers are also going to need to learn how to work with PowerShell, as it replaces the “Reporting Project Deployment tool” as the way to deploy reports.
The “Reporting Tools and Microsoft Dynamics AX Enterprise Portal Tools” are no longer available and will be replaced with “Microsoft Visual Studio Tools”.
X++ Development
The built-in editor for X++ has been replaced by Visual Studio 2010. “Although the editor script extension is still supported, extensions to the legacy editor UI are no longer supported.”
SourceSafe has been deprecated but not removed. Starting with this version developers are expected to use Team Foundation Server.
The entire X++ Workflow API has been replaced with a new managed Workflow. At the time of publication we were unable to find out any more information on the new workflow model or whether or not it is based on .NET’s Windows Workflow Foundation.
Module Specific Changes
Unfortunately there are too many changes in this area to mention. With virtually every module having either undergone major changes, deprecated, or out-right removed, developers are going to have to retest and possible recode every aspect of their installation. In short, this is not going to be an easy upgrade.