1


0

…​if there is such a thing. Here’s an image of two approachs for .NETアプリケーションでDLL /参照を構築する:http://www.experts-exchange.com/images/t80668/compArch.png アプリはWebサイト(この場合)またはwinformです。 各ボックスはDLLを表します。 winformアプリの場合は、単に「webcontrols」を「winformcomponents」に置き換えます。

最初の(一番上の)画像は私が好きなものです。 基本的なWebコントロールの「一部」を拡張し、他のWebコントロールを直接使用することをお勧めします。 2番目の画像では、インターフェイスを介してWebコントロールを拡張できます。 私にはそれはやり過ぎであると思います。なぜならあなたは単に修正なしで既にそこにあるものを使いたいのかもしれないからです。 どちらが優れていて、長所/短所は何ですか?

最初のイメージは、最も一般的でない構成要素(例外、fileIO、定数など)をcommon.dllに入れます。 2番目の画像は、アプリのビジネスロジックと共通部分を1つのDLLにまとめたものです。 どちらが優れていて、各apporachの長所/短所は何ですか?

2 Answer


1


DLLをロードすることは無視できないほどのコストがかかるので、多くの参照を持つことは通常悪いです。 それほど洗練されていないかもしれませんが、モジュールを少なくすることでパフォーマンスが向上します。 私たちのクラフトでもそうであるように、あなたは完全なモジュール化の優雅さとパフォーマンスの厳しい現実との間のバランスを見つけなければなりません。 そして私達の技術でいつものように、あなたはあなたがあなたのアプリケーションのパフォーマンスを測定するためにプロファイリングを始めるまでどのようなバランスがあるのか​​わかりません。


0


これはプログラマーの好みによるものです。

それはすべて本当に依存関係に帰結します。 1つのDLLにもっと多くのことがあれば、そのDLLにもっと多くの依存物が自然に作成されることになります。

私は個人的にはこれらの理由からMSの構造に似た線に沿って進む傾向があります。

  • カスタム「フレームワーク」の初心者が見つけやすくなります 彼らが望むもの(例: CompName.Web.UI`と CompName.Data`。

  • それは依存関係を「明白な」選択に減らすのを助けます。 私もそうじゃない 「CompName.Common」タイプのDLLは、可能性のある依存関係を明確に示していないため、「CompName.Web.UI」はすべてのWebアプリで使用される可能性が高いことを示唆しているため、熱心です。

  • DLLの内容がより「関連性がある」ため、明らかなサイズの縮小。

アプリ内の層のためのDLLは意味をなします、その中の型はビジネスモデルに必要な型だけであるべきです、他のオブジェクト(例えばユーティリティ、データアクセスなど)はそれら自身のライブラリにあるべきです。