ASP.NETのもう一つのビューエンジン--Razor


一、Razorとは何ですか.
ASPXとは何か知っていたら、RazorはASPXと同じ別のビューエンジンです.ビューと言えばいろいろわかるでしょう.いずれもビューエンジンである以上、MSのものであり、2つのビューエンジンは、前後に違いがあるに違いない.では、次にRazorについてお会いしましょう.
まず、Razorは後発のビューテンプレートとしてASP.NET MVC 3使用.
これはRazorの重要な情報を暴露した:インタフェースの設計は柔軟で、aspxビューエンジンよりもWEBフロントエンドページの設計に集中している.MVCはWEB開発に基づいて誕生した設計モデルであり、主旨の一つはページとビジネスロジックをデカップリングすることである.ASPXが使いやすいと言えば、Razorを開発する必要はないので、ここのRazorはMVCに基づいて設計されたWEB開発に適したビューエンジンです.   
Razorは、コードの冗長性を低減し、コードの可読性を強化し、vsインテリジェントな感知を強化する上で、際立った優位性を持っている.
Razordeの特性を見てみましょう.
  
・コンパクトで表現力があり、スムーズ:Razorはできるだけ1つのファイルに打ち込む文字数を減らし、快適な符号化体験を提供します.ほとんどのテンプレートの構文とは異なり、HTMLにサーバ側のコードブロックを表示する必要があるため、コードを叩く快感を中断することはありません.コードアナライザは、あなたのコードからサーバ側のコードかどうかを推定するのに十分です.これにより、簡潔で表現力のある文法入力がきれいで、迅速で、面白くなります.
・手が速い:Razorは非常に使いやすく、少ない新しいことを知るだけでそれをマスターすることができ、既存のプログラミング言語とHTMLの知識を使うだけで十分です.
・新しいプログラミング言語ではありません:Razorのために新しいコマンド言語を作成することをできるだけ避けます.逆に、プログラマーが既存のC#/VB(または他の)プログラミング言語の知識だけでRazorを使用できるようにしたいと考えています.私たちはあなたが選択したプログラミング言語の中で、テンプレートに基づいてHTMLを生成する素晴らしいタグ構文を提供するだけです.
・どんなテキストエディタでも書くことができる:Razorは特別なツールを必要とせず、骨董品のテキストエディタを使っても効率的にプログラミングできる(「手帳」がいい).
・インテリジェントな入力ヒント:Razorはあるツールやコードエディタのために設計されたものではありませんが、Visual Studioには素晴らしいインテリジェントなヒント機能があります.Visual Studio 2010とVisual Web Developer 2010をアップグレードし、エディタのスマートヒント機能を完全に備えます.
・ユニットテストの容易化:新しいビューエンジンは、コントローラやWebサーバを必要とせず、任意のユニットテスト項目に含めることができます.個別のアプリケーションドメイン(App-Domain)は必要ありません.
二、Razor文法の簡単な紹介
 
1、Razor文法の@記号
@文字はRazorの重要な記号であり、Razorサーバコードブロックの開始記号として定義される.Webページに変数または現在の日付を出力する場合は、次のコードを使用します.
<span style="font-family:KaiTi_GB2312;font-size:18px;"> @{string productName = "  ";}
    <span>@productName</span>
    <span>@DateTime.Now.ToString("yyyy-MM-hh")</span></span>

2、Razor文法のコードブロック定義
@{code}を使用してコードブロックを定義できます.
<span style="font-family:KaiTi_GB2312;font-size:18px;">@{
    int num1 =10;
    int num2 =5;

    int sum = num1 + num2;
    @sum;
}</span>

 
コードブロックでは、コードを記述する方法は、通常のサーバ側コードと同じです.また、上記のような出力が必要な場合は、@sumを使用して出力を完了できます.また、@(code)は式の演算結果を出力することができ、上のコードもこのように書くことができます.
<span style="font-family:KaiTi_GB2312;font-size:18px;">@{
        int num1 =10;
        int num2 =5;

        int sum = num1 + num2;
        @(num1 +num2);
    }</span>

 
3、Razor文法のコード混載
Razorはコードの混載をサポートします.コードブロックにHTMLを挿入したり、HTMLにRazor文を挿入したりすることは可能です
<span style="font-family:KaiTi_GB2312;font-size:18px;">@{
    int num1 =10;
    int num2 =5;

    int sum = num1 + num2;
    string color ="Red";
    <font color="@color">@sum</font>
}</span>

 
4、Razor文法の注釈
ここでいうアノテーションとは、サーバ側のアノテーションを指し、Razorコードブロックでは、//:(単行アノテーション)と/**/(複数行アノテーション)のC#のアノテーション方式でアノテーションを行うことができる.
また、Razorは、C#コードを注釈するとともにHTMLコード、@**@を注釈できる新しいサーバセグメントコード注釈を提供しています.この注釈方式は、コードブロックに制限されず、Razorコード内の任意の場所で可能です.
<span style="font-family:KaiTi_GB2312;font-size:18px;">@*
          
    <b>     </b>
    *@</span>

三、ASPXとRazorの比較
ASPXを学んだ以上,送信Razorの優位性を比較する.次に例を示します.
まずはASPX:
<span style="font-family:KaiTi_GB2312;font-size:18px;"><%
    int i = 100;
    string str = "mzwu.com";
%>
i=<% =i %>, str=<% =str %></span>

変換先:Razor
<span style="font-family:KaiTi_GB2312;font-size:18px;">@{
    int i = 100;
    string str = "mzwu.com";
}
i=@i,str=@str</span>

Razorは<%と%>の代わりに@を用い,単一変数値を出力するとより簡単に見える.
<span style="font-family:KaiTi_GB2312;font-size:18px;"><%for (int counter = 0; counter < 10; counter++){%>
    <span>number = <% =counter %>;</span>
<%}%></span>

変換Razor
<span style="font-family:KaiTi_GB2312;font-size:18px;">@for (int counter = 0; counter < 10; counter++)
{
    <span>number = @counter;</span>
}</span>

例から分かるように、RazorはASPXよりコード量が少なく、知能的で、C#コードとhtmlを自動的に見分けることができる.
これは単純な対比で、Razorの簡潔さを発見しました.もちろん、いろいろな違いがあります.みんなが使うのを待っています.