ASP.NET ルーティング 続き on 2003 Server

この前の ASP.NET ルーティングは、VS2008 + Vista ASP.NET開発サーバーであっさり動きました。

ところが、2003 Server で試してみると動かない。

???ということで調べてみると、

IIS の Web サイトのプロパティ → ホームディレクトリ タブ → 構成ボタンを押し下げます。

image

すると、アプリケーションの構成ダイアログが表示されます。

image 

ここで、ワイルドカード アプリケーション マップで、挿入ボンタンを押す。

image

c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll を指定し、

ファイルの存在を確認する チェックボックスを外す。

これにより該当しないファイル拡張子の場合、aspnet_isapi.dll で、ルーティングが追加されていないかどうか確認するようになりました。

Culminis : 1/22/2009 Announcing the APAC Regional Board

シアトルでルームシェアしたインド人の Ashwin からのチャットで、次のお知らせをもらった。

http://thevoice.culminis.com/APAC/Lists/Posts/Post.aspx?ID=4

北端さんが DAL (Director-at-Large): で日本代表として参加されているとのこと。

プロファイルは

http://new.culminisconnections.com/BOD/APAC.aspx?PageView=Shared

ASP.NET ルーティング

MSDN を読んでいたら、ASP.NET ルーティングということで、URLの書き換え方法が載っていた。

http://msdn.microsoft.com/ja-jp/library/cc668201.aspx

昔調べた方法から、IIS7 対応もあり、だいぶ変わっているようなので調べてみた。そうしたら、ええ~~、こんな簡単にできようになっちゃたんだー!と感動して、ためしに動かしてみようとしました。すると、CategoryRouteHandler がありませんと怒られる。そりゃそうだ、どこにもそんなコードがない。あれ??ということで調べてみると、どっとねっとふぁんBlog の小野さんが

ASP.NET ルーティングを実装する

で丁寧に解説してあった。さすが師匠wと感動する一方、やっぱりハンドラ書かないといけないのね。orz

LinqDataSource によるメモリ内コレクションのデータへの接続

http://msdn.microsoft.com/ja-jp/library/bb547113.aspx

Default.aspx.cs にMoviewLibraryクラスを追加。

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace LinqDataSource
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }

    public class MovieLibrary
    {
        string[] _availableGenres = { "Comedy", "Drama", "Romance" };

        public MovieLibrary()
        {
        }

        public string[] AvailableGenres
        {
            get
            {
                return _availableGenres;
            }
        }
    }
}

GridViewを追加。新しいデータソースを選択。

image

LINQを選択。

image

データソースの構成ダイアログで、MoviewLibraryを選択。

image

データの選択の構成ダイアログで、テーブル、Select, GroupBy, Where, OrderBy を指定可能。

image

実行すればこのとおり。

image

生成されたWPFコードは、

<asp:GridView ID="GridView1" runat="server" DataSourceID="LinqDataSource1">
</asp:GridView>
<asp:LinqDataSource ID="LinqDataSource1" runat="server"
    ContextTypeName="LinqDataSource.MovieLibrary" TableName="AvailableGenres">
</asp:LinqDataSource>

列名までしっかり処理されている。もう少し複雑なテーブルで試してみると、これがずいぶん便利だということに気が付く。