问题
I am trying to sort out a best practise approach to organising solutions and more specifically what should be included in the 'base solution' or 'library solution'.
The SDK says the following:
Solution Libraries For an ISV with multiple solutions or a large enterprise deployment, it is expected that many solution components will have to be shared. The best ways for solutions to share components is to create solution libraries. You create a solution library by creating an unmanaged solution in a separate organization and then package those components into a managed solution. Install the managed solution into another organization and let developers reference these shared components from the solutions they create.
The Microsoft Dynamics CRM Solutions Framework lets you build layers of solutions that depend on each other. Typically, you create a solution library representing a ”base” solution. Other solutions can be built on top of this base solution.
What components should ideally be placed in the base/library solution? Core business entities and option sets? Core functionality and workflows?
There doesn't seem to be a great deal of guidance on the dynamics documentation.
回答1:
If you have any functionality that you plan to share across multiple organizations that will be revisioned separately from the rest of your organization, then I would consider putting that in a separate solution.
For example, say you have multiple regions in your business that will each have their own CRM organization, but each of them uses a standard way of scoring and assigning leads. In this scenario, I'd create a solution that encompasses that functionality and install it on each organization, and that way when the process changed, the same solution could be pushed out to all the orgs and everyone would get the same changes.
Another possibility would be a common set of JavaScript libraries and plugins that you'd use across multiple organizations, maybe for things like autonaming or autonumbering records, or some custom business logic validation. That way if you found any bugs in them, you again could push the same changes to all orgs.
If you don't have multiple CRM organizations or you're not an ISV, I wouldn't bother with solutions. They're a great leap forward for CRM, but it's definitely the first pass around, and there are some quirks and headaches to working with them.
来源:https://stackoverflow.com/questions/6572036/dynamics-2011-what-should-i-include-in-my-base-library-solution