1

dllツールを整理するための最良の方法を知りたいです。

たとえば、会社が実装しているすべてのクラスツールを含むプロジェクトを作成できます。たとえば、文字列を処理するクラス、ファイルを処理するクラスなどです。つまり、多くのプロジェクトで使用できるツールを備えた汎用dllです。これは、たとえば一般的なmyCompaty.Utils.dllになります。

他の方法では、作業の種類ごとに、多くのdllがあります。たとえば、myCompany.Utils.Files、他のmyCompany.Utils.Strings...などを使用できます。

最初のオプションでは、dllは1つしかありませんが、2人が何かを追加または修正する必要がある場合、1人しか作業できません。これは、2人が同時に作業する場合、1人が新しいdllをコンパイルすると、他の人は仕事を失います。

作業の種類ごとに1つずつ、多くのdllがある場合、2人が同じdllを変更する必要があるのはより困難です。これは、各人が1つのdllを担当している可能性があるためです。ただし、問題は、このようにアプリケーションを展開すると、プログラムディレクトリに多数のdllが存在することです。

だから私は、dllが作成されるときのベストプラクティスがどれであるかを知りたいです。

ありがとう。

4

3 に答える 3

6

あなたの質問から、あなたがバージョン管理システムを使用していないことは明らかです。Tortoise SVNのようなものをチェックしてみてください。そうすれば、同じソフトウェアで複数の人が作業しても問題はありません。

DLLに関して-私は複数のDLLを持ち、それぞれが特定のタイプのユーティリティメソッドのみを含んでいます。展開が簡単になります。逆の場合、つまり、すべてのユーティリティメソッドに対して単一のDLLがある場合は、その中の何かが変更されるたびに再デプロイする必要があります。ファイルの操作を担当するコードを変更し、DLL全体を出荷する必要があります。無関係なコードも含まれます。一方、複数のDLLがある場合は、実際に変更されたDLLを再デプロイするだけで済みます。

于 2012-07-07T15:28:58.850 に答える
2

基本的には、ライブラリが所有するクラス、インターフェイス、およびデリゲートの数によって異なります。

「Company.Shared.dll」に3000のクラスがあり、Webアプリケーションを開発している場合を想像してみてください。3000クラスのうち600クラスはモバイル開発用です。Webアプリケーション開発でそれらを使用する可能性はどのくらいありますか?ゼロ

では、Web開発関連のクラスのみが必要なのに、なぜWebアプリケーション開発用に3000クラスのアセンブリをデプロイするのでしょうか。ライブラリのサイズは、Web開発では機能しない多くのもののコードを最初に含めることができるため、Web固有のサイズよりも大きくなります。

そのため、Company.Shared.Web.dllという共有ライブラリと、Company.Shared.dllというすべての開発シナリオに共通のライブラリがあります。

上記のロジックは、他のケースやシナリオに使用できます。

于 2012-07-07T15:28:20.597 に答える
1

バージョニングシステムとは別に(開発者の半数以上がプロジェクトに取り組んでいる場合は必須です)、組織が他のすべてのプロジェクトが依存するベースライブラリ(または複数のライブラリ)を変更できるようにするのは本当にクレイジーです。これは非常に迅速に混乱して進化します。

私の店では、1人か2人だけがそこで何でも変更することができます。そして、これらの人たちは最も熟練した貴重な同僚です。

ライブラリに存在する機能の細分化については、大きな1つのDLLには関係ありません。コードを少し変更した場合でも(コードが成熟していて十分にテストされている場合、これが発生することはめったにありません)、すべてを再配布する必要があるのは事実ですが、このプロジェクトまたはそのプロジェクトに出荷されたすべてのdllを追跡することはコストを上回ります単一のDLLの

于 2012-07-07T15:46:33.063 に答える