5

私は最近、クラシック ASP Web アプリケーションを管理するグループに参加しました。私たちのグループのニーズに合わせてうまく機能しています。しかし、私が入社する前に、ASP .Net に移行することが決定されました。私たちはほとんどが ASP 開発者であるため、Classic ASP と同じように (大部分) ASP .Net でコードを記述します。このアプリケーション/プロジェクトに MVC を導入することは可能でしょうか?

ありがとう!

4

4 に答える 4

2

簡単に言えば、可能です。

Scott Hanselman は、このトピックについて以前に書いています。

チームのスキルにもよりますが、スピードを上げるのが難しいと感じるかもしれません.Classic ASPできれいなMVCスタイルのコードを書くことは可能ですが、ほとんどの人はそうではありません.

于 2012-10-09T20:01:09.337 に答える
2

はい、従来の WebForms プロジェクトで MVC を使用することは可能です。数年前に大規模な WebForms プロジェクトを MVC 2 に移行しました。これが私の調査結果です (MVC 3 を反映するように更新しました)。

  1. .NET 4.0 と、MVC 3 フレームワークおよび VS 拡張機能がインストールされていることを確認してください。
  2. 参照として使用する新しい空の MVC プロジェクトを作成します。
  3. 参照プロジェクトのデフォルトの web.config を見てください。基本的に、参照 web.config を使用し、現在のプロジェクトから必要なものをマージします。
  4. リファレンス global.asax.cs を見てください。上記と同様に、参照 .cs の変更を現在のアプリケーションの global.asax.cs にマージします。
  5. Web プロジェクトに次の参照を追加する必要があります。

    System.Web.Abstractions、System.Web.Extensions、System.Web.Helpers、System.Web.Mvc、System.Web.Routing

  6. ProjectTypeGuids を変更することで、VS 拡張機能を有効にすることができます。

    • ソリューション エクスプローラーでプロジェクト名を右クリックし、[プロジェクトのアンロード] を選択します。次に、プロジェクト名をもう一度右クリックし、[ProjectName.csproj の編集] を選択します。
    • ProjectTypeGuids 要素を見つけて、{E53F8FEA-EAE0-44A6-8774-FFD645390401} を追加します。
    • 変更を保存し、プロジェクトを右クリックして、[プロジェクトの再読み込み] を選択します。
  7. MVC コンテンツ用に次の標準フォルダーを追加します。

    • 〜/ビュー
    • 〜/ビュー/共有
    • ~/コントローラー
    • ~/Models (ビュー モデル用、オプション)
    • ~/Content (CSS および画像用、オプション)
    • ~/スクリプト (JS の場合、オプション)

その他の注意事項:

  1. 既存の WebForms が承認のために web.config 設定に依存している場合 (無許可ユーザーの防止など)、これは MVC アクションによって認識されません。これは、ルーティングが WebForms 承認とは完全に別個に機能するためです。AuthorizeAttributeを使用して、承認を要求したり、アクションを特定のロールまたはユーザーに制限したりします。グローバル フィルターを指定することもできるため、この属性をすべてのコントローラーまたはアクションに適用する必要はありません。
  2. IIS バージョン 7 より前、またはクラシック パイプラインを使用するアプリケーション プールで MVC を動作させるには、追加の考慮事項がある場合があります。パイプラインが統合された IIS 7 以降の使用を検討してください。
  3. 上記の私のメモは、主に ASPX ビューを使用する MVC の動作のベースラインを取得することに関するものです。ASPX ビューは、Web フォームで使い慣れた ASPX ファイルと同じマークアップを使用します。新しい Razor 構文 ( primer ) を使用することもできます。これを強くお勧めします。ASPX ビュー ページと Razor ビュー ページの両方を同時に使用できます。ただし、Razor ビューで ASPX マスター ページを使用することはできません (またはその逆)。また、MVC は Razor ビューの前に ASPX ビューを見つけて使用するため、ビューを Razor にアップグレードする場合は、元の ASPX を削除します。Razor ビューを有効にするには、少し追加の作業を行う必要があります。Razor を有効にするためのメモを探しています。それらを見つけたら更新します。Razor をインストールして動作させたら、Telerik のこのツールを使用して ASPX を Razor に変換できます。
  4. これは、アップグレード中に発生した問題についての SO に関する質問です。上記のポイントのいくつかをより詳細にカバーしているため、私はそれを提供しているだけです. ただし、当時は MVC 2 にアップグレードしていたため、この内容の一部は古くなっています。
于 2012-10-09T20:34:12.940 に答える
1

はい。私はプレーンな ASP.NET として開始し、後にいくつかの ASP.NET MVC ページを追加したプロジェクトに取り組みました。最終的に、私たちは MVC を非常に気に入ったので、最終的にすべての WebForms ページを移行して、代わりに MVC を使用するようにしました。しかし、その間ずっと、2 つのシステムは非常にうまく連携していました。

これが私が覚えている唯一の実際の落とし穴です: WebForms は、ページ全体を大きな<form>タグで囲むことによって機能します。HTML ではネストされた<form>タグを使用できないため、通常、WebForms ページ内で MVC フォームを使用することはできません。WebForms ページを MVC コンテンツから分離するか、WebForms ページに表示される可能性のある MVC コンテンツで HTML フォームを使用しないようにするか、WebForms DOM 領域外で作成されるフォームにポップアップ ダイアログを使用します。

于 2012-10-09T20:03:56.597 に答える
1

もちろん技術的に可能です。ただし、MVC は Classic ASP や ASP.NET WebForms とはかなり異なる動作をするため、カルチャー ショックになるようです。私はそれを行う価値があると思います-または、それがより自然に思われる場合は、ASP.NET WebForms に固執するだけです。しかし、まだ WebForms に完全に取り組んでいない場合は、MVC に簡単に移行できます (IMO)。

于 2012-10-09T20:02:34.750 に答える