Dynamics CRM 2016 新機能: ソリューションフレームワークの拡張 その 1

みなさん、こんにちは。

今回から数回で、Dynamics CRM 2016 で拡張されたソリューションフレーム
ワークの機能を紹介します。

概要

これまで、本番環境へリリースしたマネージドソリューションに対して新しい
バージョンのソリューションをリリースする場合、以下の問題がありました。

- ソリューションの合計数が増える
- 他の環境に展開する場合に、リリースするソリューション数が増える
- 他のソリューションが混在する場合、インポート順に蓄積されるため結果が
想定と異なる場合がある
- ソリューションに既定の設定も含まれるため、展開先の設定を上書きしてしまう
- パフォーマンス問題

今回のリリースではこれらの問題を解決すべく、以下の機能が追加されます。

- パッチソリューションの作成
- パッチは常にベースソリューションのすぐ上の階層にインポートされる
- メジャーバージョンリリース時に、ベースソリューションとパッチをすべて
統合して 1 つのソリューションにする
- より柔軟な要素のエクスポート
- コンポーネントの削除
- パフォーマンスの改善

これらの機能は GUI からも SDK からも操作が可能になっています。

ベースソリューションとパッチソリューション

以下の図はベースソリューションである Solution A (バージョン 1.0.0.0) と
パッチソリューションを示しています。

[ベースソリューションとパッチソリューション]
image

ベースソリューションからパッチソリューションを作成する場合は
GUI 上からパッチを作成するか、 CloneAsPatchRequest メッセージを
利用して作成します。

本番などリリース先の環境に展開した場合に、他のマネージド
ソリューションが存在しても、ベースソリューション階層の上に
パッチソリューションは展開されます。

[パッチ適用時の階層]
image

ソリューションのマージ

ベースソリューションと複数のソリューションを次のバージョンの
ベースとしてマージすることができます。

下の図では、ベースソリューションである Solution A バージョン 1.0.0.0
に対して 3 つのパッチソリューションが作成されていますが、GUI から
または CloneAsSolutionRequest メッセージを利用して Solution A 1.1.0.0 の
作成を行っています。

この場合 1.1.0.0 バージョンのソリューションはこれまでのすべての要素を
含むソリューションとなります。

[ソリューションのマージ]
image

要素の削除

カスタムエンティティなど、既存のソリューションに含まれる要素が
新しいバージョンのソリューションには含まれない場合、完全に移行
することで要素を削除することが可能です。こちらも GUI からの操作
または DeleteAndPromoteRequest メッセージを利用して行えます。

まとめ

今回は Dynamics CRM 2016 で提供されるソリューションフレームワークの
機能概要を紹介しました。次回からは実際の動作をハンズオン形式で紹介
しますので、お楽しみに!

- 中村 憲一郎

※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。