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とWindowsアプリケーションでは違いがあるのかを知りたいです。
JavaのアプリケーションなどであればデータベースへのアクセスクラスとかもそれほどWebアプリにしても変更が入らない気がするんですが。
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の感覚だと思わぬ落とし穴がたくさんあるので、試作と実験を重ねながら注意深く学んだ方が良いでしょう。
なるほど。非常に詳しくありがとうございます。非常に参考になりました。
LoadやInitなどもまともに動かない可能性があるのですね。確かに所詮はブラウザで動くものですからね…。
PostbackやViewStateなどまずASP.netの基本を学んでみようと思います。
なるほど。非常に詳しくありがとうございます。非常に参考になりました。
LoadやInitなどもまともに動かない可能性があるのですね。確かに所詮はブラウザで動くものですからね…。
PostbackやViewStateなどまずASP.netの基本を学んでみようと思います。