やじゅ@アプリケーション・ラボ わんくま支局

目次

Blog 利用状況

ニュース

プロフィール

MSMVP

業務アプリケーションのアセンブリ(EXE,DLL)構成方法について

私が関わった過去および現在のプロジェクトの構成方法はだいたい下記の構成であった。

私は最初の設計から携わることなく、途中参加ばかりでプロジェクトの構成方法に意義を唱えることはなかったが、今関わっているプロジェクトに関しては設計方式から携わっているため、過去の経験から④の方法で行っている。
 

プロジェクト その①
 言語 VB6
 1つのプロジェクトに機能ごと画面作成、共通処理はモジュールのみ
? 実行ファイル 1つのEXEファイル
 prjWankuma
??? Module.bas??? 共通処理(文字列加工、算術処理、DBアクセスなど)
??? frmLogin????????? ログイン画面
  frmMenu??????? メニュー画面 
??? frmSeikyu ????? 請求書入力画面 
??? frmJuchu ?????? 受注入力画面
??? frmKokyaku??? 顧客マスタ画面

プロジェクト その②
 言語 VB6
 共通クラス群はDLLとし、機能ごと画面作成したものはEXEとする
??? Module.bas??? 共通処理(定数の定義のみ)
  Common????????? 共通処理(文字列加工、算術処理、DBアクセスなどのクラス群)
??? frmLoginMenu??ログイン/メニュー画面
??? frmSeikyu ????? 請求書入力画面 
??? frmJuchu ?????? 受注入力画面
??? frmKokyaku??? 顧客マスタ画面

プロジェクト その③
 言語 VB.Net2003
 共通クラス群はDLLとし、機能ごと画面作成したものはEXEとする    

?? DLLファイル群
??? Common???????   共通処理(文字列加工、算術処理などのクラス群)
??? ControlLibrary  継承元フォーム、各基本コントロール
??? DBAccess    DBアクセス
??? MasterSearch  各マスタ検索画面
?? EXEファイル群
??? frmLogin???????? ログイン画面
  frmMenu???????? メニュー画面 
??? frmSeikyu ???? 請求書入力画面 
??? frmJuchu ?????? 受注入力画面
??? frmKokyaku???? 顧客マスタ画面
??? …       など

プロジェクト その④
 言語 VB.Net2005
 共通クラスおよび機能ごと画面作成したもの全てをDLLとする
 ログイン/メニュー画面のみをEXEとする
   
?? DLLファイル群
??? Common???????  共通処理(文字列加工、算術処理などのクラス群)
??? ControlLibrary 継承元フォーム、各基本コントロール
??? DBAccess    DBアクセス
??? frmSeikyu ??????? 請求書入力画面 
??? frmJuchu ????????? 受注入力画面
??? frmKokyaku??????? 顧客マスタ画面
??? frmTokuiSearch 得意先マスタ検索画面
??? …       など
?? EXEファイル群
??? frmLoginMenu??? ログイン/メニュー画面

下記の参照リンクを見る限り、現在④の方法で問題ないようですね。

.NETのメモリ使用量の考察
http://blog.yaju.jp/200702/article_5.html#comment
でも記述したが、
画面を起動して閉じてを繰り返していくと2MBずつメモリ使用量が増え、
やがてリソース不足となる現象が発生した。
その解決方法として、フォームクローズ時に、フォームに定義してある
全てのコントロールに対してxxxx = Nothingとすることで、ある一定以上
メモリが増加しなくなり、リソース不足を解消できた。

DLLでは使用しているプロセスが終了しないかぎりメモリに残り続ける
規模によっては、サブシステムごとにプロセスを分けるか、
AppDomainを作成して、そこでDLLを実行して終了時にAppDomainを
Unloadするといった方法も考慮した方が良い。

VS2005でのプロジェクトの分割単位とソースの配置について
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36566&forum=7
画面が多数ある場合のプロジェクト生成方法について
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=27533&forum=7
サブシステムをDLLとして作成することは問題ないですか?
http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-23993.htm
アプリケーション作成時に機能別にexeを分けていますか?
http://bbs.wankuma.com/index.cgi?mode=al2&namber=1778&KLOG=10
転ばぬ先の杖 VBに最適な開発手法を考える
http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9804/devtech/
アセンブリの概要
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpguide/html/cpconAssembliesOverview.asp

投稿日時 : 2007年10月19日 2:58

コメントを追加

# 先週の技術的な備忘録 2007/10/22 2:22 やじゅ@アプリケーション・ラボ わんくま支局

先週の技術的な備忘録

タイトル
名前
URL
コメント