- - PR -
Exeファイルが大きいので別のプロジェクトにしようかと思いましたが。。。
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-01-27 11:09
ここの掲示板を参考にさせていただき、VB.NETでの開発をしておりますが、
VB6までは、アプリケーションのファイルサイズが大きくなると重くなるので、 違うExeを作成して、呼び出しておりました。 入力系の画面と、マスタメンテ画面は、別Exeにするといった感じです。 クライアントのマシンが非力なため、文句を言われる可能性がありまして。 クライアントの環境は、セレロン700MHz,Mem128MB(256MBに変更予定)で、 現在Exeサイズが1.3MBですが、これから 製造が本格化すると10倍くらいの量になると思います。 VB.NETですと、プロジェクトの下にフォルダがあり、 クラスを共通で使用するというのが難しいですが、 皆さんはどのようにしておられますか? それとも、そもそもExeを分けるという考え方は しないほうが良いのでしょうか? WindowsApplicationで、Exeのサイズはどのくらい までなら気にしないでも良いと思われますか? その他にも良い方法がありましたら教えてください。 | ||||
|
投稿日時: 2004-01-27 11:20
よくわからないのですが、プロジェクトの下にフォルダがあると、なぜクラスを共通で使用するのが難しいですか?ここで「プロジェクト」や「フォルダ」は、何を指しますか? まず、「開発プロジェクト」全体で1つの“ソリューション”を作ります。そして、1つの「機能」ごとに1つの“プロジェクト”を作ります。このとき、複数の「機能」で使い回す、共通なクラスは1つの“クラスライブラリ”として“プロジェクト”を作成します。 「開発プロジェクト」を投影した“ソリューション”の階層ができたら、“参照”を利用して、共通クラスを“参照追加”します。 「」と“”の使い分けに注意してください。「」は実際の仕事の単位、“”はVS.NETでの単位です。 | ||||
|
投稿日時: 2004-01-27 11:41
共通部分はDLLにして、ユーザーインターフェース(UI)担当のEXE はUI毎に分けるのが良いと思います。多層化の際、見通しが良くなります。 | ||||
|
投稿日時: 2004-01-27 15:01
Jitta さん、iStationさんコメントありがとうございました。
DLLにしてしまう、という考えがなかったため、 苦労していました。 Exeのプロジェクトの下に、共通のクラスのソースを置いておいて、 それをほかのプロジェクトでも使用するようになるのだろうと 思っていました。 早速クラスライブラリを作成して、 クラスライブラリと、 主に使うProjectと、 マスタメンテ画面を集めたProject3つに分けてみました。 そのときに、Projectごとに参照設定がありますが、 クラスライブラリで使用する参照設定をほかのプロジェクトでも 使用するというようにはならないのでしょうか? Oracle接続用のDataAccessコンポーネントや、 サードパーティ製のコントロールの参照なので、 どのProjectも共通なので、 クラスライブラリで設定している参照設定を参照する というようにはしなくて良いでしょうか? 変な質問ですみません。 | ||||
|
投稿日時: 2004-01-27 15:07
実際にやってみればわかりますが、必要ありません。もちろん、共通ライブラリが参照するので、実行時にDLLが参照可能でなければなりませんが、実際に使うのは共通ライブラリですから、デザイン時に参照できなくてもかまいません。 もっとも、共通ライブラリを通して、ソース上でサードパーティコントロールにアクセスする(var.commLib.thirdPartyというようにアクセスする)なら、参照に加えなければなりません。 | ||||
|
投稿日時: 2004-01-27 15:47
コントロールにアクセスするときに使用する
定数などを、各フォームで使用しているため、 Projectに参照を追加しないといけないようでした。 Jitta さんありがとうございました。 さらに変な質問なのですが、 DLLと、Exe2つ(計3つのProject)に分けたのですが、 もう一方のExeを起動するときには、 Shell関数を使うものと思っていましたが、 もしかして、ほかに良い方法はありますでしょうか? 同じSolutionに登録してあるので、 DLLのように、1から起動しなくても良い方法が ありましたら教えていただけないでしょうか? | ||||
|
投稿日時: 2004-01-27 17:18
DLLは、実際には.NET Frameworkがやっているのですが、DllLoadか、DllImportsか、そんな関数をコールしなければなりません。同じように、.NETの流儀ではProcessクラスを用いて起動します。 | ||||
|
投稿日時: 2004-01-27 17:31
たくさん教えていただきありがとうございます。
DllImports、Processクラス、、いろいろあるんですね。 両方ともはじめて聞きました。 VBの知識だけで.NETに移ると、どれを使ってよいのかわからなくなります。 Exe起動のときもShell関数で起動しないほうが良いのでしょうか。 |