- PR -

共通ライブラリクラスについて

投稿者投稿内容
えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2006-04-24 16:53
あいや間違えた、訂正。
引用:

じゃんぬねっとさんの書き込み (2006-04-24 16:36) より:
引用:

えんぞ@?さんの書き込み (2006-04-24 16:33) より:

VSのバージョン(もしくはエディション!?)によっては、「リンク ファイル」がなかったりしますね。


(;゚Д゚) えー!?


「(;゚Д゚) えー!?」が正解でした。すんません。
たまたま使っていた VS2002 は Webアプリを開いており、かたや VS2003 はWinアプリを開いてました...。そりゃWebアプリにはないわ...というオチ。orz

# 早くもGWボケ...
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-04-24 22:12
引用:

NEOさんの書き込み(2006-04-22 23:43)より:

共通メソッドを含んだCSファイルをあるフォルダに置き、複数のプロジェクトがそのフォルダにあるCSファイルそのものを(ローカルコピーせずに)プロジェクトにて参照することです。
もちろんDLLを作らずに・・・。


 DOS の頃は、ディスクの消費量を減らすという観点から、DLL を減らすのがトレンドでした。
# 小さいファイルほど、無駄が多い

 しかし、トレンドはどんどん変わっています。

 DLL Hell 回避の観点から、各プロジェクトに特化した DLL を作るのが、最近のトレンドです。
 DLL ではありませんが、DLL Hell で発生するのと同じ問題が発生する可能性があります。
 また、DLL は、必要になるまでロードされません。よって、消費するメモリ量を減らすという点でも、DLL 化する方がいいと思います。
# じゃんぬさんの「アセンブリが太る」


 書かれている内容からは、「チーム開発で使用する、共通関数を定義したい」という案件だと思います。この場合、1つのソリューションに複数のプロジェクトを作成し、プロジェクトごとに担当者を割り振るのがいいと思います。

〆 written by Jitta@わんくま同盟 on 2006/04/24
□ Microsoft MVP for Visual Developer ASP/ASP.NET October, 2005 - September, 2006
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-04-27 09:20
引用:

Jittaさんの書き込み (2006-04-24 22:12) より:

 しかし、トレンドはどんどん変わっています。

 DLL Hell 回避の観点から、各プロジェクトに特化した DLL を作るのが、最近のトレンドです。



これについて、以前から知りたいと思っていたのですが、DELL Hell は SideBySide
で解決されたと言われていますが、まだ生じることはあるのでしょうか?

引用:

Jittaさんの書き込み (2006-04-24 22:12) より:

 また、DLL は、必要になるまでロードされません。よって、消費するメモリ量を減らすという点でも、DLL 化する方がいいと思います。
# じゃんぬさんの「アセンブリが太る」



よく、オンラインで配布されているソフトで、exe と dll が1つずつの組合せにな
っていて、exe が小さくて dll がやけにでかかったりしますが、この場合も上記の
ようなメリットはあるのですか?
それとも、小さな dll を複数作るほうが効率が良いのですか?
まいるどきゃっと
大ベテラン
会議室デビュー日: 2004/08/12
投稿数: 135
お住まい・勤務地: 群馬
投稿日時: 2006-04-27 10:01
引用:

R・田中一郎さんの書き込み (2006-04-27 09:20) より:

よく、オンラインで配布されているソフトで、exe と dll が1つずつの組合せにな
っていて、exe が小さくて dll がやけにでかかったりしますが、この場合も上記の
ようなメリットはあるのですか?
それとも、小さな dll を複数作るほうが効率が良いのですか?



たぶんそれは、管理しやすいとか開発ツールの特性とか二重起動されたときの処理の関係上そうしているとか、メモリ効率とは別の理由だと思います。

元々の質問のようなケースはDLL化するべきですが、むやみにメモリ効率のためにDLLを分割するのはどうかと思います。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-27 10:01
引用:

R・田中一郎さんの書き込み (2006-04-27 09:20) より:

よく、オンラインで配布されているソフトで、exe と dll が1つずつの組合せにな
っていて、
exe が小さくて dll がやけにでかかったりしますが、この場合も上記のようなメリットはあるのですか?
それとも、小さな dll を複数作るほうが効率が良いのですか?


アセンブリの分け方に関する本来のメリットは保守性ですよ。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-27 10:16
あいや、被ってしまいましたね。(;^-^)

引用:

R・田中一郎さんの書き込み (2006-04-27 09:20) より:

それとも、小さな dll を複数作るほうが効率が良いのですか?


モジュールは必要になった時に初めてロードされます。
実際には CLR はモジュールを直接ロードできないので、アセンブリがロードされます。

アセンブリはアプリケーション ドメインで管理されます。
一旦、ロードされるとアプリケーション ドメインが解放されない限りアンロードできません。

その他の資源については、適宜 GC がヒマを見つけて回収してくれます。
リソースに関しては効率を心配する必要はありません。
細かい部分については、保守性を重視すれば、自然と望ましい状態になるものです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-04-27 11:07
引用:

モジュールは必要になった時に初めてロードされます。
実際には CLR はモジュールを直接ロードできないので、アセンブリがロードされます。


少し補足。
マルチモジュールアセンブリは、プライマリモジュールをまずロード。必要になった時点でモジュール単位でロードが可能。
なので、あまり使われない型等をサブモジュールに定義していたら、メモリ効率という面で見れば良いかも。何度もロードするという手間はありますが。

_________________
囚人のジレンマな日々
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-04-27 14:22
まいるどきゃっとさん、
じゃんぬさん、
囚人さん

ありがとうございました。
なるほど、やはり管理(保守性)で良かったのですね。

Jittaさんの「また、DLL は、必要になるまでロードされません。よって、消費する
メモリ量を減らすという点でも」の部分に妙に納得して一人で過剰に反応してしま
いました。

変な捕らえ方をしてしまって、申し訳ありませんでした。>Jittaさん

スキルアップ/キャリアアップ(JOB@IT)