VB.net2003で作られたWindowsアプリケーションがあります。
これをasp.netのWebアプリケーションに変更したいのです。
同じ.netということですべて書き直すのではなく、既存のフォーム以外はうまく移行できないものでしょうか?
移行先のWebアプリは.net2005を想定しています。
asp.netは初めてなもので余りよくわかっていません。よろしくお願いします。
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の感覚だと思わぬ落とし穴がたくさんあるので、試作と実験を重ねながら注意深く学んだ方が良いでしょう。
Windowsアプリケーションを作成した際に、
きちんと汎用性を保っているのでない限り、
一部分のコピーはうまくいっても
クラスまるごと、というレベルでは無理でしょう。
#データベースへのアクセスクラスとかね。
そういう部分以外は、全て作り直しです。
ASP.NETをよくわかっていないなら、移植よりもASP.NETを
先に学ばれては。
目的のデータセットだけ返すメソッドや、
登録のみ行うメソッド、
計算結果を返すだけのメソッドあたりは、
きちんと分離していればそのまま使えるはずです。
画面(フォーム部分?)描画関連や、
asp独自のメソッドが必要な部分(sessionいじりとか)
は新たに作りこむしかないっす
やり方としてはvbファイルをaspプロジェクトに追加してってのでいいんでしょうか?
まぁウィザードなんかはなさそうですしね…。
で、動かない部分を修正していくと。