- - PR -
画面が多数ある場合のプロジェクト生成方法について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-01-16 18:57
画面数が50以上はありそうなんですが、以下の方法が考えられると思います。
1)全画面1プロジェクトとして生成 2)1画面1プロジェクトし画面数分のプロジェクトとして生成 3)関連性のある画面を1つにまとめて、複数のプロジェクトとして生成 単純に考えれば、1)だと思うのですが、リソースをどれだけくうか分からないこと、実装するマシンのスペックも分からないことから、1つのプロジェクトにまとめるのは危ないのではないかと危惧しています。 (実装したアプリは、メニュー画面から詳細メニューへと遷移していきますが、メニュー画面が複数(3つ、4つほど)起動できるようにしないといけません) ただ、プロジェクトを分けた場合、画面どうしでの入出力情報のやりとりを行うために、何かしらの実現方法を考えなければいけません。 共有メモリなどを使用する方法はないかと考えていますが、それ以外にも何かしらいい方法はないかと模索している段階です。 いい実現方法はないでしょうか? [ メッセージ編集済み 編集者: ガーリック 編集日時 2006-01-16 18:58 ] | ||||||||||||
|
投稿日時: 2006-01-16 19:11
僕は大体 3 の方法でソリューションを作成しています。
共通のプロパティにデータを渡すように実装するのかな (インターフェイスの出番ですね) | ||||||||||||
|
投稿日時: 2006-01-16 19:20
2)は.NETアプリケーションでは非現時的になるかと思います。.NETアプリケーションは起動時のオーバーヘッドが大きいのは周知の事実です。画面単位でプロセスを分割してしまうと、パフォーマンス的に無理があると思います。DLLとしてプロジェクトを分離する方法もあるかと思いますが、この場合もファイル管理コストばかり跳ね上がってしまう予感がします。
というわけで1)か3)ですね。3)の場合にはお互いに関連性の低い画面をひとつのプロセスに纏めます。分離できないほど密な関係にあるなら、必然的に1)になりますね。 | ||||||||||||
|
投稿日時: 2006-01-16 19:39
かるあさん、甕星さん さっそくの回答ありがとうございます。
お二人とも2)の方法は実現的でないという共通のご意見でした。 リソース不足が一番、心配をしておりますが、その辺りの観点から考えますと、 1プロジェクトにすることでの不安要素はないでしょうか? 3)で実現する場合は、画面ID、ユーザIDなどの情報を渡す必要があるため、 それをどうやって実現するかがキーになると考えています。 xmlファイルを作成し、それに書き込んでいく方法が一般的なのかと思いますが、ほかにいい方法があれば、教えて頂きたいと思います。 | ||||||||||||
|
投稿日時: 2006-01-16 20:18
「プロジェクト」という単位を「別プロセス」として扱うということでしょうか?
それぞれ複数の画面が「別プロセス」として扱われるのならば、プロジェクトを複数にする2)と3)はより多くのリソースを食う事になるでしょう。 しかし、「プロジェクト」を「別プロセス」として考えているわけではない、というのならば(つまり DLL にする事ですが)、その限りではないでしょう。 ワザワザ別のプロセスにする必要もないのであれば、
これも簡単でしょう。 # 「共有メモリ」というワードが出てきているので、別プロセスにするのかな? _________________ 囚人のジレンマな日々 | ||||||||||||
|
投稿日時: 2006-01-16 21:08
すべて同時に利用するような仕様なのでしょうか? 通常はリソース不足の心配は要りません。 CLR は必要な時に初めてアセンブリからモジュールをロードします。
ログイン機能をどこに配置するかにも因りますね。 認証できる構成であるならば、最悪コマンドライン引数でもできます。 あとは、AppDomain を使って渡してみるとか、色々方法はありますね。
セキュリティなども考えてくださいね。(^-^;) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-01-17 00:28
迷わず3)。
山ほどある。以下に一部を: Buschmann, Frank=Meunier, Regine=Rohnert, Hans=Sommerland, Peter=Stal, Michael 「Model-View-Controller」 『ソフトウェアアーキテクチャ ソフトウェア開発のパターン体系』 2000年 近代科学社 pp120-139 http://www.amazon.co.jp/exec/obidos/ASIN/4764902834/ Gamma, Eric=Helm, Richard=Johnson, Ralph=Vlissides, John 「Mediator」 『オブジェクト指向における再利用のためのデザインパターン』改訂版 1999年 ソフトバンクパブリッシング pp291-302 http://www.amazon.co.jp/exec/obidos/ASIN/4797311126/ Fowler, Martin 「アプリケーションコントローラ」 『エンタープライズアプリケーションアーキテクチャパターン』 2005年 翔泳社 pp403-410 http://www.amazon.co.jp/exec/obidos/ASIN/4798105538/ | ||||||||||||
|
投稿日時: 2006-01-17 00:30
ただし、現状アンロードすることが出来ないので、あまりにも資源を浪費するようなつくりの場合、困ることも考えられます。 ですが、50画面全部がホントに関連しあうのかなぁ? 十数〜数十画面くらいの規模にグルーピングできてもよさそうな気がしますが。。。 |