プロジェクト間の依存関係の視覚化

最近、Mark Cliftonがソリューション内のプロジェクト間の依存関係を見つけることに専念した記事で CodeProjectに出会いまし 。 残念ながら、提示されたプログラムはグラフ自体を生成しなかったため、 Yevgeny KucherukのWindsorコンテナのコンテンツを視覚化するアプローチに触発され、プロジェクト間の依存関係に同じ機能をすばやく実装することにしました。 実際、ここで何が起こったのか。





まず第一に、印象的な例が必要なので、さまざまなIoCフレームワークのプロジェクトがどのように見えるかを示すことにしました(以下の写真をクリックできます)。



ユニティ:









StructureMap:









NInject:









Autofac:









上記のグラフはプロジェクトファイルを分析して作成されたものであり、「外部」依存関係(ソリューション外の依存関係)は含まれていません。 それらは、.csprojファイルを解析することによって形成されます。 プロジェクトファイル。 さらに、すべての情報が個別のDictionary



で受信されると、.dot形式で記述し、 GraphVizを使用してレンダリングできます。



問題は-なぜこれが必要なのですか? IoCコンテナーが何に結び付けられているかの概要を取得するためにレンダリングするのに役立つように、通常、接続性のトピックに関する通常のソリューションを分析する必要があります。 たとえば、同じNDependを実行します。 また、時々、鳥瞰図からソリューション全体を見たい場合があり、私のツールはそれを行うのに役立ちます。



さて、試してみませんか? 「はい」の場合、 GraphVizをダウンロードしてからソースをダウンロードします。 インターフェイスはすべて明確なので、説明しません。とにかく、あなたは(私のように)あなたの目的に合わせてプログラムをカスタマイズするので、ドット形式のドキュメントを読むことをお勧めします。 頑張って



PS:特に美しいソリュシュナ伯爵を生み出した場合-以下に投稿してください。 事前に感謝します。



All Articles