BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 続報:F#と他言語でRazor

続報:F#と他言語でRazor

原文(投稿日:2011/01/03)へのリンク

先月、Vladimir Kelman氏が新しい Razorビュー エンジンをF#で使うことができるか質問した。 Scott Guthrie と Marcin Doboszの両氏と話して、必要なプラグインを全て自分でビルドして、インストールすればできることがわかった。

最初のハードルは、シンタックスである。古いASPスタイルのビュー エンジンと違って、ビューとインラインコード間の境界は、非常に微妙で、多くの言語が構文的に非互換である可能性が高い。 Scott Guthrie氏によれば、「Razorは概念的にはF#をサポートできる(シンタックスは問題ない、という意味」。彼は、その後、実際に繋ぐために何が必要かを説明した Marcin Dobosz 氏との話で、前のことを撤回した。

純粋のRazor側(System.Web.Razor.dll)では、 CodeParser, RazorCodeGenerator そして RazorCodeLanguageから派生した自分のクラスを(必要な他のユーティリティ クラスと一緒に)実装する必要があり、それから、ファイル拡張子を RazorCodeLanguage.Languagesで登録します。あなた自身の言語を実装するためのチュートリアルはないので、ソースを見て、 CSharp やVBに関連したクラスが何をやっているのか見る必要があるでしょう。

MVCサイド(もし@modelをサポートしたいなら)では、 MvcWebPageRazorHostから派生し、自分のベースのパーサーやジェネレータから派生したMVC特有のパーサーとジェネレータを返す必要があります。同じように、 System.Web.Mvc.Razorネームスペースにあるクラスのソースコードを見てください。あるいは、これらをあなたのベースのパーサーとジェネレータに実装することもできます。そうすると、すべてがMVCプロジェクトのみでしか動かなくなりますが。

もちろん、これは、新しい言語でRazorを動かすための本当に最小限のことである。もしあなたがパーサーやジェネレータを書く労力を惜しまないなら、Visual Studioでちゃんと動くために必要なプロジェクト、アイテムそしてT4テンプレートを作成するための、余分な仕事も喜んでやるだろう。

ASP.NET MVC 3の October 2010 betaのソースコード は、 Codeplexで入手できる。ASP.NET プレリリース コンポーネント用Microsoft ソースコード ライセンスのもとでリリースされている。

この記事に星をつける

おすすめ度
スタイル

BT