ソリューションを組織する
ソリューションを作成する前に、先の計画に時間をかけます。 たとえば、どれだけの数のソリューションを公開するか、また、それらのソリューションでコンポーネントをどう共有するかを検討します。
また、一連のソリューションの開発に必要となる Microsoft Dataverse 環境の数を決定します。 この記事で説明する戦略の多くについては、使用する環境が 1 つだけでもかまいません。 しかし、最初に環境を 1 つだけと決めて、後になって複数の環境が必要だとわかった場合、ソリューションを既にインストールした人々を考慮してソリューションを変更するのは、容易なことではありません。 複数の環境を使用すると、導入はより複雑になりますが、柔軟性は増します。
次のセクションでは、単純なものから複雑なものの順にリストされたソリューションを管理するためのさまざまな戦略について説明します。
単一のソリューション
ソリューションの開発とは一連の実用的なカスタマイズを確定することでもあります。 結果として、実際にカスタマイズしたアイテムを簡単に見つけることができます。
この方法は、作成するマネージド ソリューションが 1 つだけの場合にお勧めします。 将来、ソリューションを分割する可能性があると思われる場合には、複数ソリューションの戦略を検討してください。
複数ソリューション
コンポーネントを共有しない 2 つの無関係なソリューションがある場合は、2 つのアンマネージド ソリューションを作成するのが最も直接的な方法です。
Note
ソリューションでアプリケーションのリボンやサイト マップが修正されるのはよくあることです。 これらのソリューション コンポーネントが両方のソリューションから修正されるなら、それらは共有コンポーネントだと言えます。 共有コンポーネントを使用する方法については、次のセクションを参照してください。
複数のソリューションの階層化と依存関係
異なるソリューションをターゲット環境にインポートする場合、インポートされたソリューション下に既存のソリューションが存在するレイヤーを作成していることがよくあります。 ソリューションの階層化に関しては、ソリューション間の依存関係がないことが重要です。 同じアンマネージド コンポーネントを使用して同じ環境に複数のソリューションを配置することは避けてください。 特にテーブルは気を付けてください。
相互依存関係のリスクがない場合は、ソリューションをコンポーネント タイプ別にセグメント化します。 たとえば、すべてのテーブルを含む 1 つのソリューション、すべてのプラグインを含む別のソリューション、およびすべてのフローを含む 3 番目のソリューションがあります。 これらの異なるコンポーネントには、ソリューション間の依存関係のリスクはありません。 したがって、この方法で複数のソリューションを同じ環境で形成しても安全です。
両方にテーブルが含まれている環境では、2 つの異なるソリューションを使用しないでください。 これは、テーブル間に単一の関係があるというリスクが頻繁に発生するためです。これにより、ソリューション間の依存関係が作成されてソリューション アップグレードが起こるか、後で問題を削除されます。
ソリューション レイヤーを設計していて、アプリの構造化されたアプローチが必要な場合は、基本レイヤーから始める必要があります。 後で、基本レイヤー上に存在する追加ソリューションをインポートします。 続いて、基本レイヤーと、その上に基本レイヤーを拡張する拡張レイヤーがあります。
この方法でプロジェクトを管理する場合は、レイヤーごとに個別の環境を使用することをお勧めします。 これらの手順を使用して、ソリューションの階層化を構築します。
次の手順でソリューションを作成する前に、環境全体のすべてのソリューションで単一の発行者を使用してください。 詳細 : ソリューション発行者
"基本" 環境には、環境からのアンマネージド テーブルがあり、他のテーブルがない基本ソリューションがあります。 次に、このソリューションを管理対象としてエクスポートします。
拡張機能または "アプリ" レイヤー用に 2 つ目の環境を設定します。この環境は、後で基本レイヤーの上に配置されます。
マネージド基本レイヤーをアプリ レイヤー環境にインポートし、アプリ レイヤーのアンマネージド ソリューションを作成します。
アプリ ソリューションに、テーブル、列、テーブルの関連付けなどを追加することで、データ モデルを拡張できるようになりました。 次に、アプリ ソリューションを管理対象としてエクスポートします。 アプリ ソリューションは基本レイヤー ソリューションに依存していることにご注意ください。
運用環境では、マネージド基本レイヤーをインポートしてから、マネージド アプリ レイヤーをインポートします。 これにより、2 つのマネージド ソリューション間に明確な依存関係がある環境に 2 つのマネージド レイヤーが作成されます。 この方法で複数のソリューションを管理しても、ソリューション間の依存関係が作成されることはありません。これにより、必要に応じて最上層を削除するなど、ソリューションのメンテナンスに関する問題が発生する可能性があります。
このセグメント化パターンを繰り返して、維持する必要のある数の異なるソリューションを用意します。 ただし、ソリューションの階層化を管理しやすくするために、ソリューション数を最小限に抑えることをお勧めします。