-
Notifications
You must be signed in to change notification settings - Fork 0
Solutions
- Introduction
- Unmanaged vs. Managed
- Solution Internals - Web UI
- Solution Internals - Local Build
- Tooling
Solution is '.zip' package which enables ISVs to import customizations to other (downstream) environment. This page will help you to understand what's defining solution and how one can be created.
Let's start with the unmanaged vs. managed debate, because that's the first thing you need to understand if you want to deliver quality products for CDS.
images/solutions_unmanaged-vs-managed.png
This should be self-explanatory enough... If someone argues with you, that using unmanaged solutions is better, strongly disagree with him or her. Using unmanaged solutions is easier and quicker but doesn't make sense if there's need to scale the solution in the future. Using unmanaged solutions in downstream environments is a way straight to the hell from the long term support point of view.
Another important reason for using managed solutions is solution layering. If I simplify it - you can import and uninstall solution without any changes to a customer's environment thanks to solution layering.
First of all, you are able to find all solutions in the web UI. Go to Settings -> Solutions.
But you should understand what's a solution and how to create one without web UI...
As I said in the beginning - solution is a '.zip' package. This goes for both managed and unmanaged ones.
If you open this package you can find few files and maybe even folders.
'solution.xml' and 'customizations.xml' are the most important files.
If you open this file, you'll see the solution definition:
- solution unique name
- localized names
- descriptions
- version
- package type ()
- 0 = unmanaged
- 1 = managed
- 2 = both
- publisher
- root components
- solution components - basically what's in the customizations.xml
- missing dependencies
- what are the components dependent on
If you open this file, you'll see the concrete customizations done to a component. Or if you're adding some webresource, assembly or other binary file, you'll find description of that file here in the customizations.xml.
This is how would empty solution look like.
More on that in the tooling page but get used to SolutionPackager.exe you will need it a lot since it's the tool, that can extract all customizations from the customizations.xml into multiple files for more readable experience.