This articles will be brief, because I don’t have much time between the sessions J
Yesterdag was the first day of the Dynamics Technical conference and following sessions were attended by me:
- Programming model improvements Part 1 of 2
- Programming model improvements Part 2 of 2
- Developing in .NET managed code and X++ Enhancements
- Solving the element ID problem
Programming model improvements Part 1 of 2
From this session, I remember the following additional features:
- Table inheritance is added. So now you can have abstract tables which are then inherited by child tables.
The unit of work pattern also comes into play here as there will be issues to address to manage transactions and code dealing with one ‘virtual record’ which may consist of multiple child tables. (Vehicle table with child tables bycicle, car, truck, …)
- Next to normal X++ temporary tables, there is now also support for temporary tables in SQL Server
- Date effective tables have been added. This means you can actualy filter records based on an ‘effective as of date’
- Eventing has been added so now you can actually subscribe methods to events on other classes. Also, this is implemented by drag and drop so it is actually user friendly to do this.
- The normal batch framework has been ‘adjusted / replaced’ with the SysOperation framework
- The tree of linked tables are then linked by RecId, but you can actually have a key with fields specified in a field group to be used in the design when showing on what the linked was based
- Tables have full text indes support now : This means they can be optimized for searches on text fields to look for certain words in the body.
Historical data pattern
This one is actually cool. Let’s say you have a historical table to contain a history of sales. Then you can set properties on the SalesTable datasource and the kernel will keep the history for you. So when you change values on the sales order for example, the kernel will create / update records in the historical data table.
Query ranges vs Query filters
When using joins (outer joins) the query ranges can produce incorrect outcomes. But now query filters are used to fix that. Instead of using the QueryRange object on the query, you can now also use QueryFilter objects and they are more optimized for SQL Server.
The other sessions will be describes in following posts as there is new session beginning right now J