tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルWindowsアプリケーションとクラスライブラリ間の値渡し
記事No4213
投稿日: 2006/09/06(Wed) 20:53
投稿者KEN
いつもお世話になっております。

Windowsアプリケーションプロジェクト(EXE)で宣言した変数や定数などを
クラスライブラリプロジェクト(DLL)で使いたいのですがどのように値を渡すことができるかわか
りません。
ファンクションの引数として渡す方法はわかるのですが変数や定数を共有して使う方法はないの
でしょうか?

どなたかご教授のほどよろしくお願いいたします。

[ツリー表示へ]
タイトルRe: Windowsアプリケーションとクラスライブラリ間の値渡し
記事No4222
投稿日: 2006/09/07(Thu) 16:23
投稿者るしぇ
実行ファイルとライブラリの関係として、逆です。

クラスライブラリプロジェクトをWindowsアプリケーションプロジェクト
から参照するようにしてください。

[ツリー表示へ]
タイトルRe^2: Windowsアプリケーションとクラスライブラリ間の値渡し
記事No4223
投稿日: 2006/09/07(Thu) 17:52
投稿者KEN
るしぇさん、返信ありがとうございます。

逆だったんですね。
VB6のときはモジュールに定数やグローバル変数を定義していました。
VB.netだと定数やグローバル変数をクラスライブラリに定義して
他のクラスライブラリやWindowsアプリケーションプロジェクトから
参照するやり方が一般的なのでしょうか?

[ツリー表示へ]
タイトルRe^3: Windowsアプリケーションとクラスライブラリ間の値渡し
記事No4224
投稿日: 2006/09/07(Thu) 20:44
投稿者魔界の仮面弁士
> VB.netだと定数やグローバル変数をクラスライブラリに定義して
定数であれ何であれ、どこに何を置くかは、機能単位に決める事になると思います。
(内容によっては、変数というよりも .settings ファイルにて管理される物などもあるでしょう)


> 他のクラスライブラリやWindowsアプリケーションプロジェクトから
> 参照するやり方が一般的なのでしょうか?
どうするべきかはケースバイケースだと思いますが、大雑把に言えば、
コードの管理自体には、以下の 3 層があるかと思います。


☆「それぞれの機能(メソッドや変数など)を、どのような名前空間/クラスに分けていくか」
機能的に関連する変数や定数なら、それぞれ適切なクラスを作って管理した方が楽だと思います。
たとえばメッセージボックス関連の定数が System.Data.Odbc 名前空間の下に配置されていたり、
VB 専用の定数が、Microsoft.CSharp 名前空間の下に配置されていたりしたら困りますよね。


☆「*.vb のコードファイルとして、それらをどのように分けていくか」
VB6 では、1 つの *.cls ファイルにつき、1 つのクラスが定義されるだけでしたが、
VB.NET では、1 つの *.vb ファイルに、複数のクラスを定義することができますし、
VB2005 からは、1 つのクラスを、複数のファイルに分けて作成することさえもできます。


☆「それらのファイルを、プロジェクトとしてはどのように分割するか」
1つのアプリを、複数のプロジェクト(exe + dll)として作成することもできますし、
1つのアプリで、1つのプロジェクトだけという作り方もあるでしょう。
あるいは、1つのプロジェクトが複数のアプリから共有されるケースもあります。


-----
で…今回の場合、話題に挙がっているのは『定数やグローバル変数など』に限った話なので、
とりあえずはクラスや名前空間などの分け方のみを気にすれば良いのでは無いでしょうか。

そしてプロジェクトをどのように分けるかは、規模やメンテナンスの容易さなどを検討しながら、
また別に考えれば良いかと思います。というよりも、どんなクラス等を作っていくのかが
はっきりしない内は、プロジェクトの分け方までは慮れないでしょうしね。


ちなみにうちの開発だと、基本画面部(exe)、データ層(dll)、ビジネスロジック(dll)、および
共通部品(自作コントロールdllなど)などで、3個〜20個程度にプロジェクトを分けていますが、
小規模開発では単独の exe プロジェクトにしてしまう事も多いです。

[ツリー表示へ]
タイトルRe^4: Windowsアプリケーションとクラスライブラリ間の値渡し
記事No4246
投稿日: 2006/09/11(Mon) 20:13
投稿者KEN
返信ありがとうございます。

今回は大規模ではない開発なのですが、今後も部品等を利用していきたいのでDLLを作成したと思い
ます。

丁寧にコードの管理について講義していただいたのですが、
☆「それぞれの機能(メソッドや変数など)を、どのような名前空間/クラスに分けていくか」
についてはしかわかりませんでした。

この意味がわかるようになるために日々精進していきたいと思います。


今回質問させていただいた点は変数、定数定義用のDLLを一つ作りそこをEXEや他のDLLから参照して
いくやり方にしようと思っています。
ありがとうございました。

[ツリー表示へ]