- - PR -
ASP.NETでのオブジェクト指向
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-11-22 23:20
初めて投稿させて頂きます。
今ASP.NETを使い、オブジェクト指向を用いてシステム開発 を行おうとしております。これまで手続き型でシステム開発 を行ってきた経験しかなく、オブジェクト指向での設計・開 発は初めての為、戸惑いながらもなんとかすすめています。 そこで、実装方法について疑問が出てきました。 画面Aから画面Bに展開される場合、その展開の間にできた オブジェクトはシステム上に残っているのでしょうか? 残っていないとすると、各オブジェクトは生成された段階 でセッション変数に残すなどの操作が必要になるのでしょう か。 いろいろ調べてみたのですが、VB.NETについてのオブジェ クト指向の書籍・情報などはあるものの、ASP.NETについて の書籍・情報がみあたりませんでした。ASP.NETを使用して オブジェクト指向で開発をされている方、または実装方法に ついてご存知の方いらっしゃいましたらご教授願いませんで しょうか。どうぞよろしくお願い致します。 _________________ | ||||
|
投稿日時: 2003-11-23 08:32
こんにちわ。諸農です。
VB.NETはアプリケーション開発のための言語を指し、 一方ASP.NETはアプリケーション開発の技術基盤を指します。
色々探せば書籍・サイトなどの情報はたくさんありますよ。 ・今日から始めるVisual Basic .NETプログラミング(書評) http://www.atmarkit.co.jp/fdotnet/bookreview/vbbegin5/vbbegin5.html ・ASP.NETプログラミング本格入門 http://www.cbook24.com/bm_detail.asp?sku=4774118362 ・VisualStudio.NET2003による 実践ASP.NETアプリケーション開発 http://www.cbook24.com/bm_detail.asp?sku=4798006068 ・実践ASPエンジニアのための ASP.NETビルドアップテキスト http://www.cbook24.com/bm_detail.asp?sku=477411698x ・ASP/ADO.NET Webフォーム開発テクニック http://www.cbook24.com/bm_detail.asp?sku=4774116653 ・VisualBasic.NET+ASP.NETで始めるWebアプリケーション開発 http://www.cbook24.com/bm_detail.asp?sku=479732113x ・プログラミング Microsoft .NET ASP .NETによるサーバーサイド開発 マイクロソフト公式解説書 http://www.cbook24.com/bm_detail.asp?sku=4891003154 ・ステップバイステップで学ぶ Microsoft ASP .NET実践講座 http://www.cbook24.com/bm_detail.asp?sku=4891002859 ・標準ASP.NET プログラミング1 http://www.cbook24.com/bm_detail.asp?sku=4798101257 ・標準ASP.NETプログラミング 2 http://www.cbook24.com/bm_detail.asp?sku=4798101265 ・ASP.NET How-To インデックス http://www.microsoft.com/japan/msdn/howto/howtoASPNet.asp ではでは(^^)/ _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2003-11-25 12:22
もしかすると、混同されているのではないでしょうか。VB.NETは1つの言語ですが、AS.NETは言語ではありません。1つの「技術」という方がいいと思います。なので、「ASP.NETでオブジェクト指向」という類の本はないと思います。ASP.NETを利用したWebアプリケーションは、VB.NETかC#か、C++.NET(またはマネージドC++)といった言語(J#も?)を利用して記述します。 > 画面Aから画面Bに展開される場合、その展開の間にできた > オブジェクトはシステム上に残っているのでしょうか? 残っていません。画面上に表示されている「値」については、「ビューステート」に残っています。オブジェクトを残すには、アプリケーション変数か、セッション変数に残す必要があります。しかし、表示されるコントロールが「同じオブジェクト」である保証はありません。むしろ、「同じ値を持った、違うオブジェクト」であると考えるべきでしょう。 | ||||
|
投稿日時: 2003-11-25 13:38
Jubeiさん、Jittaさん、ありがとうございます。
ASP.NETについて混同しておりました。開発言語はVB.NETを使用しております。 またまた質問なのですが、ASP.NETを利用したWEBアプリで、オブジェクトを 作成しながら画面展開を進めていく場合、例えばクラスAとクラスBがコンポジ ションの関係にあった場合(クラスAがクラスBを集約しているとします)、 以下のようなコードになるのかな、と考えたのですが。 ●クラスAのコンストラクタ Public Sub New() オブジェクトB = New クラスB() <----オブジェクトBを定義 以下で上記オブジェクトBをセッション変数にセット Session(クラスBセッションキー) = オブジェクトB End Sub 画面展開の処理の中でできたオブジェクトを別画面で使用する場合、このように しておけばオブジェクトBが入っているセッション変数を通して、オブジェクトB のメソッドも利用できると考えたのですが・・・。 ただ、この場合、集約しているクラスが集約されているクラスをNew()する時に セッション変数にオブジェクトをセットするようにする、等が必要になってくる かと思っています。 実際このような方法で開発されているのでしょうか?それとも、各クラスが生成 された段階で、そのクラスの属性値のみをセッション変数にセットしておいて、 別画面で過去に生成したオブジェクトを利用する場合、セッション変数にセット された値から再びそのオブジェクトを生成しているのでしょうか? _________________ | ||||
|
投稿日時: 2003-11-25 13:51
Loadイベントで、
if ispostback then classB = new ClassB session("ClassB") = classB else ClassB = session("ClassB") end if とか、staticなメソッドにするとか、アプリケーションで共通にしてもいいならキャッシュに入れるとか。 なぜか、Loadイベントハンドラに「ページの初期化コードをここに記述」と書いてあるので、Loadイベントハンドラでやってます。そういえば、なぜLoadイベントハンドラなんだろう? | ||||
|
投稿日時: 2003-11-25 15:02
Loadイベントの発生するタイミングについてドキュメントで確認してみては?
ページ内で利用するオブジェクトがそれなりに生成されて、ビューステートからの 値が設定されて、等、初期化をするのに必要なすべての準備がととのった 状態で発生するのがLoadイベントだったと思います。 ページ内でどのイベントがどういう順で発生するか、という話はドキュメントに きちんと記述されていたはず。 #ちょっとわかりにくいとこだったと思うけど。 | ||||
|
投稿日時: 2003-11-25 16:36
話を別方向に持っていってすみません。
確認しています。コンストラクタ→Initイベント→LoadViewStateメソッド(PostBack時のみ)→LoadPostBackDataメソッド(PostBack時のみ)→Loadイベント→…ですね。で、「Initイベント」という「初期化イベント」があるのに、その後の「Loadイベント」で「初期化する」のはなぜかな?ということです。「初期化」は「Init(ialize)」であり、「Load」ではない、と思うのです。「言葉遊び」のように思いますが、何となくしっくりこないので。 | ||||
|
投稿日時: 2003-11-25 16:54
#別方向ですすめます、すみませんm(_ _)m
それこそ言葉遊びになっちゃいますが、 「初期設定」 だったらちょっとしっくりきます?(^^; WindowsアプリのForm側の言葉にあわせたような 気もしますね。 ・Init -> コンストラクタのイメージ ・Load -> Formのロードのイメージ このイベント名しか使えないわけでもないので いやだったら変えてしまうのも可かと。 まぁ、そんな面倒なことわざわざする必要も ないでしょうけど。 参考: http://homepage3.nifty.com/dotnetfan/web/web07.html |
1