In this post I am going to cover basic terms of Dynamics AX 7 development.
Element: Element is the object in the AOT(Application Object Tree) such as tables, classes, forms etc.
Project: Project is a small, manageable group of elements. If you want to customize the element, it needs to be added to the project. Project always belongs to only 1 model. We can use project files to import/export between different instances of AX. It is saved as .AXPP file.
Model: Model is defined as collection of elements that represent a distributable software solution. This included all the elements and the Metadata. Model belongs to only 1 package. You can modify elements belonging to same package where the model belongs. Model is a unit of development/customization.
Package: Package is a deployable container. It contains source files (XML files), resources and DLLs. It is similar to Model store of AX 2012. You can select one or more packages and create a deployable package, which can be used to move the code from one environment to other. Packages are stored under c:\packages folder. For every model new sub folder will be created under package folder. Package is unit of deployment.
Solution: Solution is a virtual grouping of projects in Visual Studio. In Visual Studio you can add project from same or different models from one or more packages.
Following is the diagram showing this structure.
- Element is a part of project.
- One element belongs to only one model and can be customized only in that model once.
- Project is a part of model.
- Model Can have many projects.
- Package contains one or more models.
- one model belongs to only 1 package.
- Solution is Visual studio solution which can contain models from different packages.
- Solution is Virtual grouping created for ease of managing the development objects.
Following is the screenshot from the Visual studio:
Above solution has multiple models from different packages.
Models are of both customization models as well as extension models.
Above screen shows each model and corresponding packages.