Windows Dev. Site

.NET Webフレームワーク Nancy をC#とF#で

.NET 用の軽量Webフレームワーク Nancy をC#とF#でテストしてみました。

以下記事参照
http://shiba-yan.hatenablog.jp/entry/20130509/1368107112「Sinatra ライクな .NET 用軽量 Web フレームワーク「Nancy」を使ってみた 」

SinatraはJRuby/GoogleAppEngineで遊んだことがありますが、とてもシンプルで気にいっていました。.NETフレームワークにもこのようなものが欲しいと思っていたので、この記事をみつけてすぐにいろいろと試そうと思ったのですが、F#でASP.NETを使って何かをつくろうとしていたので、後回しにしていました。しかしASP.NETとF#って、VS2012の環境でまだ環境が十分でないためか、なかなか思った形のものができませんでした。(セルフホストのものはいろいろあるのですが・・)
そのときタイミングよくNancyでF#を使える以下の記事も見つけたので、C#とF#両方あわせて動くものを作ってみました。

http://qiita.com/yohfee/items/1e5908cd720706805c94「F#でNancyをASP.NETでホストする 」

環境 : VisualStudio 2012 / Windows 8
プロジェクト : C# ASP.NET 空のWebアプリケーション に 追加Webフォーム
追加プロジェクト : F#ライブラリ
Library1.fs

namespace Library1
open Nancy
type FsTest() =
    inherit NancyModule()
    do
        base.Get.["/fs"] <- fun _ -> box "Hello Nancy F#"

Nugetで、Nancy追加

WebForm1.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace csAspEmptyWebFsNancy
{
    public class CsTest : Nancy.NancyModule
    {
        public CsTest()
        {
            Get["/cs"] = _ => "Hello Nancy C#";
        }
    }
}

NuGetでNancy,Nancy.Hosting.Aspnet追加

ブラウザで、/cs, /fs とアクセスするとそれぞれの文字列が表示されます。
F#でパラメータを渡すことを試したのですが、いろいろと難しくまたトライしてみたいと思います。(C#は記事にあります)
結構いろいろとテストしたのですが、結局これだけしか公開できないとは・・
まだまだです。