Monday 2 July 2012

AX 2012 - What's New for Developers

 
This Article describes the new and enhanced features for developers that are available in Microsoft Dynamics AX 2012. Updated and additional developer documentation for Microsoft Dynamics AX can be found at the Microsoft Dynamics AX Developer Center on the Microsoft Developer Network (MSDN).

Analytics for Developers in MS DAX 2012
 Analysis services project wizard
Model data using tables and views make it easy to customize cubes
It is easy to deploy the default cubes
It is easy to create new analysis service project
 Date Dimensions using gregorian calendars
Define gregorian Calendar in calender builder form in ax that you can use as date dimenssions in analysis service project
AOS and DB for Developers in MS DAX 2012
 Valid Time State Tables
"ValidTimestateFieldType" proerty on table to make the table valide time state table. Ax will add the "ValidFrom" and "ValidTo" columns that track a date range in each row.
Unit of work Class
Mangae the operation sequence and transaction intigrity for row by row database deletes, inserts and updates.
Inheritance among the tables
Just as an X++ class could inherit from another X++ class in Microsoft Dynamics AX 2009, a table can inherit from another table in Microsoft Dynamics AX 2012. As in earlier releases, the Common table is still the base table of every table. A table that inherits from a base table is called a derived table. The terms parent table and child table describe foreign key relationships, not inheritance.
Full text index
Craete a full text index on a table
TempDB temporary tables
In the properties for a table in the Application Object Tree (AOT), the TableType property is now an enum property. The enum value InMemory is the legacy type of temporary table that is hosted in the client. The enum value TempDb is the new type of temporary table that is hosted in the TempDb database of the underlying Microsoft SQL Server. TempDB temporary tables can be joined with regular tables on the database tier. Joining TempDB temporary tables with regular tables often improves performance and simplifies the programming model.
Computed columns in views
Have a computed column in a view.
Filters in outer join
Filtering the result set from an outer join can reduce the number of rows that the database server must scan.
Add a Having Clause to a Query in the AOT
Use the AOT to add a having clause on the data source for a query.
Effect of Disabling a Table
Retain the table in the underlying Microsoft SQL Server database when the table is disabled in Microsoft Dynamics AX.
Best practices for Developers in MS DAX 2012
Best Practise
Best Practice Checks Changed from Warnings to Errors.


Client for Developers in MS DAX 2012
Forms
  • Set the Style property of a form.  
  • Use the table of contents pattern for small forms that display data on one or more tabs.
  • Specify whether the query from the parent form is copied to a child form.
Controls
·         Use a DropDialogButton control.
·         add an action pane strip that provides access to the actions that are associated with the form.
·          You can replace a surrogate foreign key with one or more data fields.    
·         You can add and use .NET controls in forms.
·         To display data in a chart, you use the MSChart .NET control.
·         Disable or hide controls that are not used in a specified country or region.                                      
Data sources
·         The replacement fields are not loaded until they are visible.                      
·         Controls can be bound to fields from the derived tables in an inheritance hierarchy.  
·        When you save a record that changes multiple tables, the changes are combined into a single transaction that is initiated by AOS.
Parts
·         You can create or update a FactBox that appears on a list page or in a form.
·          Use an existing form as a FactBox.
·          Create a Cue in the Application Object Tree (AOT) that uses an existing query.
Search
To make a form or report appear in search results, you create a menu item, and add the search terms that you want to associate with the specified form or report.
Enterprise portal for Developers in MS DAX 2012
Microsoft SharePoint 2010
·         Enterprise Portal uses SharePoint Foundation 2010 or SharePoint Server 2010.
·         Microsoft SharePoint 2010 provides core features that are used by Enterprise Portal, such as document libraries that store Enterprise Portal pages
Microsoft Visual Studio 2010
Enterprise Portal integrations are developed with Visual Studio 2010.
Support for Microsoft Dynamics AX 2012 Features
·         Enterprise Portal supports tables that are structured into a table hierarchy.
·          Enterprise Portal supports tables that use surrogate keys.
·         Enterprise Portal uses the new security model.
List Page Framework
A list page can be created and used in both the Microsoft Dynamics AX client and Enterprise Portal.
Services Framework
Enterprise Portal uses the Microsoft Dynamics AX services to access data and metadata.
Search
Search for data in Microsoft Dynamics AX.
Pluggable Authentication
You can use Windows Live ID accounts for external users.
Proxy Support
Proxies can be used throughout Microsoft Dynamics AX. This includes Enterprise Portal
Cross-reference Support
The cross-reference tool supports Enterprise Portal resources.
Morph X Development for Developers in MS DAX 2012
Models and the Model Store
The following model features are new:
·          A model is a set of model elements in a specific layer.
·         Each layer consists of one or more models. One of the models is generated by the system. For example, VAR Model is the model that is generated for the VAR layer.
·         Each element in a layer must belong to only one model.
·         Models can be exported to a file artifact that is called a model file. Model files have an .axmodel extension. A model file is like an .aod file from earlier versions, but the names and numbers are not limited. Models in the model store can be exported to model files and imported from model files. Model files can be signed, and the signature is verified when the model files are installed.
·         Model files replace .aod files as installation artifacts.
·          Models in the SQL Server–based model store replace .aod files that were used at run time.
·          Development is performed in the current model in any given layer. All development work, such as creating a new class, becomes part of the current model in the current layer. You can change the current model by clicking the name of the current model on the status bar, similarly to the way that you change the current company.
·         Any element that is created in the current layer can easily be moved to another model in the same layer.
·         The Application Object Tree (AOT) shows you which model a particular element belongs to, in addition to the layer tags.
·         The additional folder capabilities for version control have been renamed models, and the capabilities have been extended. When you add an element to version control, the element is added to the version-model.
·         You can generate a MorphX project that contains all of the application objects in the model. A new Model management submenu on the Tools menu contains many tools that you can use to work with models and the model store.
·         The new SysModel* system tables provide a view of the metadata that is associated with models. These tables enable you to use model metadata in select statements in your X++ code. For example, you can use the SysModelElementLabel table to retrieve the string value for the label that is associated with a particular model element.
Object IDs
Object IDs are 32 bits long.
AxUtil Command-Line Utility and PowerShell Cmdlets
AxUtil is a command-line utility that you can use to import and export .axmodel files into the SQL Server model store. You can also use AxUtil to delete one or more models, create new empty models, and list all of the models in a layer. All of the capabilities of AxUtil are also exposed as PowerShell CmdLets.
Development Workspace
In Microsoft Dynamics AX 2012, the development experience is separated from the application experience as a new workspace. You now use the development environment when you write code in Microsoft Dynamics AX.
Some Layers Have Been Renamed
In Microsoft Dynamics AX 2012, 16 layers are supported. Because multiple solutions can be installed in parallel into the same layer, some layers have been renamed to emphasize the new usage.


MorphX Tools for Developers in MS DAX 2012
X++ Editor
The code editor is now based on the code editor for Visual Studio, and includes many of the same features and shortcuts. The following new and changed features are available:                                                                                                    
·         The method list displays all methods in the class. You can scroll through the list by using the mouse, and the size of the list is resized.
·         Basic editing has improved. For example, you can comment or uncomment code, move code by using a drag-and-drop operation, swap characters, delete a whole line, and change text in many other basic ways.
·         Code navigation is more similar to code navigation in Visual Studio. For example, you can use the Home key, navigate line ends, and go to the next or previous word as you do in Visual Studio.
·          It is easier to select code by using the margin or by using block selection, and word selection is improved.
·          Code rendering is improved. For example, the value of a label is displayed when you rest the mouse pointer on the label, and an indicator in the margin tracks your changes. Additionally, line numbers are displayed, the font is improved, there is more syntax coloring, and you can view whitespace. · You can search for code incrementally. Search uses .NET regular expressions. · IntelliSense has been improved. IntelliSense now includes word completion, tooltips that display the XML documentation comments for a method or class, and help for multiline parameters.
·         Errors in code are underlined by using a wavy line. When you rest the mouse pointer on the wavy line, the error message for the compiler is displayed. Code breakpoints can be toggled in the margin.
Code Upgrade Tools
Use the Detect Code Upgrade Conflicts tool to analyze a system, and then create projects that contain the application objects that must be upgraded manually.                                                                                                           Use the EDT Relation Migration tool to move the previous relations that are defined under the EDT nodes in the AOT to the table nodes.
Reporting for Developers in MS DAX 2012
Use labels in a report.
Using AX labels in reports, you no longer have to create a .resx file for each language which improves the time to deploy reports. Only one report definition per report is needed.
Use data on your report that is based on specific time periods.
Create a report that has data that is based on specific time periods. The reporting framework supports date effective data.
Define secure reports based on the role of the user
Report security is based on the user role and you can specify with more precision which data is displayed on a report.
Create an unlimited number of dimensions attributes.
Create an unlimited number of dimension attributes using the dimension framework. Additional flexibility is enabled by the ability to combine dimension attributes.
Access cross-reference information for a Reporting Services report.
You can see what data the report is using and what AOT objects are using the report.
AX_CompanyName report parameter has been updated to reflect changes in Ax 2012
You can add organization parameters to your report such as Operating Unit or Department. The AX_CompanyName parameter was created by the Microsoft Dynamics AX framework for queries that are company specific. This change reflects the organization hierarchy product wide feature
Use the improved drill-through functionality on reports.
Using table and field names reduces ambiguity and errors and Launching a new window for a linked report is consistent with expected behavior and improves the usability of reports that have links.
Modify queries used by reports
Allows you to filter and sort data on reports.
Control report destination settings
The PrintDestinationSettings class was added to allow you to programmatically change print settings such as saving to a file.
Create auto-reports
An auto-report is a report that is generated by clicking Print on a form. The data on the form is displayed on the report. Auto-reports are generated by using the Reporting Services framework for Microsoft Dynamics AX.
Print reports in a batchCreate auto-reports
You can use the Reporting Services framework to print a batch of reports, print a report on a recurring basis, and schedule a report to be printed during off peak hours.
Secuity for Developers in MS DAX 2012
Create security permissions on individual AOT elements.
The new security system takes less work to maintain as your business evolves. Security constructs can be reused more easily. Data that the user does not have permissions to see is never sent from Application Object Server (AOS) to the client, and appropriate security does not rely on forms for enforcement.
Implement security
Security policies can restrict access to table rows, based on foreign key relationships between tables. One security policy can replace several RLS specifications. After a security policy is created in the AOT and assigned to a user role, the system enforces the policy. Therefore, developers do not have to add calls to a security system in their code. The RLS feature will be removed from a future version of the product.


Services and AIF for Developers in MS DAX 2012
Services Enhancements
X++ classes and members can be exposed as services and service operations by using attributes.
Any .NET or X++ native type (such as a str or an int) can be used as a data contract. Any class that uses the AIF data contract attributes can be used as a data contract.
Data contracts can now use X++ container types and strongly typed X++ collections such as a Set or an Array.
Service Groups
A service group is a collection of services that are frequently consumed and managed together. All services in a service group are published in a single Web Services Definition Language (WSDL) file
Support for Data Model Changes
AIF fully supports data model features to make data contracts easier to use.
Support for Non-XML Files
AIF can work with non-XML data, and you can handle data transformations within Microsoft Dynamics AX.
Consume external web services from X++ without adding a service reference in the AOT.
The Service References node has been removed from the AOT. You add a service reference in a .NET project and then add that project to the model store. Then you can access the external service from X++ code.
Visual studio tools for Developers in MS DAX 2012
Application Explorer
The Application Explorer displays a view of the AOT within the Visual Studio IDE.
Managed Code Business Logic
You can write business logic in .NET languages and manage this code in Microsoft Dynamics AX just as you would with X++ classes.
Proxies
When you add an X++ class or table to a project by using the Application Explorer, a proxy for that class is created internally by the system. After the proxy is created, that type is then available as a strong type and features like IntelliSense are available.
Deployment
Managed code assemblies are deployed to the location that you specify: client, server, Reporting Services or Enterprise Portal. You can specify where the assembly is deployed by setting project properties in Visual Studio. After you deploy an assembly, you can then see the managed code classes via IntelliSense and call the managed code from X++.
Cross-Reference Tool
In order to see cross-references for a Visual Studio project, you must first add the project to the model store by using the Application Explorer. After you add a project to the model store, the project and its cross-reference information are updated every time you build the project.
Code Upgrade Tools
Microsoft Dynamics AX supports layer-based customizations for managed code. Therefore, the tools that enable developers to find and resolve conflicts that result from those customizations also support managed code. The code upgrade tools enable developers to detect and resolve conflicts between two versions of Microsoft Dynamics AX.
Workflow for Developers in MS DAX 2012
Advanced Workflow Controls
By using advanced workflow controls, you can create more complex workflows than you could in Microsoft Dynamics AX 2009.
Line Item Workflow
You can now create a line item workflow that is configured and instantiated for different types of line item records that are in a header-to-line relationship. For example, a header can be a sales order that has sales order lines, or a purchase order that has purchase order lines.
Automated Workflow
You can now create an automated workflow element. An automated workflow element is a type of workflow element that does not involve human interaction.
Workflow Editor
It is now much simpler to create a workflow by using a drag-and-drop user interface.
Workflow Templates Are Now Workflow Types
Workflow templates have been renamed workflow types. Workflow types are building blocks that can be used to create customized workflows that enforce business policies. Workflow types are defined in the Application Object Tree (AOT) at design time. The metadata from workflow types is used by the customer to create a workflow configuration. For example, workflow tasks can have metadata that indicates the class that is used when the due date of the task is calculated.
X++ for Developers in MS DAX 2012
.NET Proxies to X++ Classes
A .NET proxy is a .NET managed class that represents a class or table that exists in Microsoft Dynamics AX. Your managed program can call proxy methods, just as your X++ code can call methods on a table or class. 
The C# compiler detects errors in your calls to the proxy at compile time. You can use this early-bound programming model to fix errors in your code before the code is run. The internal logic of the proxy class uses the late-bound programming model of .NET Business Connector. However, the tools that generate the source code of the proxy have been rigorously tested.
X++ Attributes
X++ classes and methods can now have metadata in the form of attribute classes. An attribute class is any non-abstract class that inherits from the SysAttribute class. Detailed metadata is assigned through the constructor of the attribute class. Tables and interfaces can also have attribute classes.
New Expression Operators in X++ for Inheritance
When the is operator is used, your code can test whether a particular downcast assignment would be valid.
Events in X++
The event programming model can reduce the chance that your customizations are affected by upgrades to your program or to Microsoft Dynamics AX. 
The pre-method and post-method events are stable points at which custom code can run.  
X++ Compiled to .NET CIL is Faster
Some X++ batch jobs can now complete in much less time. All X++ code that runs on the AX32.exe client still runs as interpreted p-code. However, all batch jobs now run as Microsoft.NET Framework CIL, which is often much faster than p-code. The X++ developer must now complete the extra step of compiling X++ p-code to CIL. To compile p-code to CIL, right-click AOT, and then click Add-ins > Incremental CIL generation from X++. Next, if the installation uses multiple instances of Application Object Server (AOS), all AOS instances must be stopped and then restarted. This causes the AOS instances to load the updated assembly. Finally, a service or a batch job must run the X++ code that was compiled to CIL. Services and batch jobs now run only as CIL.


 

No comments:

Post a Comment