There are 4 main components to understand in Visual Studio include Elements, Models, Projects and Packages. To explore more let's have a look at a screenshot of the Application Explorer. Within it, there is an AOT node (Model view)
Elements:-
Elements are AOT objects, for example; Base Enums, Extended Data Types, Tables, Classes, Forms, and Menu items and a lot more.
Model :-
Elements:-
Elements are AOT objects, for example; Base Enums, Extended Data Types, Tables, Classes, Forms, and Menu items and a lot more.
Model :-
- Model is a group of elements that represents the particular solution (Tables, Forms, and Classes e.t.c)
- The definition of the Model is similar to what it was in AX 2012 (AX 2012 Models)
- Model is a design time concept. For example A Fleet Management Model, A Project Account Model
- A Model may contains multiple Visual Studio projects. However, a project many only belong to one model
- All of the sub-nodes below the AOT node are different models, this is call Model View
- Recommended way of development is to create Visual Studio project for all changes and the project always belongs to model, you can think of them is a subset of your model. Why do we have a different concept for model and project? The only reason we have two concepts of a model and a project is, typically AX 7 models are very large and its not a good practice to compile entire model for a simple code change activities during your development.
- Project always belongs to a particular model and is basically a subset of elements that belongs a model.
- One or more model can constitute a package, typically every package has one model. The reason sometimes we have one or more models in particular package when you customize during overlaying of source code.
- A Package is a more of a compilation unit and distribution unit to move binaries and any other runtime artefacts that your model need between environments during the development ALM process. For example; moving them from the development box to the Cloud to run.
- A Package typically is one or more Packages typically packages into one we called deployment package and this is the unit that you use to move code to Cloud.
- A Package is a deployment unit that may contain one ore more models. In addition to elements, it includes more metadata, which is a description data that defines the properties and behaviour of the model.
- A Package can be exported into a file which can then be deployed into a staging or production environment.