Webアプリを創る 😊クリエイティブWeb

カテゴリー: プログラミング

ASP.NET MVC 3 について

2010年12月1日

Umbraco CMS の次期バージョンである Umbraco 5 (Jupiter) は ASP.NET MVC 3 ベースで作成される予定であり、Orchard CMS も MVC 3 ベースで開発中なので、ASP.NET MVC を勉強しないといけないと思っていたのですが、11月8日に ASP.NET MVC 3 RC が公開されたので、ASP.NET MVC を少し学習しています。

1. マニュアルについて

Microsoft の ASP.NET MVC の日本語のページもかなり充実してきており、ASP.NET MVC チュートリアルMVC Music Store チュートリアルの日本語訳ができていて参考になりました。ただし、MVC Music Store チュートリアルについては、日本語訳は、バージョンが 0.8 がやっと公開されたところですが、英語版では Ver 1.0 が 10月 8日に公開されていて内容も Ver 0.8 よりかなり充実しています。これらは ASP.NET MVC 2 についてのものですが、ASP.NET MVC 3 については、CodeZine 等で以下のとおり Scott Guthrie 氏のブログが翻訳されているので、それをみれば理解することはそれほど難しいことではないと思います。

ASP.NET MVC 2 のプロジェクトから ASP.NET MVC 3 へのアップグレードの方法については、リリースノート(英文)に、msdn には、ASP.NET MVC 3 のドキュメント(英文)があります。

2. MVC 3 の開発環境について

ASP.NET 4.0 及び Visual Studio 2010 が必要です。Visual Studio は、Visual Web Developer 2010 Express でも大丈夫なので、無料で環境を構築することができます。Visual Studio 2010 Professional 以上がないと単体テストの作成ができませんが、MVC を学習するのであれば、Web Developer Express でも特に問題はありません。

3. MVC 3 Razor について

MVC 3 での新機能の目玉の一つは、Razor ビューエンジンです。RC 版では、Visual Studio のインテリセンスの機能も有効になって使いやすくなっています。MVC 3 Razor の機能については、Scott Guthrie 氏のブログでわかりやすく解説されているので理解は容易でした。Razor の売りは、@文字を先頭につけてコード・ブロックを示し、明示的に閉じる必要がなくなったこと、レイアウトの記述の簡略化、@model キーワードの導入により入力が効率化できるということです。どの程度効率化できるかを具体的に比較するため、MVC Music Store チュートリアルのサンプルを Razor に変換してみました。下の図のようになり、文字数が647文字から348文字に減少し、見た目もかなりすっきりしたので、かなり効果があるのがわかります。少し話はそれるのですが、このような機能は、使う側には簡単になのですが、作る側では構文を自動的に解析するという高い技術力が要求されるし、その手間も相当なものだと思うのですが、このようなものを開発してしまう Microsoft の技術力には感心させられました。

MVC Music Store チュートリアル英語版 Page 86

image

MVC 3 Razor の場合

image

4. パッケージについて

ASP.NET MVC では、jQuery 等の javascript のライブラリは使いやすくなったのですが、一方で ASP.NET Form のコンポーネントの多くが使用できなくなりました。開発作業を効率化するためには、OSS や商用のコンポーネントが広く利用できるのは重要なことです。ASP.NET MVC でも MVC 3 になって、このことがかなり考慮されてきているように感じられました。

まず、MVC 3 をインストールすると NuGet Package Manager が Visual Studio にインストールされるようになりました。Nuget は、プロジェクトにパッケージを簡単にインストールするためのツールで、下の図のように簡単にインストールできるようになります。
image

次に、MVC 3 をインストールすると System.Web.Helpers に以下のようなヘルパーが登録され利用できるようになっています。

ヘルパー

概要

Chart

チャートの描画

Crypto

ハッシュアルゴリズムを使ってパスワードの作成

WebGrid

データベースのデータ等の表の描画。ページングと並べ替えをサポート

WebImage

画像の描画

WebMail

電子メールの送信

また、WebMatrix では、Twitter.Search や ReCaptcha 等の機能を持つ Microsoft.Web.Helpers.dll というヘルパーが提供されますが、Visual Studio からもこのアセンブリを参照すれば利用することができます。

例えば、Chart に関していえば、ASP.NET Charting Controls を少し設定をしてやれば(参照)、以前から MVC で利用することができましたが、MVC 3 からは正式に対応するということで、設定無しで Razor に直接記述することもできるし、Controllers に記述することができます。

WebMatrix のチュートリアルにある ASP.NET API Quick Reference にある例では、Razor に記述する場合は、

image

Controllers に記述する場合は、以下のように記述して、Razor に <img src="@Url.Content("~/home/GetChart")" /> というように記述してやれば上と同じように表示されます。
image

また、Write に代えて Save にすればファイルにグラフのイメージを保存できるし、SaveToCache にすればキャッシュにイメージを保存することができます。Chart については、Google Chart ToolsJS Chart という選択肢もありますが、Chart にはサーバー側で作成できるという特徴があります。このように、ASP.NET MVC においても、多くのツールが提供されより楽しくプログラミングができるようになることを期待しています。

ASP.NET で CKEditor を導入

2010年9月8日

CKEditor については、個人的には FCKEditor の時代に mojoPortal で使っていたこともあり結構気に入っていました。CKEditor になってからは日本語の入力でトラブルが発生するので使うのを止めていましたが、現時点では改善され使用上の問題はなくなっているので、CKEditor の組み込みに挑戦してみました。設定は簡単で動作も良好だったので、インストールの手順を紹介しておきます。TinyMCE と比較して、以下の点が優れていると思うので、今後は CKEditor をできるだけ使おうと思っています。

  • TinyMCE では行の先頭にある全角の空白が削除されてしまう。
  • テーブルの列幅をマウスで変更できる(Ver 3.4からで設定が必要)。

なお、CKEditor は、以前の FCKEditor とは異なり TinyMCE と同様に Javascript だけで作成されているため、ASP.NETのページでも、PHPのページでもインストールの方法は基本的に同じです。

1.CKEditor の取得等

(1) CKEditor のダウンロードのページから、CKEditor の zip 版 をダウンロードします。

(2) ダウンロードした zip ファイルを解凍します。

(3) Visual Studio または Visual Web Developer Express を起動します。

(4) 新規でWeb アプリケーションかWeb サイトを作成します。既存のがあればそれを利用することもできます。

(5) (2) で解凍したファイルの ckeditor フォルダー以下を作成した Web アプリケーションのルートフimageォルダーにコピーします。フォルダー名やフォルダーの位置は変更しても支障はありませんが、その場合は、以下を適宜読み替えてください。ソリューション エクスプローラで、「すべてのファイルを表示」ボタンをクリックすると左の図のように表示されると思います。なお、左の図では、php 等ASP.NET では、不要なファイルは削除しています。もし、必要であれば、ckeditor フォルダーを選択し、右クリックして、「プロジェクトに含める」をクリックして、公開に必要なファイルをプロジェクトに含めるため出力ディレクトリにコピーをする設定にします。
 

 
 
 
 
 
 
 
 
 
2.インストール

最初は、基本の設定をして、CKEditor を動作させてみます。head 要素に、以下の赤字の部分を追加します。上の一行は、TinyMCE の Javascript ファイルである tiny_mce.js を使用するという宣言をします。

<head runat=”server”>
<title>CKEditor の導入</title>
<script type="text/javascript" src="./ckeditor/ckeditor.js"></script>
</head>

head 要素の設定が終わったら、TinyMCE を実際に動作させるテキストボックスを作成してやります。ツールボックスで TextBox を選択して適当な場所にドラッグ・ドロップし、プロパティで TextMode を MultiLine に変更します。ソースモードでは、以下のような一行が追加されます。

<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine">
</asp:TextBox>

その行より下に以下の CKEditor の初期化スクリプトを追加します。

<script type="text/javascript">
    CKEDITOR.replace("TextBox1");
</script>

以上で、Web アプリケーションを開始すると、以下の図のように、テキストボックスに CKEditor のパネルが表示されれば CKEditor 設定は成功です。CKEditor では設定なしで、すべてのツールバーが表示されます。

image

3.HttpRequestValidationException への対応

画面に送信ボタンを追加すれば、TinyMCE で編集した結果は、TextBox1.Text で簡単に取得できるのですが、実際に実行してみると以下の図のように、「説明: 要求の検証により、危険性のあるクライアント入力値が検出されました。要求の処理は中止されました。この値は、クロス サイト スクリプト攻撃などのアプリケーションのセキュリティ問題を引き起こす可能性があります。ページ ディレクティブか、 構成セクションの validateRequest=false を設定することによって要求の検証を無効にできます。しかしこの場合、アプリケーションですべての入力を明示的に確認することをお勧めします。 」というエラーが発生します。
image

この解決策は、以下の二通りの方法があるので、好みの方法を選択してください。

(1) 要求の検証を無効にする

エラーの説明にあるように、ディレクティブに ValidateRequest=”false” を追加します。具体的には、aspx ファイルの先頭にある

<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Default.aspx.cs” Inherits=”_Default” %>

を以下のように変更します。

<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Default.aspx.cs” Inherits=”_Default” ValidateRequest=”false” %>

ASP.NET 4.0 では、さらに Web.config ファイルの system.web セクションに以下の一行を追加します。

<system.web>

<httpRuntime requestValidationMode=”2.0″ />
</system.web>

(2) HTML エンコードしたものを送信する

出力を HTML エンコードして出力するためには、CKEditor の初期化スクリプトで以下のように、htmlEncodeOutput を true に変更します。なお、config.js ファイルを使った方法でも変更できます。

<script type="text/javascript">
    CKEDITOR.replace("MainContent_TextBox1",
    {
        htmlEncodeOutput: true
    });
</script>

サーバー側で以下のように、HtmlDecode すると元のHTMLソースに戻すことができるので、そのデータを使って保存等の処理をします。なお、テキストボックスにデータを代入する場合にはエンコードせずに代入ます。

protected void Button1_Click(object sender, EventArgs e)
{
    string s = HttpUtility.HtmlDecode(TextBox1.Text);
    ………
}

5.設定の変更

ここでは、簡単に CKEditor の設定の変更をメモしておきます。詳しくは、英文ですが本家の CKEditor 3.x – Developer’s Guide を参考にしてください。設定の変更については、については、CKEditor の初期化スクリプトで設定する方法と config.js ファイルで設定する方法の二通りがあり、両者を併用することも可能です。

(1) 初期化スクリプトで設定

初期化スクリプトで設定する例です。以下は、HTMLエンコードして出力する、テーブルの列幅をマウスで変更できるようにする、ツールバーでフォームを表示しないようにする設定をおこなっています。
<script type="text/javascript">
    CKEDITOR.replace("MainContent_TextBox1",
    {
        htmlEncodeOutput: true,       //HTMLエンコードして出力する
        extraPlugins: ‘tableresize’,  //テーブルの列幅をマウスで変更できるようにする
        toolbar:                      //ツールバー
        [
            ['Source', '-', 'Save', 'NewPage', 'Preview', '-', 'Templates'],
            ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Print', 'SpellChecker', 'Scayt'],
            ['Undo', 'Redo', '-', 'Find', 'Replace', '-', 'SelectAll', 'RemoveFormat'],
            ['BidiLtr', 'BidiRtl'],
            ‘/’,
            ['Bold', 'Italic', 'Underline', 'Strike', '-', 'Subscript', 'Superscript'],
            ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', 'Blockquote', 'CreateDiv'],
            ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
            ['Link', 'Unlink', 'Anchor'],
            ['Image', 'Flash', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'PageBreak'],
            ‘/’,
            ['Styles', 'Format', 'Font', 'FontSize'],
            ['TextColor', 'BGColor'],
            ['Maximize', 'ShowBlocks', '-', 'About']
        ]
    });
</script>

(2) config.js で設定

(1) と同じ内容をconfig.js で設定する例です。config.js については、既定の設定ファイルなので、config.js に設定内容を書き込むだけで設定することができます。config.js とは別の名前を使うこともできますが、その場合は初期化スクリプトに、customConfig : ‘スクリプトのurl’ の項目を追加する必要があります。

config.htmlEncodeOutput = true;       //HTMLエンコードして出力する
config.extraPlugins = ‘tableresize’;     //テーブルの列幅をマウスで変更できるようにする
config.toolbar = ‘MyToolbar’;             //ツールバー
config.toolbar_MyToolbar =
[
     ['Source', '-', 'Save', 'NewPage', 'Preview', '-', 'Templates'],
     ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Print', 'SpellChecker', 'Scayt'],
     ['Undo', 'Redo', '-', 'Find', 'Replace', '-', 'SelectAll', 'RemoveFormat'],
     ['BidiLtr', 'BidiRtl'],
     ‘/’,
     ['Bold', 'Italic', 'Underline', 'Strike', '-', 'Subscript', 'Superscript'],
     ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', 'Blockquote', 'CreateDiv'],
     ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
     ['Link', 'Unlink', 'Anchor'],
     ['Image', 'Flash', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'PageBreak'],
     ‘/’,
     ['Styles', 'Format', 'Font', 'FontSize'],
     ['TextColor', 'BGColor'],
     ['Maximize', 'ShowBlocks', '-', 'About']
];

6. 編集領域の CSS の設定

編集領域については ckeditor フォルダにある contents.css がデフォルトの CSS ファイルになっているので、contents.css に記述すれば CSS を設定ができます。また、config.contentsCss で Url を設定することにより、任意の css ファイルを設定することができます。

ASP.NET で TinyMCE を導入

2010年7月21日

ASP.NET で TinyMCE をインストールしてみました。設定は簡単で動作も良好だったので、インストールの手順を紹介しておきます。

ASP.NET で使用できる HTML エディターには、TinyMCE 以外に、ASP.NET AJAX Control Toolkit に含まれる HTMLEditorFreeTextBoxCKEditor という選択肢があるのですが、HTMLEditor は機能が少なく処理がやや重いし、FreeTextBox は無料版では表作成及びxhtml の機能がサポートされていません。CKEditor については、FCKEditor の時代には、mojoPortal で使っていたこともあり結構気に入っていたのですが、CKEditor になってから日本語の入力でトラブルが発生するので使うのを止めました。今回再度試してみたのですが、日本語の変換が異常に遅くなる、入力したところの前の部分が消えたりカーソルの位置が別の所に移動するという現象が発生して、デフォルトの設定では利用できる状態でないと感じました。(2010/8/14 修正 CKEditor 3.3.2 では改善され使用上の問題はありません。)そういうことで、TinyMCE の組み込みに挑戦しました。

TinyMCE は、Javascript で作られており、Textarea を認識して動作するため、ASP.NETのページでも、PHPのページでもインストールの方法は基本的に同じになります。

1.TinyMCE の取得等

(1) TinyMCE のダウンロードのページから、Development package (Main package でも構わないのですが) をダウンロードします。

(2) ダウンロードした zip ファイルを解凍します。

(3) Visual Studio または Visual Web Developer Express を起動します。

(4) 新規でWeb アプリケーションかWeb サイトを作成します。既存のがあればそれを利用することもできます。

(5) (2) で解凍したファイルを tinymce 以下を作成した Web アプリケーションのルートフォルダーにコピーします。TinyMCE の動作に必要なのは、tinymce\jscripts\tiny_mce フォルダーにあるファイルだけなのでtiny_mce フォルダーのみをコピーしても問題なく動作します。その場合は、以下を適宜読み替えてください。

(6) ソリューション エクスプローラで、「すべてのファイルを表示」ボタンをクリックすると以下の図のように表示されると思います。tinymce\jscripts\tiny_mce フォルダーを選択し、右クリックして、「プロジェクトに含める」をクリックして、TinyMce で公開に必要なファイルをプロジェクトに含めておきます。

image

2.基本の設定

最初は、基本の設定をして、TinyMCE を動作させてみます。head 要素に、以下の赤字の部分を追加します。上の一行は、TinyMCE の Javascript ファイルである tiny_mce.js を使用するという宣言をします。それ以降の部分で、tinyMCE の設定を tinyMCE.init で行います。ここでは、mode を textareas に設定しただけの最小限の設定しなっています。

<head runat=”server”>
<title>TinyMCEの導入</title>
<script type=”text/javascript” src=”./tinymce/jscripts/tiny_mce/tiny_mce.js”>
</script>
<script type=”text/javascript”>
tinyMCE.init({
mode: ‘textareas’
});
</script>

</head>

head 要素の設定が終わったら、TinyMCE を実際に動作させるテキストボックスを作成してやります。ツールボックスで TextBox を選択して適当な場所にドラッグ・ドロップし、プロパティで TextMode を MultiLine に変更します。ソースモードでは、以下のような一行が追加されます。

<asp:TextBox ID=”TextBox1″ runat=”server” TextMode=”MultiLine” Height=”400px” Width=”600px”></asp:TextBox>

以上で、Web アプリケーションを開始すると、以下の図のように、テキストボックスの下側にボタンの数は少ないのですが TinyMCE のパネルが表示されれば TinyMCE 設定は成功です。これで TinyMCE は正常に動作しています。結構簡単でしょう。

tinymce02

3.HttpRequestValidationException への対応

画面に送信ボタンを追加すれば、TinyMCE で編集した結果は、TextBox1.Text で簡単に取得できるのですが、実際に実行してみると以下の図のように、「説明: 要求の検証により、危険性のあるクライアント入力値が検出されました。要求の処理は中止されました。この値は、クロス サイト スクリプト攻撃などのアプリケーションのセキュリティ問題を引き起こす可能性があります。ページ ディレクティブか、 構成セクションの validateRequest=false を設定することによって要求の検証を無効にできます。しかしこの場合、アプリケーションですべての入力を明示的に確認することをお勧めします。 」というエラーが発生します。
image

この解決策は、以下の二通りの方法があるので、好みの方法を選択してください。

(1) 要求の検証を無効にする

エラーの説明にあるように、ディレクティブに ValidateRequest=”false” を追加します。具体的には、aspx ファイルの先頭にある

<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Default.aspx.cs” Inherits=”_Default” %>

を以下のように変更します。

<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Default.aspx.cs” Inherits=”_Default” ValidateRequest=”false” %>

ASP.NET 4.0 では、さらに Web.config ファイルの system.web セクションに以下の一行を追加します。

<system.web>

<httpRuntime requestValidationMode=”2.0″ />
</system.web>

(2) HTML エンコードしたものを送信する

tinyMCE.init に以下のような一行を追加して、encoding を xml に変更し、TinyMCE で編集したHTML をエンコードしてサーバーに返すようにします。

tinyMCE.init({

encoding: ‘xml’,

});

サーバー側で以下のように、HtmlDecode すると元のHTMLソースに戻すことができるので、そのデータを使って保存等の処理をします。ここで少し不思議な動作と思うのですが、何も処理をしない状況で送信をするとテキストボックスにHTMLをエンコードしたもの即ちソースが表示されるようになります。それで、以下のように、テキストボックスにデコードしたデータを代入してやると正常に表示されます。テキストボックスに初期データを設定する場合もエンコードせずに代入します。

protected void Button1_Click(object sender, EventArgs e)
{
string s = HttpUtility.HtmlDecode(TextBox1.Text);
TextBox1.Text = s;
}

4.日本語パックの導入

TinyMCE の言語パックのページで、日本語を選択して言語パックをダウンロードします。次に、言語パックを解凍後、/tinymce/jscripts/tiny_mce/ フォルダーにコピーします。すると、例えば langs フォルダーには、en.js に加えて ja.js が追加されます。追加したファイルもプロジェクトに含めておきます。それから tinyMCE.init に以下のような一行を追加して日本語の指定をしてやります。

tinyMCE.init({

language : ‘ja’,

});

5.全機能の設定

2では基本機能のみの設定でしたが、ここでは全機能を設定してみます。TinyMCE の Examples のページからソースコードをコピーして貼り付けます。開始をすると、以下の図のように見慣れたTinyMCEの編集画面が表示され、エディターが動作します。

image

参考までに関係部分のソースを貼り付けておきます。

<script type=”text/javascript” src=”./tinymce/jscripts/tiny_mce/tiny_mce.js”></script>
<script type=”text/javascript”>
tinyMCE.init({
mode: ‘textareas’,
language: ‘ja’,
theme: “advanced”,
plugins: “safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,imagemanager,filemanager”,
// Theme options
theme_advanced_buttons1: “save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect”,
theme_advanced_buttons2: “cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor”,
theme_advanced_buttons3: “tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen”,
theme_advanced_buttons4: “insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage”,
theme_advanced_toolbar_location: “top”,
theme_advanced_toolbar_align: “left”,
theme_advanced_statusbar_location: “bottom”,
theme_advanced_resizing: true,
// Example content CSS (should be your site CSS)
content_css: “css/example.css”,
// Drop lists for link/image/media/template dialogs
template_external_list_url: “js/template_list.js”,
external_link_list_url: “js/link_list.js”,
external_image_list_url: “js/image_list.js”,
media_external_list_url: “js/media_list.js”,

// Replace values for the template plugin
template_replace_values: {
username: “Some User”,
staffid: “991234″
}
});
</script>

6.設定の調整

これでTinyMCE はそれなりに動作し、実用にも使えないことはありません。しかし、上のソースには、image list のようにインストールしていないものも含まれています。また、ボタンで不要なものを削除したり、エディタの細かな調整作業が必要になります。実務ではこのあたりで結構時間が掛かるように思います。時間ができれば、調整作業についてもメモをしたいと思います。

TinyMCE のマニュアル http://wiki.moxiecode.com/index.php/TinyMCE:Index

WebMatrix Beta で遊んでみました

2010年7月18日

Microsoft WebMatrix は、IIS Developer Express、ASP.NET(ビューエンジン”Razor”)、SQL Server Compact 4.0 を含んだ統合的なウェブ開発ツールで、7月6日にベーター版が公開されたので少し遊んでみました。

インストールについて

インストールは、Web Platform Installer 3.0 Beta を利用します。WebMatrix はワンクリックでインストールすることができます。Windows XP 以降のすべての機種に対応しており、XP Home Edition や Windows 7 Starter にもインストールすることができます。

IIS Developer Express について

Visual Studio に付属する ASP.NET 開発サーバの手軽さと、IIS 7.x のパワーと機能が備わった開発用の Web サーバーだそうです。今後、Visual Studio に付属する ASP.NET 開発サーバーに代わって開発用サーバーとして利用されると思われます。IIS Developer Express も、Windows XP 以降のすべての機種に対応しており、機能制限が厳しい上に今となっては機能的にも劣る IIS 5.1がインストールされている XP Professional や IIS がそもそも添付されていない XP Home や Vista Home Basic では、開発者にはかなりのメリットがあると思います。自宅サーバーとして使用できるかどうかですが、IIS Developer Express FAQ によると、 設定をすれば外部接続は可能なようですが、設定方法はよくわかりません。Microsoft が、インターネットでWeb サーバーとして利用できるとはっきりということはないと思うので、正式版が公表された時にテストしてみたいと思っています。

Razor について

ASP.NET MVC で利用するビューエンジンで、現在のようにコードを<% %>で囲む代わりに先頭に@をつけるだけでよく便利になりそうです。詳しくは、ScottGu’s Blog の Introducing “Razor” (日本語の翻訳)をみてください。

SQL Server Compact 4.0 について

SQL Server Compact 4.0 (SQL CE 4.0)は、データベースサーバーのインストールが不要なファイルベースのデータベースエンジンで、ファイルコピーで簡単に使えるデータベースです。管理者権限がなくても利用することができます。SQL CE の 3.5 までは、サーバーのインストールが必要であり、そのインストールには管理者権限が必要であったことなど使い勝手がよくなかったので、あまり利用されていませんでした。今回のバージョンでは、これらの問題点が改善され、レンタルサーバーでも簡単に利用できるようになっています。

mojoPortal では、早速 SQL CE 4.0 に対応しています。 SQL CE 4.0 を、ファイルベースのデータベースとして最もよく使われている SQLite を比較すると、SQL CE 4.0 には、Midium Trust で動作することと、上位の SQL Server への移行が容易であるというメリットがあります。一方で、SQLite は、Linux でも動作するという優位性があります。

WebMatrix について

WebMatrix は、IIS Developer Express、ASP.NET "Razor"、SQL CE に Web Gallary 等のの機能を追加し、ウェブサイトを構築・管理するための軽量ツールです。下の図のようにソースコードの編集機能もありますが、インテリセンスの機能はまだついていません。

image

Template からのサイトの作成をしてみると Razor で記述されている .cshtml ファイルが作成されます。作成したサイトをどこで公開できるのかということで、とりあえずは SP.NET 4.0 に対応したサーバーであればいいということのようなので、ExpressWeb で公開してみました。一応公開はできた(WebMatrix で作成したサイト)のですが、WebMatrix 上ではURL に .cshtml の拡張子をつけなくても動作するのですが、ExpressWeb では動作しないので、リンクに .cshtml の拡張子をつけました。ExpressWeb は、まだ WebMatrix 対応になっていないのかもしれません。

WebMatrix に含まれる IIS Developer Express、ASP.NET "Razor"、SQL CE 4.0 については、方向性もよくわかり、将来的にも利用される技術だということがよく理解できたのですが、WebMatrix の方は、今後どのように利用されていくのかが明確でないように思います。過去の WebMatrix と同じようにすぐに消滅しないためには、新たなユーザーを引きつける魅力がもう少し必要だと思います。

Web Platform Installer 3.0 Beta が公開されています

2010年7月8日

Web Paltform Installer 3.0 Beta では、Webアプリの作成と運用に必要なツールをパッケージ化した「WebMatrix」のBeta 版をインストールすることができます。WebMatrix は、IIS Developer Express、ASP.NET、SQL Server Compact から構成されているそうです。

WebMatrixを起動させると以下のような画面が立ち上がります。

image

Web Gallery からを選択すると以下の画面になります。

image

Template からの作成を選択すると以下の画面が立ち上がります。

image

こう見てみると WebMatrix は、Windows XP には最適のツールのようです。Windows XP に付属する IIS 5.1 は、IIS 7.5 と比較すると機能的には相当劣っていますが、これで Windows XP でも、最新のIIS の機能が使用できるようになるので、XP の寿命がまた延びたようです。

WebMatrix について、IIS が利用できない Windows 7 Starter や XP Home Basic で動作するのか、開発用だけでなく自宅サーバーにも使用できるのかどうか等についても詳しく調べて後日報告したいと思います。