none
VisualStudio2003からVisualStudio2012への移行について RRS feed

  • 質問

  • 現在、OSがWindows2003で、VisualStudio2003、.NETFramework1.1、asp.netを使用しているアプリケーションがあります。

    このたびサーバのOSをWindows2012にすることになり、それに付随してVisualStudio2012、.NETFramework4.5.1も最新の64bitのものでアプリケーションを作成しようと考えております。

    ※既存のアプリケーションの動作には変更を加えず、今まで32bit環境で動作したものを64bit環境で動作させるのが目的です。

     WOW64は使用せず、プログラムをそのまま64bit環境に移行し、64bit環境で再ビルドする予定でおります。

    VisualStudio,.NETFrameworkのバージョンが変わってもプログラムの中身だけ移行し、64bit環境で作り直した場合に、

    プログラムの修正なくシステムは32bitで起動していた通り、64bitで起動するでしょうか?

    知識が乏しく申し訳ありませんが、どなたかご教授いただけないでしょうか。

    2014年6月5日 13:46

回答

  • そのまま移植は考えない方がよいように感じます。(注意:私は、ASP.NET で経験は浅いので確実な論拠を並べられません)

    2003 から 2012 までの間に、.NET の世界では 1.1 → 2.0、2.x/3.x → 4.0 と大きな敷居がありました。
    非互換な変更はいくつか存在しますし、Web 系では世の中の変化に対応してやり方が大きく変わっている部分、効率的なやり方が開発されている部分があると予想されます。
    最初からそのまま移植を考えるのではなく、現在のテクノロジーの学習、今ドキの作り方について情報収集した上で、移行のアプローチを練り直すことをおすすめします。

    • 回答の候補に設定 星 睦美 2014年6月12日 2:06
    • 回答としてマーク 星 睦美 2014年6月23日 1:14
    2014年6月5日 14:02
    モデレータ

すべての返信

  • そのまま移植は考えない方がよいように感じます。(注意:私は、ASP.NET で経験は浅いので確実な論拠を並べられません)

    2003 から 2012 までの間に、.NET の世界では 1.1 → 2.0、2.x/3.x → 4.0 と大きな敷居がありました。
    非互換な変更はいくつか存在しますし、Web 系では世の中の変化に対応してやり方が大きく変わっている部分、効率的なやり方が開発されている部分があると予想されます。
    最初からそのまま移植を考えるのではなく、現在のテクノロジーの学習、今ドキの作り方について情報収集した上で、移行のアプローチを練り直すことをおすすめします。

    • 回答の候補に設定 星 睦美 2014年6月12日 2:06
    • 回答としてマーク 星 睦美 2014年6月23日 1:14
    2014年6月5日 14:02
    モデレータ
  • Hoshinaです
    こんにちは

    Azuleanさんの書かれていることに同意します。
    もちろん移行工数といった条件がありますので,いちがいにはいえませんが可能な限り最新の技術を利用した方がよいと思います。

    現在試験的に,Visual Studio 2005で作成したWEBサイトを書き改めているところですが,
    非推奨になったり,新しいクラスが導入されていたりします。
    特に,以下の点に注意されてはいかがでしょうか?

    ・HTML5に対応すること
    ・裸のjavascriptではなく,jQueryを利用すること
    ・さらに私のところでは,bootstrapを利用しています

    asp:付きのタグから自動生成されるHTMLにおいて,上記のものを利用するにはそれなりの工夫が必要になりました。
    (例えば,style属性が自動的に付加されるのを防ぐといったことや,<input type="file">をbootstrapの見た目に合わせるとか)

    それでは

    2014年6月6日 0:06
  • 同じく同意で

    最新版のVisual Studioは2013です。Windows Server 2012と数値を合わせているのであれば、その意味はありません。

    「プログラムをそのまま」「再ビルド」には同じく気になります。ASP.NET 1.1ということは対象とするブラウザーはIE6、OSはWindows XPのままということでしょうか? 2003から2013までの約10年間の時代の進化に全て目を背けるのでしょうか?
    HoshinaさんがHTML5というキーワードを挙げられていますが、環境にしてもIE11など最新のブラウザーへの対応を求められていたりしないのでしょうか?
    それとも何十年も後方互換に頼り続けるおつもりでしょうか?

    2014年6月6日 0:45
  • 既に回答されているお三方の意見は正論でもっともなことですので、それに加えて、私は別の視点から述べてみます。

    おそらく今回の移行は、Windows 2003 Serverのサポートが残り1年ちょっとで終わることが発端だと思います。もし、それがなければそのまま使い続けることに何ら支障がないのではないでしょうか? また、アプリケーションを使い続けていれば、途中でハードウエアの更新も来ます。そこでのOSの見直しなのかもしれません。できれば同じOSにしてCALの新規購入を抑えたいという思いもあるでしょうが、OSのライフサイクルを考えればそうもいかないでしょう。クライアントの更新もあります。Windows Xpから今はWindows 7、もしくは8を使用されていると思います。

    アプリケーションとしては何ら問題がなくこのまま使い続けたいのに、上で述べたようにOSなど他の環境の変化に対応するためだけに改修が入るのであれば、現場の生産性は全く変わらないにもかかわらず、コストだけが発生します。ユーザーや経営者から見れば、目の前のアプリケーションは何ら、もしくはほとんど変わらないのに、長期間かけて何やってんだということになるかもしれません。

    今、移行すべきアプリケーションが何本あるのかわかりませんが、残り1年ちょっとという制約もありますので、とりあえずWindows 2003 serverの終了を乗り越えるために、できるだけ低コスト、かつ少ない工数で移行し、それから新バージョンの開発を1から見直して開発するというのも現実的な戦略だと思います。最終的にquestion2014さんがどのような移行計画にされるのかわかりませんが、私の意見も何らかの参考になれば幸いです。

    さて、本題である、そのまま移行して動くかということですが、これはアプリケーションによると思いますので、動かしてみなければわからないと思います。基本はVisual Studioがコンバートしてくれるはずですが、もし、OSから返される値を利用しているようなところがあれば(ASP.NETなので無いとは思いますが)、64bitになって大きな値が返ってきますので、オーバーフローしてしまうなんてこともあります。また、Visual Studioのコンバートも万能ではありません。
    基本は大丈夫なんですが、個々のケースによって手直しの量がいろいろと言ったところでしょうか。
    いずれにしても残り時間も1年ちょっとしかありませんので、早急にテストされ、移行計画を検討されることをお勧めします。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2014年6月6日 1:42
    モデレータ
  • > プログラムの修正なくシステムは32bitで起動していた通り、64bitで起動するでしょうか?

    「プログラムの修正なく」が可能かは分かりませんが(他の回答者の方の意見と同様に無理だと思いますが)、ソースのあるプログラムは修正すれば対応可能として、使っている第三者のライブラリ、ドライバ類に 32-bit のものしかない場合は何ともなりません。

    よくある例が Access 等に使われる JET ドライバで、32-bit 版しかないので、WOW64 を使用しないと 64-bit OS 上では動きません。なので、JET ドライバを使用している限り、Web アプリも WOW64 上で 32-bit として動かす他なくなります。

    どうしても Web アプリを 64-bit OS 上で 64-bit ネイティブで動かしたいなら、ドライバを 64-bit のものに変更するか、もしドライバに 64-bit 版がなければ DB の変更とか根本的なところから見直すということになると思います。

    32-bit ⇒ 64-bit 移行に当たっては、そのあたりも十分検討することをお勧めします。

    Microsoft 製品については以下のページの Step. 15 の表にまとめられていますので参考にしてください。

    Part 3. ASP.NET 2.0 Web アプリケーションの 64 ビット対応
    http://blogs.msdn.com/b/nakama/archive/2008/11/13/part-3-asp-net-2-0-web-64.aspx


    • 編集済み SurferOnWww 2014年6月6日 3:28 誤記訂正
    2014年6月6日 1:45