ASP.NET MVC3の学習を開始しました。
そのため、オンラインや書籍でチュートリアルを読んでいると、この用語に遭遇しました"view engine"かなり頻繁に。それが何なのか分かりません。
それは実際に何をしますか?
なぜそれが私にとって重要なのでしょうか?
ビューエンジンは、ビューからHTMLを作成します。ビューは通常、HTMLとプログラミング言語の何らかの組み合わせです。これらのほとんどの背後にあるパターンは、 2段階ビュー と呼ばれます。
たとえば、ASP.NETには独自のビューエンジンが付属しています。ビューには<% %>
や<%: %>
などのタグがたくさんあります。 .aspx
ファイル拡張子を使用します。
ASP.NET MVC3では、すぐに使用できる別のビューエンジン Razor が追加されました。 <div>@Model.UserName</div>
。
ビューエンジンの機能セットはかなり異なるため、ビューエンジンの選択は重要です。たとえば、PDFファイルへのレンダリングをサポートします。一部はWebコンテキストの外部で使用できません(これは古いASP.NETビューエンジンに当てはまります)ビューの「オフライン」レンダリングは、ビューを作成するのと同じ方法でHTMLメールを作成する場合に便利であり、それらのメールはWebアプリケーションではなくバックグラウンドワーカーから送信する必要があります。
asp.netビューエンジン の素敵な比較がSOにあります。
幸いなことに、ASP.NET MVCでは複数のビューエンジンを並行して使用できますが、必要な場合を除き、お勧めしません。
Razorエンジンには既にいくつかの非常に素晴らしい拡張ポイントがあります。たとえば、カスタムビューの基本クラスを提供できます。これは、他の方法では対処しなければならないざらざらした詳細をいじることなく、適切な場所に多くの機能を簡単に追加できる強力な概念です。
私は現在、Razorに行きます。
ビューエンジンは、ビューをレンダリングし、コードをすばらしいHTMLに変換する役割を果たします。そのため、ビューでコードを記述する方法については直接責任があります。
基本的に、気にする必要があるのはASPXとRazorの2つです。私の意見では、RazorはMVC3でのみサポートされているという代償を払って、より洗練されていて使いやすいです。
たとえば、ASPXのコードブロックは次のようになります。
<% foreach(var item in Model) { %>
<tr>
<td><%: item.Name %></td>
</tr>
<% } %>
Razorの同等物は次のようになります。
@foreach(var item in Model) {
<tr>
<td>@item.Name</td>
</tr>
}
ビューエンジンは、MVCがコントローラーから要求しているビューを見つけてレンダリングするために使用するものです。デフォルトのルーティングに満足しているなら、おそらく何も変更する必要はないでしょうが、共有ファイルを通常root/views/sharedに配置し、代わりにroot/commonに配置したい場合は、カスタムビューエンジンを使用しますそれを可能にするために作成する必要があります。
ここで、ビューエンジンを構築する方法を見ることができます:
http://coderjournal.com/2009/05/creating-your-first-mvc-viewengine/
ビューエンジンはビューのレンダリングも担当しますが、MVCを学習しているだけなので、おそらくレンダリング機能をまだ変更する必要はないでしょう。
MVCでは、ViewエンジンはViewとブラウザーの間で機能し、View内のコードをコンパイルすることにより、ブラウザーに有効なHTML出力を提供します。使用可能なビューエンジンは多数あり、そのうちのいくつかは次のとおりです。
ASPX
かみそり
Spark
NHaml
NDJango
ハシック
ブレール
ベルビュー
シャープタイル
文字列テンプレート
ウイングビーツ
SharpDOM
現在、ほとんどの開発者は非常に便利なプログラミング方法を提供するため、Razorビューエンジンの使用を好みます。これらのビューエンジンはすべて、ASP.NET MVCをサポートしていない場合があります。
詳細については、 この記事 をご覧ください。
View Engineはアプリケーション内で動作し、HTMLページをブラウザまたはユーザーにレンダリングします。 HTMLタグ、サーバーコントロール、およびプログラミング言語を含めることができます。
Razorは、MVC4フレームワークの推奨ビューエンジンです。
View Engineは、ビューをブラウザーにHTML形式でレンダリングします。 .Net FrameworkのMVCアプリケーションについて説明する場合、次の2つのビューエンジンをサポートしています。
1。Razor View Engine2。Web Form/ASPX View Engine
違い:1。 Razor View Engineはレイアウトを使用しますが、ASPXビューエンジンはマスターページを使用します。
2。 Razor View Engineは部分ページを使用しますが、ASPXビューエンジンはWebユーザーコントロールを使用します。
。 Razorビューエンジンは言語ではなく、マークアップ構文です。
4。 @ '記号は、Razor Engineでコードを記述するために使用します。 @ Html.ActionLink( "Login"、 "LoginView")「<%:」区切り文字は開始点として使用し、「%>」は終了点として使用します。 ASPX Engineでそれらの間にコードを書くことができます。
5。 Razor View Engineには、ビュー、レイアウト、および部分ビュー用の.cshtml(C#付き)および.vbhtml(VB付き)拡張があります。 ASPX View Engineには、ビュー用の.aspx、ユーザーコントロール用の.acsx、マスターページ用の.masterなどの単純なWebアプリケーションと同様の拡張子があります。
ビューエンジンは、ビューからブラウザにHTMLをレンダリングする機能を提供します。
ASP.NET MVCでサポートされているビューエンジンは多数ありますが、最も広く使用されているビューエンジンは次のとおりです。
Webフォームビューエンジン/ ASPXビューエンジン:
.aspx、Webフォームページのようなビュー用。 .ascx、ユーザーコントロールと同様の部分ビューおよびエディターテンプレート用。 .master、Webフォームのマスターページと同じレイアウトおよびマスターページ用。
Razor View Engine:
Razor構文は、Webフォームの構文よりも理解しやすく、非常に簡潔です。 Razorは@記号を使用して、次のようなコードを作成します。
@ Html.ActionLink(“ Home”、“ Index”)
ASP.Net MVCでは、ビューエンジンはビューとブラウザーの間で動作し、ビューによって提供される出力を考慮して、ブラウザーに有効なHTML出力を提供します。ビューエンジンには多くの種類があります。
1)ASPX
2)かみそり
3)スパーク
4)NHaml
5)NDJango
6)Hasic
7)ブレール
これまでのところ、すべての応答はASP.NETに関連しています。 nodejsのビューエンジンを探している場合、次のオプションのいくつかがあります。
Jade (Pug)
express-handlebars
ejs
React
https://github.com/expressjs/express/wiki#template-engines で見つけたそれらの全リストがありますが、上記のものは私が最もよく耳にするもののようです。
2つのビューエンジン:
ASPXビューエンジン、サーバー側スクリプトは[%%]の間にラップされます。ASPXはその拡張です。
かみそりは@を使用します。 HTMLとコードの切り替えは可能です。 Razor Viewエクステンション.CSHTMLおよび.VBHTML