私は何を、なぜ、いつcshtmlを選ぶ方が良いのか、何を、なぜ、いつaspxテクノロジーを選ぶのが良いのか知りたいのですが?これらの2つのテクノロジーは何を対象としていますか?
ありがとうございました、
私は何を、なぜ、いつcshtmlを選ぶ方が良いのか、何を、なぜ、いつaspxテクノロジーを選ぶのが良いのか知りたいのですが?これらの2つのテクノロジーは何を対象としていますか?
ありがとうございました、
回答:
他の人が答えたように.cshtml
(または.vbhtml
それがあなたの好みなら)、MVCエンジンをロードするためのハンドラーマッピングを提供します。.aspx
拡張は、単にコンパイルを実行し、ウェブフォームを働くASPNET_ISAPI.DLLをロードします。ハンドラーマッピングの違いは、MVCアプリケーションとWebFormsアプリケーションの両方を共通のルートで実行できるようにするために、同じサーバー上で2つを共存させる方法にすぎません。
これにより、http://www.mydomain.com/MyMVCApplicationが有効になり、MVCルールと共に提供されるとともに、http://www.mydomain.com/MyWebFormsApplicationが標準のWebフォームとして有効になります。
編集:
テクノロジの違いについては、MVC(Razor)テンプレートフレームワークは、モデル(ビジネス/データオブジェクト)間のコードロジックを分離するテンプレートビューのよりRESTfulな「Webベースの」プラットフォームに.Netページを返すことを目的としています、ビュー(ユーザーに表示されるもの)とコントローラー(2つの間の接続)。WebFormsモデル(aspx)は、Microsoftが複雑なjavascript埋め込みを使用して、WinFormsアプリケーションに似たよりステートフルなアプリケーションをシミュレートし、ページ間で独自の状態を保持できるイベントとページライフサイクルをシミュレートする試みです。
どちらのシステムにも賛成または反対の議論があるため、どちらを使用するかの選択は常に論争の的となります。MVCアーキテクチャのシンプルさ(ルーティングは単純ではありませんが)とRazor構文の使いやすさが好きです。WebFormsアーキテクチャは重すぎて、効果的なWebプラットフォームにはなれないと思います。そうは言っても、WebFormsフレームワークが、明確に定義された豊富なイベント構造を備えた非常に簡潔で使いやすいモデルを提供する場合はたくさんあります。すべては、アプリケーションのニーズとそれを構築する人々の好みに要約されます。
RazorはASP.NET MVCのビューエンジンであり、テンプレートエンジンでもあります。RazorコードとASP.NETインラインコード(マークアップと混合されたコード)は、最初にコンパイルされ、実行される前に一時的なアセンブリに変換されます。したがって、C#とVB.NETの両方がILにコンパイルされて交換可能になるように、RazorとInlineコードはどちらも交換可能です。
したがって、それはよりスタイルと興味の問題です。ASP.NETインラインコードよりもrazorの方が快適です。つまり、.aspxページよりもRazor(cshtml)ページの方が好みです。
Human
クラスを取得してレンダリングするとします。でCSHTMLファイル以下のように記述します:
<div>Name is @Model.Name</div>
いる間のaspxファイルを以下のように記述します:
<div>Name is <%= Human.Name %></div>
ご覧のとおり@
、かみそりのサインはコードとマークアップの混合をはるかに簡単にします。
Model
強く型付けされたビューに使用され、model
キーワードを使用して上部で型を定義します。
構文はRazor(.cshtml
/ .vbhtml
)とWebForms(.aspx
/ .ascx
)の間で確かに異なりますが(Razorは2つのうちでより簡潔で最新のものです)、どちらもビューエンジン/テンプレートエンジン、従来のASP.NETとして使用できると誰も述べていませんWebフォームコントロールは、任意の.aspxファイルまたは.ascxファイルで使用できます(MVCアーキテクチャと統合されている場合でも)。
これは、問題に対する長年の解決策が確立され、プラグイン可能なコンポーネント(大きなファイルのアップロードコントロールなど)にパッケージ化されており、MVCサイトで使用したい場合に関係します。Razorでは、これを行うことはできません。ただし、従来のASP.NETアーキテクチャでWebフォームビューを使用する場合と同じバックエンド処理をすべて実行できます。
さらに、ASP.NET Webフォームビューには分離コードファイルを含めることができます。これにより、ビューと共にコンパイルされる個別のファイルにロジックを埋め込むことができます。ソフトウェア開発コミュニティは、密結合アーキテクチャとスマートクライアントパターンを悪い習慣と見なすように成長していますが、以前はそれが主な方法であり、.aspx / .ascxファイルでも非常に可能です。かみそりは、意図的に、そのような品質はありません。
CshtmlファイルはRazorによって使用されるファイルであり、この質問に対する回答として述べたように、それらの主な利点は、ユニットテスト内でレンダリングできることです。この他のトピックに対するさまざまな答えは、他の多くの興味深いポイントをもたらします。