Components of Solution
Solutions are comprised of a few core components. These components are created using the customization tools available or the APIs provided. These components are part of the following application:
- Solution Schemes are definitions of system entities, attributes, and relationships. They also include definition of Global Option Sets.
- User Interface Elements are items such as the Application Ribbon, the Site Map, Entity Ribbons, the definition of Entity Forms as well as web resources.
- Analytics elements include things such as Graphs, Dashboards, and Reports.
- Templates are definitions used for Mail-Merge, E-mails, Contracts, and Knowledge Base Articles.
- Security Model definitions include the various Security Roles as well as the definition of Field Level Security profiles.
- Processes and Code elements include the definition of Processes as well as custom code elements. We will not cover custom code elements in this book, but we will have a look at the various Process types later on.
All these solution components are available to be included in all solutions. They are defined in a solution exported as a ZIP file.
Opening such a solution file shows the following three XML files, as the following screenshot demonstrates:
The first file lists the available customized content types, if any. The solution.xml
file contains the following elements:
- Solution definition data
- Version
- Platform version
- Solution name and properties
- Publisher details
- Components
- Missing dependencies
With each solution created, a publisher is required. This is usually the partner or group providing the solution. This information is stored in a Publisher entity.
Dependencies are related solution items. For example, a component could require elements from another entity. This other entity does not necessarily have to be included in the solution. When it is not, a missing dependency is recorded in the solution. When deploying the solution, a check is done on the target system to determine whether the missing dependency is installed on the target by another solution. If it is not found, a missing dependency error is thrown and the installation is aborted.
The last element of a solution is the customizations.xml
file. This is the meat of the solution, and it includes all the elements added to the solution. The document is structured by entity, but also includes details about the other solution components described earlier.
Analyzing the content of these XML files is beyond the scope of this book, but additional details about working with solutions can be found in the MSDN documentation available at the following website: