人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

asp.netの質問です。
VB.net2003で作られたWindowsアプリケーションがあります。
これをasp.netのWebアプリケーションに変更したいのです。
同じ.netということですべて書き直すのではなく、既存のフォーム以外はうまく移行できないものでしょうか?
移行先のWebアプリは.net2005を想定しています。
asp.netは初めてなもので余りよくわかっていません。よろしくお願いします。

●質問者: matttsu
●カテゴリ:コンピュータ
✍キーワード:.NET ASP.NET VB.NET Web Windows
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Mr_T_0023
●20ポイント

Windowsアプリケーションを作成した際に、

きちんと汎用性を保っているのでない限り、

一部分のコピーはうまくいっても

クラスまるごと、というレベルでは無理でしょう。

#データベースへのアクセスクラスとかね。

そういう部分以外は、全て作り直しです。

ASP.NETをよくわかっていないなら、移植よりもASP.NETを

先に学ばれては。

◎質問者からの返答

すべては無理という言うことですね。

出来れば一般的にどういう点がASPとWindowsアプリケーションでは違いがあるのかを知りたいです。

JavaのアプリケーションなどであればデータベースへのアクセスクラスとかもそれほどWebアプリにしても変更が入らない気がするんですが。

ASP.netは今から学習するのですがそれにしても全体でなくどのポイントを重点的にというのが知りたいです。かなり幅広そうですから。


2 ● kaorun
●60ポイント ベストアンサー

WindowsFormsとASP.NETは一見似たようなUIモデルを実現しているように見えますが、根本的な動作モデルが違います。

ASP.NET自体、頑張ってWindowsアプリケーション的な動作をするPostbackのシステムを作り上げていますが、基本的にはブラウザからのHTTPリクエストであり、例えばフォームの初期化するLoadやInitなどのメソッド名が似ているからと言って同じような実装をしても、まともに動きません。

データベース回りに関してはある程度ADO.NETとして共通ですが、ASP.NET2.0になってDataSetを使わないDataBindingsのモデルが採用されるなど、その距離も若干離れつつあると思った方がいいでしょう。ASP.NET1.xではADO.NETの各種オブジェクトを使うのが一般的でしたが、2.0からはページ自体が直接SQLを呼び出すDataSourceを定義する形に変更されています。2.0でも1.x形式でADO.NETをそのまま利用することはできますが、VS2005のデザイナーを利用したDataBindなどはできなくなります。(ただ動けばいいならそれも良しですが、逆にASP.NET1.xの時代の情報を掘り起こす必要が出てきますね)

下位のC#やVB.NETの書き方、ADO.NETでのデータオブジェクトの呼称などは同一で、全くIOに関係しない単純なクラスであれば使い回しもできますから、ある程度知識やコードの流用は効きますが、実際にコードを書き始めてみると、「なんだこれよくわからないな...」となることは請け合いです。

まぁ、.NET2.0の日本語書籍もようやくそろってきているので、地道にASP.NETの学習を進められて、過去のコードを参考にしながら新たに書き起こす、ぐらいの覚悟は必要だと思います。

特に、ASP.NETのPostbackによるページ遷移やViewStateなどによる値の保持などの部分は、WinFormsの感覚だと思わぬ落とし穴がたくさんあるので、試作と実験を重ねながら注意深く学んだ方が良いでしょう。

◎質問者からの返答

なるほど。非常に詳しくありがとうございます。非常に参考になりました。

LoadやInitなどもまともに動かない可能性があるのですね。確かに所詮はブラウザで動くものですからね…。

PostbackやViewStateなどまずASP.netの基本を学んでみようと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ