R.Tanaka.Ichiro's Blog

主にC# な話題です

目次

Blog 利用状況

ニュース

2008年9月25日

アセンブリの分け方が悩ましい

アセンブリの分け方

の規則を徹底しようと思っています。

そこで、皆さんは実際どうしているのかを聞いてみたくなりました。

例えば、マスターと実データの二つのデータ編集ツールがあって、これらのツールは一つのアプリケーションとして関連性が高いとします。

このような時、最初は以下のように分けていました。

R.Main
R.Widows.Forms
R.Model
R.Data

各アセンブリが何をするのかは名前の通りなので言及しませんが、このような分類だと参照するアセンブリの依存関係も綺麗に縦割りになります。
しかし、最近は、マスターと実データという機能別にアセンブリを分離する方が、分かりやすいし処理効率が良いのではないかということで、これも実践しています。

R.Main
R.RealData
R.Master

このように分類しておくと、アプリケーションが肥大化するほどに、利点が大きくなります。
例えば、印刷と環境設定画面の 2 つの機能を追加してみます。

R.Main
R.RealData
R.Master
R.Print
R.Config

上記のように機能が追加された時、アセンブリ単位で分類できていれば管理も楽ですし、印刷や環境設定など利用する可能性の低い機能が分離されていることで処理効率も高くなるであろうことが予想されるからです。
そこで、最近は以下のようにアセンブリを細かくしています。

R.Main
R.Widows.Forms
R.Model
R.Data
R.RealData
R.Master

上の 3 つは、R.RealData, R.Master で共通して利用するアセンブリで依存関係は以下のようになります。

R.Main
 R.RealData
  R.Widows.Forms
  R.Model
  R.Data
 R.Master
  R.Widows.Forms
  R.Model
  R.Data

小さいアプリケーションは、ひとつのアセンブリにまとめてしまうのですが、結局は後で分離することが多いので今後は最初から分けてしまうかと思っています。

posted @ 13:17 | Feedback (4)