.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#は記事にあります)
結構いろいろとテストしたのですが、結局これだけしか公開できないとは・・
まだまだです。