web-dev-qa-db-ja.com

ビューエンジンとは何ですか?それは実際に何をしますか?

ASP.NET MVC3の学習を開始しました。

そのため、オンラインや書籍でチュートリアルを読んでいると、この用語に遭遇しました"view engine"かなり頻繁に。それが何なのか分かりません。

それは実際に何をしますか?

なぜそれが私にとって重要なのでしょうか?

47
Nawaz

ビューエンジンは、ビューから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に行きます。

52
mnemosyn

ビューエンジンは、ビューをレンダリングし、コードをすばらしい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>
}
8

ビューエンジンは、MVCがコントローラーから要求しているビューを見つけてレンダリングするために使用するものです。デフォルトのルーティングに満足しているなら、おそらく何も変更する必要はないでしょうが、共有ファイルを通常root/views/sharedに配置し、代わりにroot/commonに配置したい場合は、カスタムビューエンジンを使用しますそれを可能にするために作成する必要があります。

ここで、ビューエンジンを構築する方法を見ることができます:

http://coderjournal.com/2009/05/creating-your-first-mvc-viewengine/

ビューエンジンはビューのレンダリングも担当しますが、MVCを学習しているだけなので、おそらくレンダリング機能をまだ変更する必要はないでしょう。

4
Kasper Elbo

MVCでは、ViewエンジンはViewとブラウザーの間で機能し、View内のコードをコンパイルすることにより、ブラウザーに有効なHTML出力を提供します。使用可能なビューエンジンは多数あり、そのうちのいくつかは次のとおりです。

  1. ASPX

  2. かみそり

  3. Spark

  4. NHaml

  5. NDJango

  6. ハシック

  7. ブレール

  8. ベルビュー

  9. シャープタイル

  10. 文字列テンプレート

  11. ウイングビーツ

  12. SharpDOM

現在、ほとんどの開発者は非常に便利なプログラミング方法を提供するため、Razorビューエンジンの使用を好みます。これらのビューエンジンはすべて、ASP.NET MVCをサポートしていない場合があります。

詳細については、 この記事 をご覧ください。

4
Daryl

View Engineはアプリケーション内で動作し、HTMLページをブラウザまたはユーザーにレンダリングします。 HTMLタグ、サーバーコントロール、およびプログラミング言語を含めることができます。

Razorは、MVC4フレームワークの推奨ビューエンジンです。

2
Harsha.Vaswani

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アプリケーションと同様の拡張子があります。

2
Santosh Rawat

http://questionbox.in/view-engine-asp-net-mvc-razor-view-engine-asp-net-mvc-web-form-aspx-view-engine-で説明的な投稿を読みますasp-net-mvc /

ビューエンジンは、ビューからブラウザにHTMLをレンダリングする機能を提供します。

ASP.NET MVCでサポートされているビューエンジンは多数ありますが、最も広く使用されているビューエンジンは次のとおりです。

  • Webフォーム/ ASPXビューエンジン。
  • かみそりビューエンジン。

Webフォームビューエンジン/ ASPXビューエンジン:

  • Webフォームビューエンジン/ ASPXビューエンジンは、Asp.net MVCプロジェクトのデフォルトビューエンジンです。 MVC 1.0から利用可能です
  • Web Form Engineの名前空間はWeb.Mvc.WebFormViewEngineです
  • このView Engineのファイル拡張子は、次のようなWebフォームに似ています。

.aspx、Webフォームページのようなビュー用。 .ascx、ユーザーコントロールと同様の部分ビューおよびエディターテンプレート用。 .master、Webフォームのマスターページと同じレイアウトおよびマスターページ用。

  • TDD(テスト駆動開発)のサポートはありません。
  • Web Form EngineはXSS攻撃を防止しません。つまり、ページのレンダリング中にデータベースに保存されたスクリプトが起動されます
  • 構文:<%:Html.ActionLink(“ Home”、“ Index”)%>

Razor View Engine:

  • Razor View Engineは、MVC 3.0以降のバージョンで使用可能な高度なビューエンジンです
  • ASPXビューエンジンの名前空間はWeb.Razorです。
  • このビューエンジンのファイル拡張子は、ビュー、部分ビュー、エディターテンプレート、レイアウトページの.cshtml(Razor C#)です。 .vbhtml(Razor VB.NET)、ビュー、部分ビュー、エディターテンプレート、レイアウトページ用。
  • TDD(テスト駆動開発)をサポートします。
  • Razor Engineは、Webフォームエンジンに比べて少し遅いです。
  • Razor Engineは、XSS攻撃(クロスサイトスクリプティング攻撃)を防ぎます。つまり、表示する前にスクリプトまたは<、>などのhtmlタグをエンコードします。
  • Razor構文は、Webフォームの構文よりも理解しやすく、非常に簡潔です。 Razorは@記号を使用して、次のようなコードを作成します。

    @ Html.ActionLink(“ Home”、“ Index”)

2
Ganesh Todkar

ASP.Net MVCでは、ビューエンジンはビューとブラウザーの間で動作し、ビューによって提供される出力を考慮して、ブラウザーに有効なHTML出力を提供します。ビューエンジンには多くの種類があります。

1)ASPX

2)かみそり

3)スパーク

4)NHaml

5)NDJango

6)Hasic

7)ブレール

2
shubhankar

これまでのところ、すべての応答はASP.NETに関連しています。 nodejsのビューエンジンを探している場合、次のオプションのいくつかがあります。

Jade (Pug)
express-handlebars
ejs
React

https://github.com/expressjs/express/wiki#template-engines で見つけたそれらの全リストがありますが、上記のものは私が最もよく耳にするもののようです。

1
Allan Holbrook

2つのビューエンジン:

ASPX

ASPXビューエンジン、サーバー側スクリプトは[%%]の間にラップされます。ASPXはその拡張です。

かみそり

かみそりは@を使用します。 HTMLとコードの切り替えは可能です。 Razor Viewエクステンション.CSHTMLおよび.VBHTML

0
Sri rangini