だるろぐ

明日できることは、今日しない。

WebMatrix 2:ASP.NET と PHP(2)

WebMatrix 2:ASP.NET と PHP - だるろぐ あたりを書いた時に Twitter で「WebMatrix 2(というより、Razor 記法)は Visual Basic に対応していないのか?」という疑問を見かけたのですが、ちゃんと対応しています。

たとえば前回の例の場合、こんなふうに書きます。

@Code
    Dim s = "Hello! World" ' 追加
End Code

<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        @s <!-- 追加 -->
    </body>
</html>

C# の @{ … } が @Code … End Code に置き換わったぐらいかな。For 文の書き方なんかも VB 風に書けます。詳しいことは VB Razor構文 基礎文法 総まとめ - @IT でも参照してください。個人的にはこれから始める人が VB で Razor を書く意味はあまりないのではないかなと思います。XML の処理などは簡単なんだそうですけど。

あと、前回は言わなかったけれど <% … %> という ASP.NET の古い記法(ASPX、C# または Visual Basic)を利用することもできます。

まぁ、それはともかく。

f:id:daruyanagi:20121227064529p:plain

こんなにいっぱいあるんだったら、どれが一番いいのかって気になりますよね。前にも言った通り、ぶっちゃけ好きなものを選べばいいと思うんですけど(Razor/C# を推しますけどね)、今回は簡単なプログラム(0から10,000までの2乗をリスト表記)で速さを計測してみました。

PHP

f:id:daruyanagi:20121227064356p:plain

PHP はあんまり知らないのでこれでいいのか多少不安ですけど。

  • 0.007682秒
  • 0.004367秒
  • 0.003787秒
  • 0.003856秒
  • 0.003891秒

最初だけ時間を食いましたが、こんな感じ。

以下、初回計測時にはサーバーを一度再起動させています。PHP の結果を見ると、初回起動時はちょっと時間がかかるのかなと感じたので。念のためもう一度計測したら、サーバー再起動後で 0.0035609999999999秒 でした。0.007秒というのは、異常値として処理しちゃってもいいレベルかな。

•ASP.NET (ASPX/C#)

f:id:daruyanagi:20121227064720p:plain

  • 0.0029692秒
  • 0.0025189秒
  • 0.0024252秒
  • 0.0024489秒
  • 0.0024761秒

安定して速かったです。ただ、これで書こうかという気は起こらないのですけど。

•ASP.NET (Razor/C#)

f:id:daruyanagi:20121227065042p:plain

  • 0.0028398秒
  • 0.0024506秒
  • 0.0024667秒
  • 0.0025609秒
  • 0.0026207秒

ASPX よりはわずかながら遅いような(ほとんど誤差レベルですが)。PHP よりは速かった。

•ASP.NET (Razor/Visual Basic)

f:id:daruyanagi:20121227065439p:plain

  • 0.0046345秒
  • 0.0039607秒
  • 0.0036215秒
  • 0.0036577秒
  • 0.0038143秒

ついでに Razor だけ VB でも試してみました。PHP よりはマシという感じの速さですね。

まぁ、簡単すぎてあんまり参考にならないレベルですけどちょっと興味がわいたので試してみました。著しく不公平なところがあれば、ぜひ教えてください。正直あんまり自信ない。