asp.netの質問です。

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

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/04/16 09:01:16
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kaorun No.2

回答回数44ベストアンサー獲得回数10

ポイント60pt

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の感覚だと思わぬ落とし穴がたくさんあるので、試作と実験を重ねながら注意深く学んだ方が良いでしょう。

id:matttsu

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

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

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

2007/04/16 09:00:24

その他の回答1件)

id:Mr_T_0023 No.1

回答回数20ベストアンサー獲得回数0

ポイント20pt

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

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

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

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

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

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

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

先に学ばれては。

id:matttsu

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

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

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

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

2007/04/13 13:03:08
id:kaorun No.2

回答回数44ベストアンサー獲得回数10ここでベストアンサー

ポイント60pt

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の感覚だと思わぬ落とし穴がたくさんあるので、試作と実験を重ねながら注意深く学んだ方が良いでしょう。

id:matttsu

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

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

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

2007/04/16 09:00:24
  • id:aside
    asp.netの中身はvb.netで作成できるので、
    目的のデータセットだけ返すメソッドや、
    登録のみ行うメソッド、
    計算結果を返すだけのメソッドあたりは、
    きちんと分離していればそのまま使えるはずです。
    画面(フォーム部分?)描画関連や、
    asp独自のメソッドが必要な部分(sessionいじりとか)
    は新たに作りこむしかないっす
  • id:matttsu
    ありがとうございます。
    やり方としてはvbファイルをaspプロジェクトに追加してってのでいいんでしょうか?
    まぁウィザードなんかはなさそうですしね…。
    で、動かない部分を修正していくと。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません