Course 8645A: Four days; Instructor-Led
On This Page
Prerequisites
It is required that students have general knowledge on the following subjects:
| • |
Object Oriented Analysis, Design and Programming |
| • |
Database Design and SQL |
Please refer to the section Suggested Reading to obtain references covering the subjects above.
It is required that students have completed:
| • |
Development II: Introduction to X++ |
It is assumed that the student has been working with development in Microsoft Dynamics AX and has gained some experience on the topics covered by Development I & II.
Microsoft Certified Professional Exams
No Microsoft Certified Professional exams are associated with this course currently.
Course Materials
The student kit includes a comprehensive workbook and other necessary materials for this class.
The following is provided in the student kit:
| • |
Development III: Advanced X++ Course Manual |
Course Outline
Chapter 1: Development Environment and Tools
This chapter gives a comprehensive foundation for the use of the development environment and integrated tools.
Topics
Development environment
| • |
Files (Client, Application, Server) |
| • |
Transfer of modifications to test environment |
| • |
AOS Setup |
Application architecture
| • |
X-references |
| • |
Application hierarchy browser |
| • |
Microsoft Visio |
Performance/monitoring
| • |
Debugger |
| • |
System Monitoring |
| • |
Method Trace |
| • |
Development Warnings |
| • |
SQL Trace |
| • |
Query Time Limit |
| • |
Deadlocks |
| • |
Database Trace |
| • |
Code Profiler |
Application upgrade
| • |
Upgrade project |
| • |
Compare tool |
Lab
| • |
Use the tools to analyze the structures of the standard application. |
| • |
Find the bottleneck in a specific function in the standard application |
| • |
Make an upgrade of a project containing a few modified application objects. |
After completing this module, students will be able to:
| • |
make a transfer of modifications from the development environment to test or live environment |
| • |
browse, examine, analyze and understand the structures of the standard application |
| • |
use the monitoring tools and interpret the related reporting |
| • |
understand the upgrade of modifications from one version or service pack to another version or service pack |
Chapter 2: Fetching Data
This chapter focuses on fetching data from the database. The goal is to make optimal communication with the database with respect to performance. In addition, the student will have knowledge in how to use temporary tables.
Topics
| • |
Query (Structure, Properties) |
| • |
Cost based optimizer |
| • |
while select (Syntax, Qualifiers, Field lists, Join, Placeholders/Literals) |
| • |
Caching |
| • |
Locking |
| • |
Temporary tables |
Labs
| • |
Build a query in the AOT and with X++ |
| • |
Create a fetch using a query and a while select |
| • |
Improve performance by implementing display-method caching |
| • |
Reduction of locking |
| • |
Use of multiple instances of a temporary table. |
After completing this module, students will be able to:
| • |
program optimal database access |
| • |
understand the concept of literals and placeholders |
| • |
understand the caching mechanisms in Microsoft Dynamics AX |
| • |
use temporary tables in classes, forms, and reports |
Chapter 3: Classes
This chapter shows how to create and modify classes and methods, according to Best Practices using object oriented concepts.
Topics
Object Oriented implementation in Microsoft Dynamics AX
Most important differences from the standard application and C#, VB.NET and Java examples
| • |
Classdeclaration |
| • |
Variables |
| • |
Data members |
| • |
Methods (qualifiers, parameters and return value) |
| • |
Overriding/Overloading |
| • |
Access modifiers |
| • |
Types of Microsoft Dynamics AX Classes (Examples in parenthesis) |
Application classes
| • |
Basic functionality (Dialog) |
| • |
Wrapping of general routines (NumberSequence) |
| • |
Form support classes (LedgerJournalEngine) |
| • |
Table "polymorphism" (SalesTableType) |
| • |
API to the modules (LedgerVoucher, CustVoucher) |
| • |
Batch processing (RunBase) |
Kernel classes
| • |
Tools (Binary, DialogBox, RecordSortedList) |
| • |
Application objects (FormDataSource, QueryBuildRange,..) |
| • |
Integration (COM, ODBC, IO) |
| • |
System classes (xApplication, xCompany, xInfo) |
| • |
Runbase framework |
| • |
Args-objects |
Labs
| • |
Design an abstract class |
| • |
Design and implementation of an interface. |
| • |
Implementation of accessor methods |
| • |
Implementation of foundation classes |
| • |
Use of kernel classes to access metadata |
| • |
Implementation of exception handling |
| • |
Design and implement a new class hierarchy using polymorphism. |
| • |
Create a new class using the Runbase-framework. |
| • |
Modify the class LedgerExchAdj to include a query and to initialize the query from the current selected account in the form. |
After completing this module, students will be able to:
| • |
understand the implementation of the object oriented concept in Microsoft Dynamics AX |
| • |
create a new class according to Best Practice |
| • |
understand and implement a solution using polymorphism |
| • |
use the RunBase-framework to create new batch processes |
| • |
transfer information using the args-object |
Chapter 4: Forms
This chapter discusses how to create and modify advanced forms.
Topics
| • |
Architecture |
| • |
AOT (general methods, datasource, design) |
| • |
Kernel classes and object model |
| • |
Properties |
| • |
Best practice (Initializing via args, Design, Validation / Modification) |
| • |
Placement of code (Priority: Table, Support class, Datasource, Design) |
| • |
Top ten methods to use |
| • |
Handles to the objects in forms |
| • |
Interaction between form and RunBase classes |
| • |
Queries. Synchronizing (Active/Passive), Joins, Modify by code (Filtering, Sorting, Aggregation) |
| • |
Special controls in short (ActiveX, List view, Table, Tree, Window) |
| • |
Special forms (Lookup, Wizard) |
| • |
Activate a form from X++ using ClassFactory |
Labs
| • |
Modify the form with customer transactions to toggle between active and passive synchronizing. |
| • |
Create a form with ledger transactions to include dynamic modification of filtering. |
| • |
Modify the employee form to include a web browser control. |
| • |
Create a lookup form to select an item which includes a picture of the item. |
After completing this module, students will be able to:
| • |
understand the structure of a form and the underlying kernel classes |
| • |
make decisions of where to place the code |
| • |
use the top-ten methods in forms |
| • |
dynamically modify the fetch of data |
Chapter 5: Reports
This shows how to fetch data into reports based on queries or X++ code.
Topics
| • |
Architecture |
| • |
AOT (general methods, data sources, design) |
| • |
Kernel classes and object model |
| • |
Top ten methods to use |
| • |
Handles to the objects in reports |
| • |
The RunBaseReportStd framework |
| • |
Fetch data by Query and X++ |
| • |
Templates / Autodesign / Design |
| • |
Use of temporary tables for consolidation |
| • |
Calculation on (sub)totals |
| • |
Report Wizard |
Labs
| • |
Create a report using aggregate functions. |
| • |
Create a report using a temporary table to consolidate date from multiple sources. |
| • |
Create a report which dynamically modifies of some controls. |
| • |
Create a report with calculations on totals. |
After completing this module, students will be able to:
| • |
understand the structure of a report and the underlying kernel classes |
| • |
make decisions of where to place the code |
| • |
implement a dialog using the RunBaseReportStd framework |
| • |
understand the principles of fetching data in a reports |
| • |
make dynamically changes to the design |
| • |
use temporary tables for consolidation |
Appendix A: Solutions
This Appendix contains all the answers to the chapter exercises, Test Your Knowledge, and Test Your Skills sections.
Suggested Reading
It is required that students as a part of the prerequisites have a knowledge level on the following subjects as described in this literature:
Object oriented analysis and design
| • |
Inside Microsoft Dynamics AX 4.0, Arthur Greef, Michael Fruergaard Pontoppidan, Lars Dragheim Olsen; ISBN: 0-7356-2257-4 |
| • |
Object-Oriented Modeling and Design, James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, William Lorensen; Prentice Hall International Editions; ISBN: 0-13-630054-5 |
Database design and SQL
The Essence of Databases, F.D Rolland, Prentice Hall; ISBN: 0-13-727827-6
|