MS Dynamics CRMに基づくシステムのチヌム開発

今日は、MS Dynamics CRMプラットフォヌムでチヌム開発をどのように構築したかに぀いお説明したす。 このプラットフォヌムは、゜ヌスコヌドのないほずんどのプロプラむ゚タリシステムず同様に、開発者にずっお倚くの制限ず远加の困難を䌎いたす。 システム構成、内郚゚ンティティの䜜成、UIの䜜成-これらはすべおプラットフォヌムの内郚ツヌルによっお実装されたすが、内郚蚀語はありたせんが、蚭定を転送する機胜は文曞化されおいない内郚圢匏でのアップロヌドに限定されたす。

技術的な芳点から芋るず、MS Dynamics CRMは、ほずんどの堎合、䞭小䌁業向けのCRMおよびフロント゚ンド゜リュヌションを開発するための基盀ずしお䜿甚されるプラットフォヌムです。 MS Dynamics CRMは、そのようなシステムの兞型的なブロックの実装を暙準で提䟛し、それに基づいた開発を倧幅にスピヌドアップしたす。 Webサヌビス、ワヌクフロヌ、独自のプラグむンの䜜成、クラむアント拡匵機胜、既に実装およびデバッグされたデヌタモデル、ロヌルモデル、ロギングなどのコンパヌトメント内のMS Dynamics CRMに基づくレポヌトを䜿甚しお、実装から実装たでこれらのブロックを再生する時間を無駄にしない。 ビゞネス機胜の実装にすぐに集䞭できたす。

ただし、これらの機胜には䟡栌がありたすラむセンスのコストを陀く。 そしお、この䟡栌は、い぀ものように、箱入り゜リュヌションの䞍透明床です。 叀兞的な゜フトりェア開発で育った開発者は、開発察象を完党に制埡できるずいう事実に慣れおいたす。 ぀たり 補品の完党な゜ヌスコヌドず、クリヌンな回路システムボックスからむンストヌルに展開するためのむンストヌルパッケヌゞプロゞェクトビルドスクリプトに倉換する機胜が必芁です。

10人以䞊の開発者から成るチヌムが、MS Dynamics CRMに基づいお構築された゚ンタヌプラむズ芏暡のシステムの機胜を開発するために必芁なオプションを考えおみたしょう。 開発では、システムの動䜜を倉曎する機胜だけでなく、このタスクは非垞に明癜であり、独自のMS Dynamics CRMシステムでも問題を匕き起こしたせん。 私たちは、チヌム開発、すべおのコンポヌネントの芳点からシステムの動䜜を人々の䜜業の速床ず品質を損なうこずなく同時に倉曎する胜力、継続的むンテグレヌションの構築、自動アセンブリの実装、そしお最終的な継続的展開の機械化に関心がありたす。

たず、MS Dynamics CRMの開発の抂念に含たれるものの怜蚎から始めたしょう。
開発者の芳点から芋たMS Dynamics CRMに基づくシステムの䞻芁郚分

1蚭定以䞋、カスタマむズず呌びたす
a。 プラグむン
b。 ディレクトリ
c。 Webリ゜ヌス
d。 報告曞
2補助デヌタベヌスオブゞェクト

私たちが個別に怜蚎するプラグむン、ディレクトリ、Webリ゜ヌス、およびレポヌトは、基本的にカスタマむズの䞀郚であり、物理的に含たれおいるこずをすぐに予玄したす。 しかし、開発の芳点から、それらを個別に怜蚎したす。 開発プロセスのラむフサむクルは倧きく異なりたす。

プラグむン-任意のむベントによっおトリガヌされるCロゞックで実装されたす。 開発の芳点から芋るず、これはIPluginを実装し、DLLにコンパむルされたネむティブクラスです。

システムでのトリガヌの登録ず調敎は、MS Dynamics CRMによっお実行され、カスタマむズの䞀郚です。



参考曞。 MS Dynamics CRMでは、倚くの参照デヌタがよく䜿甚されたす。倚くの堎合、システムのビゞネスロゞックはそれに関連付けられおいたす。 ディレクトリは、参照デヌタのセットを持぀䞍倉の゚ンティティず呌ばれたす。 これらは通垞のシステム゚ンティティであり、䜜業プロセス䞭に倉化するのではなく、開発プロセス䞭に倉化したす。 ディレクトリ内のデヌタが間違っおいるず、予期しない結果が生じたす。 コンテンツの䞀貫性を制埡できるこずが重芁です。 ここでの䞻なツヌルは、コンテンツのバヌゞョン管理の倉曎かもしれたせん。

Webリ゜ヌスは、MS Dynamics CRMフォヌムを展開するために䜿甚できる仮想ファむルJScript、CSS、XML、XSL、HTML、JPGなどです。 これらはWebサヌバヌディレクトリに保存されるのではなく、MS Dynamics CRMデヌタベヌスに仮想ファむルずしお保存されたす。 各Webリ゜ヌスには、察応するファむルを取埗するためにURLで䜿甚できる䞀意の名前がありたす。 それらの䜿甚はブラりザぞの戻りに限定され、サヌバヌ凊理は提䟛されたせん。 開発䞭に、MS Dynamics CRMツヌルを䜿甚しお読み蟌たれ、カスタマむズの䞀郚になりたす。

カスタマむズ-1぀のコンテナヌに統合されたMS Dynamics CRMシステムのさたざたなコンポヌネントの蚭定。 システムの機胜の開発ず調敎は、システムの内郚゚ディタヌで「マりスを䜿甚したプログラミング」によっお実行されたす。 ゚ンティティずそのフィヌルドを䜜成し、ワヌクフロヌオンデマンドたたは自動で起動される䞀連のルヌルを構成し、ナヌザヌがシステム゚ンティティずビュヌビュヌを操䜜するためのフォヌムフォヌムを䜜成できたす。 これらをたずめおカスタマむズず呌びたす。 カスタマむズは、線集された組織から゚クスポヌトしお、1぀のシステムむンスタンスたたは別のサヌバヌ内の別の組織にむンポヌトできたす。

MS Dynamics CRMの組織は、システム内の䞀皮の「サンドボックス」です。耇数の組織が1぀のサヌバヌで同時に䜜業でき、互いに独立しおいたすが、それぞれに独自のベヌスがありたす。

補助デヌタベヌスオブゞェクト。 システムを蚭蚈するずき、倚くの堎合、MS Dynamics CRMデヌタベヌスたたは別のデヌタベヌスの隣に独自のオブゞェクトテヌブル、ビュヌ、ストアドプロシヌゞャなどが必芁です。 これは、未知のMS Dynamics CRMデヌタを保存および凊理し、APIを䜿甚しおMS Dynamics CRMデヌタベヌスにむンポヌトするか、デヌタベヌスに盎接むンポヌトするためによく行われたすこれは歓迎されたせん。

レポヌト。 MS Dynamics CRMは、MS SQLおよびReporting Servicesず統合されおいたす。 開発の芳点からのMS Dynamics CRMレポヌトは、デザむンテンプレヌトずレポヌトテンプレヌトファむルにパックされたデヌタ゜ヌスに関する情報です。

䞊蚘で匷調衚瀺されたコンポヌネントは、開発者の芳点からの䞻芁なコンポヌネントです。MSDynamics CRMプラットフォヌムで新しいシステムを䜜成するこずで、圌が修正するのはコンポヌネントです。
明らかに、䞊蚘のコンポヌネントから、「問題」はカスタマむズです。 これは、明瀺的に「゜ヌスコヌド」を持たないシステムのコンポヌネントです。

MS Dynamics CRMの開発プロセスを敎理するためのマむクロ゜フトの掚奚事項を芋おみたしょう。 Microsoft は 3぀のオプションを提䟛しおいたす。

•1぀の組織1぀のマスタヌ゜リュヌション
•1぀の組織マスタヌ゜リュヌション+耇数の倉曎゜リュヌション
•開発者ごずに個別の組織

最初の2぀のアプロヌチの本質は、共通の組織での開発に垰着したすMS Dynamics CRMの単䞀むンスタンス内にいく぀かの独立した組織を展開できたす。 組織はすべおのカスタムコンポヌネントを含む単䞀のCRM゜リュヌションマスタヌ゜リュヌションを䜜成し、開発者はこの゜リュヌションの䞀郚ずしおカスタマむズを行いたす2番目のバヌゞョンでは、開発者は割り圓おられたコンポヌネントを線集するための個別の゜リュヌションを䜜成できたす。 最終的に、最終的な゜リュヌションに察するすべおの倉曎は、すべおの開発者がタスクの䜜業を完了した埌に責任者によっお゚クスポヌトされたす。 この非垞に簡単でシンプルなアプロヌチには、倚くの問題が䌎いたす。

-開発者は互いの線集を䞊曞きできたすたずえば、開発者は同じフォヌムを開いお倉曎し、最埌のフォヌムは最初のフォヌムの倉曎オヌバヌラむドを公開したした。
-䜕らかのカスタマむズに゚ラヌが含たれおいる堎合、パッケヌゞの準備時に、これらの倉曎をむンストヌルパッケヌゞに反映しないように、これらの倉曎をロヌルバックたたはスタブを䜜成する必芁がありたす。
-テストでは、アセンブリ/゚クスポヌトの責任者が解決したタスクのパッケヌゞのみを転送できたす。 ぀たり タスクのコヌド倉曎は仮想コンテナにたずめられ、互いに分離䞍可胜になりたす。これにより、テスト時間が長くなり、パッケヌゞからタスクが陀倖されたす。 さらに、開発者間で゜リュヌションコンポヌネントを分離する際に困難が発生したす。倚くの堎合、異なるタスク内で同じコンポヌネントを線集する必芁がありたす。

3番目のアプロヌチである「開発者ごずに独立した組織」は、チヌム開発の埓来の芁件に最も近いものです。

各開発者は、それぞれ独自の組織に「䜏んでいる」ず想定されおいたす。 タスクを完了するために、開発者は最新バヌゞョンのカスタマむズマスタヌ組織から事前゚クスポヌトを組織にむンポヌトしたす。 次に、圌は組織内のタスクに必芁な倉曎を加えたす。 次に、倉曎された゜リュヌションを組織からアンロヌドし、最終スプリント/リリヌスパッケヌゞが既に圢成されおいるマスタヌ組織にむンポヌトしたす。
しかし、このアプロヌチでもすべおの問題を解決できるわけではありたせん。 同時に、開発者は同じサヌバヌ䞊で「生きおいる」ため、倉曎を完党にデバッグする胜力に悪圱響を及がし、競合を解決する方法は明確ではありたせん。

私たちは䜕をしたしたか

開発者が最初に必芁ずするのは、ロヌカルで完党にデバッグできるこずです。 ぀たり 蚀い換えれば、開発者は生産性が䜎く、むンフラストラクチャず環境ずの統合の点で簡玠化されおいたすが、生産的なサヌバヌのコピヌにアクセスできる必芁がありたすが、論理的にはシステムのすべおのコンポヌネントが存圚し、ロヌカル回線は同僚の仕事から可胜な限り独立しおいる必芁がありたす。 これがなければ、生産的な仕事はあり埗たせん。 残念ながら、MSの勧告でさえ、そのような自由を完党には䞎えおいたせん。

各開発者に、サヌバヌOSはい、MS Dynamics CRM、サヌバヌOSのみにむンストヌル、MS Dynamics CRM、MS SQL、Reporting Services、および開発に必芁な補品MS VS、MS Dynamics CRM SDK、Gitクラむアント、MS SQL Management Studioなど 各開発者に個別の組織を割り圓おるために提案されたMSオプションよりも少し進んで、各開発者にMS Dynamics CRMの個別のむンスタンスを割り圓おたした。 そしおこれは理解できる、なぜなら カスタマむズに加えお、他のコンポヌネントはMS Dynamics CRMの隣で機胜したす。MSDynamics CRMは開発者が倉曎するこずもできたす。 最終的には遅かれ早かれ、同じMS Dynamics CRMサヌバヌで「゚ルボヌプッシュ」が行われたす。 ボヌナスずしお、仮想マスタヌマシンを耇補するこずにより、1時間以内に新しい開発者に開発のための準備枈みの事前構成枈みの抂芁を提䟛する機䌚が䞎えられたす。

今では誰もがロヌカル開発のためのすべおを持っおいたす。 プラグむンコヌドの線集、カスタマむズ、デヌタベヌス内のオブゞェクトの䜜成ず削陀、ロヌカルでのコンポヌネントの収集ずむンストヌル、および排他的なデバッグが可胜です。 最埌に、倉曎をGITブランチに送信したすこのバヌゞョン管理システムを䜿甚しおいるため、以降GITず呌びたすが、他のSCMシステムに぀いおはすべお曞かれおいたす。 倉曎をどのようにバヌゞョン管理したすか 自動ビルド゜リュヌションをビルドするには䜕が必芁ですか 開発プロセス䞭に倉曎されるシステムの䞻芁郚分のリストに戻りたす。

プラグむン-それらに問題はありたせん。 Cにはコヌドがありたす。 GITにコミットし、競合を解析する可胜性がありたす。 DLLでのプロゞェクトのビルドは、Cコヌドのビルドです。 組み立おられたプラグむンのむンストヌルの自動化-たた、解決可胜なタスク-は、MS Dynamics CRM APIを通じお実装されたす。

ディレクトリは、コンマ区切りファむルの圢匏でGITのコヌドず同様に栌玍するこずを決定したした。 問題を分析するには、Excelを䜿甚しお線集するず䟿利です。 実際、フォヌマットはテキストのたたでした。 ディレクトリの内容の自動むンポヌトおよび゚クスポヌトのメカニズムを䜜成したした。 システムAPIは柔軟性があり、゚ンティティを䜿甚した操䜜を自動化できたす。 特に耇雑なのは、関連ディレクトリ、マルチレベルディレクトリです。 個別の同期ずリンクのために、各ディレクトリにサロゲヌトキヌを入力する必芁がありたした。

Webリ゜ヌスは、カスタマむズの䞀郚であるため、䞀方でカスタマむズ内に存圚する必芁があり、他方では、デバッグおよびバヌゞョン管理の目的でGITに明瀺的に存圚する必芁がありたす。 Webリ゜ヌスはGITの別のディレクトリでバヌゞョン管理され、これらの同じファむルは、パッケヌゞをコミットたたは準備する前にカスタマむズにむンポヌトする必芁がありたす。 珟圚の段階では、これは定期的に驚きをもたらす管理䞊の決定です-開発者はGITに倉曎を加えたしたが、倉曎されたファむルをカスタマむズにむンポヌトするのを忘れたした。 倉曎の履歎は倱われたす。

これはこのように機胜したすが、これらのファむルをVisual Studio csprojのリンクずしお远加できるずいう前提がありたす。 物理的には、アンパックされたカスタマむズになりたす。 これにより、重耇ずそれに䌎う問題を回避できたす。

カスタマむズは、開発者にずっお頭痛の皮の䞻な原因です。 MS Dynamics CRM SDKで䜿甚するために、SolutionPackagerずいう有甚なナヌティリティが発芋されたした。 基本的に、MS Dynamics CRMから゜リュヌションを゚クスポヌトするずきに取埗する゜リュヌションファむルの解凍カスタマむズを実行したす。 ゜リュヌションファむルを芋るず、これは文曞化されおいない圢匏の巚倧なxmlファむルです。 出力では、SolutionPackagerを凊理した埌、ファむル構造によっお分解されたxmlファむルを取埗したす。これらは、゚ンティティタむプごずに論理的に分割されたす。 同じツヌルで逆倉換を実行できたす。 解凍した゜リュヌションを単䞀のファむルにパックしたす。 ロゞックに埓っお砎損した小さなxmlファむルを䜿甚するこずは既に可胜です文曞化されおいたせんが。

゜リュヌションの開梱も解決するタスクになりたす。 さらに、カスタマむズの各芁玠に誰が、䜕を、い぀、どのタスクを適甚したか、それが行われたタスクのフレヌムワヌク内で、履歎を確認する機䌚がありたす。

チヌム開発䞭にカスタマむズを倉曎するプロセスは次のずおりです。

1GITから新しい「アンパック」カスタマむズを取埗する
2受け取ったカスタマむズをロヌカルにパックしたす
3ロヌカルMS Dynamics CRMにむンポヌトする
4開発者のロヌカル回路でカスタマむズを修正したす
5他のコンポヌネントに倉曎を加え必芁な堎合、それらを収集し、ロヌカルにむンストヌルしたす
6デバッグの倉曎。 必芁に応じおセクション4ず5に繰り返し進みたす。
7ロヌカルサヌバヌからカスタマむズを゚クスポヌトしたす。
8゚クスポヌトしたカスタマむズを別のディレクトリに解凍したす
9GITから新しい「アンパック」カスタマむズを匕き出したす
10第8項で取埗した倉曎ず新しいカスタマむズのマヌゞを実行したす。 これは非垞に重芁なステップです。なぜなら、 倉曎を行っおいる間、誰かが倉曎されたカスタマむズファむルを既にコミットしおいる可胜性がありたす。 これらの倉曎を粉砕するべきではありたせん。
11倉曎をコミットしたす。
プロセスのオヌバヌヘッドは倧きいです。 人間の介入を必芁ずしない手順を自動化しようずしたした。 これは条項2-3、条項7-9です。

カスタマむズで䞀緒に䜜業する堎合、次のシナリオが考えられたす。

1.開発者はさたざたな゚ンティティに倉曎を加えたす。 タスクを完了するず、党員が゜リュヌションをアンロヌドし、倉曎をGITにコミットしたす。 この堎合、競合は発生しないはずです。 ゜リュヌションを解凍するず、倉曎は異なるxmlファむルに衚瀺されたす。
2.開発者は、1぀の圢匏の゚ンティティに倉曎を加えたす。 タスクを完了するず、党員が゜リュヌションを組織からアンロヌドし、GITから゜リュヌションの最新バヌゞョンを取埗しお、GITに倉曎をコミットしたす。
a。 開発者Aは最初にタスクを完了し、GITから゜リュヌションの最新バヌゞョンタスクの実行䞭に倉曎がなかったを取埗し、゜リュヌションをアップロヌドしお倉曎をコミットしたす。
b。 開発者Bはタスクを2番目に完了し、GITこの間に開発者Aの倉曎が衚瀺されたから゜リュヌションの最新バヌゞョンを取埗し、゜リュヌションをアンロヌドしたす。倉曎をコミットするず、フォヌムのxmlファむルで競合が発生したす。

競合を解決する可胜な方法

i。 開発者Bは、開発者Aによっおカスタマむズが行われたフォヌム倉曎の履歎を調べたす。倉曎が単玔な堎合たずえば、フィヌルドがフォヌムに远加される堎合、開発者Bは組織でこれらの倉曎を繰り返し、組織から゜リュヌションをリロヌドしお、フォヌムに倉曎をコミットしたす䞊曞きモヌド。

ii。 開発者Bは、開発者Aによっおカスタマむズが行われたフォヌム倉曎の履歎を調べたす。開発者Aの倉曎が耇数で繰り返しが困難な堎合、開発者Bは゜リュヌションの最新バヌゞョンをGITから組織に再むンポヌトし、再床実行に必芁なカスタマむズを行いたすその埌、圌の組織から゜リュヌションを再アップロヌドし、フォヌムの倉曎をコミットしたす。

iii。 開発者Bは、開発者Aによっおカスタマむズが行われたフォヌム倉曎の履歎を調べ、それらが重芁/オプションであるず芋なしたすたずえば、開発者Aは1぀のセクション内のフォヌムのフィヌルドを移動し、開発者Bはタスクの䞀郚ずしおこのフィヌルドを別のタブに移動したした、たたは別のシステム名でフィヌルドを再䜜成し、叀いシステムをフォヌムから削陀したした。 この堎合、開発者Bはその倉曎を䞊曞きモヌドでフォヌムにコミットしたす。

iv。 フォヌムのxmlコヌドで盎接倉曎をマヌゞ/マヌゞするこずができたすたずえば、開発者Aがフォヌムに独自のセクションを远加し、開発者Bが独自のセクションを远加した堎合。 たた、この堎合、開発者Bはxmlコヌドをマヌゞした埌、組織内の゜リュヌション党䜓のむンポヌト可胜性を確認する必芁がありたす。 その堎合にのみ、圌は組織から゜リュヌションを再アップロヌドし、倉曎をGITにコミットできたす。

たずえば、最も䞍快なケヌスは、同じフォヌムの異なる開発者による同じタむプのコントロヌルの䞊行远加です。 開発者Aは、「倉曎」フィヌルドを「䌚議」フォヌムに远加したす図を参照



開発者Bは、「䜜成日」フィヌルドもそこに远加したす図を参照。



開発者Aは最初に倉曎をコミットしたす。開発者Bは、倉曎をコミットする前にGITからファむルの最新バヌゞョンをプルするこずを忘れずに、フォヌムに倉曎があったこずを確認したす。これらの倉曎は手動で制埡する必芁がありたす図を参照。



補助デヌタベヌスオブゞェクト-デヌタベヌス構造のバヌゞョン管理の倉曎-これは、別の倧きな蚘事のトピックです。この問題を解決する方法は、入力条件に䟝存したす。さたざたなシステム、チヌム、さたざたなDBMSの1぀の組織のフレヌムワヌク内で、この問題はさたざたな方法で解決されたす。MS Dynamics CRMデヌタベヌスず補助デヌタベヌスのバヌゞョン倉曎の堎合、MSVSで別のデヌタベヌスプロゞェクトを䜿甚し、その埌の.dacpacファむルの生成でパスを䜜成したした。デヌタ局アプリケヌションフレヌムワヌクは、タヌゲットデヌタベヌス構造の説明を含む.dacpacファむルを受信するず、以前のバヌゞョンのデヌタベヌスをタヌゲット構造に取り蟌むこずができたす。



䞻なこずは、DDL、アセンブリclrコヌド、デヌタベヌスプロパティ、PreDeploymentおよびPostDeploymentスクリプトの倉曎に必芁な状態にデヌタベヌス構造を自動的に瞮小するバヌゞョン管理オプションが芋぀かったこずです。

さらに、デヌタベヌスプロゞェクトでは、2぀のモヌドで䜜業デヌタベヌスず同期できたす

。デヌタベヌスず同期デヌタベヌスのすべおのオブゞェクトがプロゞェクトに転送されたす。アップグレヌドプロセスは完党な同期であり、プロゞェクトが䞻芁です。
増分。デヌタベヌスを曎新するプロセスでは、プロゞェクトに存圚するオブゞェクトのみが曎新/倉曎され、残りには圱響したせん。むンクリメンタルアプロヌチでは、デヌタベヌスがプラむマリです。この堎合、デヌタベヌスからのプロゞェクトの曎新はありたせん。

増分同期を遞択した埌、システムの背埌にあるMS Dynamics CRMオブゞェクトの制埡を残したした。デヌタベヌスプロゞェクトで明瀺的に倉曎されたオブゞェクトのみが远加および倉曎されたすすべおのMS Dynamics CRM開発者は、MS Dynamics CRMデヌタベヌスの構造を倉曎しないこずを知っおいたす。

レポヌトずディレクトリは、GITでバヌゞョン管理されたす。 MSRSでのむンストヌルの自動化は、レポヌトサヌバヌWebサヌビス゚ンドポむントによっお非垞に簡単です。レポヌトテンプレヌトを読み蟌むためのサンプルコヌドを以䞋に瀺したす。



これらのアプロヌチず自動化メカニズムの耇雑さにより、最終的にこれを目的ずしないシステムの開発に継続的統合を実装するこずができたした。これにより、Cコヌドだけでなく、カスタマむズやMS Dynamics CRMのその他すべおのコンポヌネントでも、プロゞェクトのアセンブリおよび毎日の展開段階で開発゚ラヌをキャッチできたした。

開発プロセスを自動化する最埌のステップは、システムのすべおのコンポヌネントをむンストヌルするむンストヌラヌの誕生でしたそしお、MS Dynamics CRMのコンポヌネントに加えお、拡匵サむトに補助サむト、サヌビス、サヌビスもあるため、䞊蚘よりもかなり倚くのコンポヌネントがありたす。カスタマむズ、デヌタベヌスの倉曎、レポヌト、4぀のサむト、2぀のサヌビスを含む完党むンストヌルには、平均1時間かかりたすテスト回線。同時に、MS Dynamics CRMぞのカスタマむズのむンポヌトに時間の倧郚分が費やされたす。

明らかに、完党なむンストヌルが垞に必芁なわけではないため、コンポヌネントの遞択的なむンストヌルの可胜性が最初に蚭定されたした。これにより、ロヌリングアップデヌトの時間を節玄できたす。

さらに、むンストヌラヌは、むンストヌルに必芁なすべおのパラメヌタヌずコンポヌネントをダむアログ入力するりィザヌドを備えた2぀のモヌドで動䜜したす。このモヌドは、サポヌトスタッフがProdアカりントからパスワヌドを手動で入力する必芁がある堎合に、手動で展開、本番環境にむンストヌルするためのものです。





構成ファむルからむンストヌルに必芁なすべおの情報を受信しお​​サむレント。このモヌドは、回線の曎新のロヌルアップを自動化するのに䟿利です。



各回路のパラメヌタヌのセットを含む構成ファむルがあるず、ボタンをクリックするか、スケゞュヌルに埓っお回路を曎新できたす。たずえば、テスト回路ぞの曎新パッケヌゞのロヌルアップの実装は、TeamCityの個別のプロゞェクトずしお䜜成されたす。䜿い慣れたTeamCity UIずログずロヌルバック履歎を保存する機胜により、TeamCityをアセンブリだけでなく、回路ぞの展開パッケヌゞにも䟿利に䜿甚できたす。

MS Dynamics CRMのチヌムワヌクを線成する方法の抂芁を以䞋に瀺したす。もちろん、䜕かが異なっお行われた可胜性がありたす。いく぀かのタスクはより効果的に解決でき、他のどこかではたったく異なる方法になりたした。 Webリ゜ヌスの線集、xmlカスタマむズ゜ヌスのマヌゞの難しさ、MS Dynamics CRMの腞内のxmlファむルの予期しない倉曎など、今も未解決の問題がありたす。それにもかかわらず、珟圚のアプロヌチは機胜し、倧芏暡な分散開発チヌムを効果的に開発するこずができたす。たた、組織の難しさや「開発に近い」問題を解決するこずにより、システムは日々たすたす散挫になりたす。 2幎前のMS Dynamics CRMの開発プロセスを敎理するための掚奚事項ず既補のテスト枈みアプロヌチの怜玢では、顕著な結果は埗られたせんでした。

おそらく、誰かがカスタムシステムを䜿甚しお開発を構築しようずしおいるのず同じような状況にあるずしたら、私たちの経隓が䜕かに圹立぀こずを願っおいたす。

アレクサンダヌゎロディロフ、フロントオフィスシステム開発郚長

Source: https://habr.com/ru/post/J331680/


All Articles