atelier:mitsuba

i love UI/UX, Blend, XAML, Behavior, P5, oF, Web, Tangible Bits and Physical computing. なにかあればお気軽にご連絡ください。atelier@c-mitsuba.com

NancyでHello Worldからデプロイまでしてみる

1.VSのASP.NETで空のプロジェクトをつくる。
今回のプロジェクト名は「Antoinette」としました。
テンプレ選ぶとわけのわからないコードたくさんでよくわからない。
f:id:c-mitsuba:20140714232741p:plain
f:id:c-mitsuba:20140714232747p:plain

2.OKするとAzureにVMとかWebサイト立てようとするから、言われるがままつくる。

3.NugetでNancy.Hosting.Aspnetをインストール
f:id:c-mitsuba:20140714232922p:plain

4.空っぽのプロジェクトにASP.NETモジュールを追加する。
とりあえず「SampleModule.cs」にしてみる。

5.サンプルコードをベタ貼りする。

namespace Antoinette
{
    public class SampleModule : Nancy.NancyModule
    {
        public SampleModule()
        {
            Get["/"] = _ => "Hi Nancy!";
        }
    }
}

6.実行すると、「Hi Nancy!」が表示される。
f:id:c-mitsuba:20140714233210p:plain

7.書き換えてみた。

namespace Antoinette
{
    public class SampleModule : Nancy.NancyModule
    {
        public SampleModule()
        {
            Get["/"] = _ => "Hi Nancy!";
            Get["/rainy"] = _ => "今日も雨ですね。";
        }
    }
}

f:id:c-mitsuba:20140714233354p:plain

8.パラメータを受け取れるようにする。

using Nancy.Helpers;

namespace Antoinette
{
    public class SampleModule : Nancy.NancyModule
    {
        public SampleModule()
        {
            Get["/"] = _ => "Hi Nancy!";
            Get["/rainy"] = _ => "今日も雨ですね。";
            Get["/{id}/"] = _ =>
            {
                return string.Format(
                    "{0}(はぁと",
                    HttpUtility.UrlDecode(_.id)
                );
            };
        }
    }
}

f:id:c-mitsuba:20140714233933p:plain

9.でっぷろーいしてみる。
f:id:c-mitsuba:20140714234112p:plain
f:id:c-mitsuba:20140714234119p:plain

2でつくったプロジェクトにデプロイされる。
簡単。
http://antoinette.azurewebsites.net/
にアクセスすると「Hi Nancy!」が、
http://antoinette.azurewebsites.net/rainy/
にアクセスすると「今日も雨ですね。」が帰ってくる。
簡単。
f:id:c-mitsuba:20140714234327p:plain

GET["アクセスしたいURL"]で書いて、好きなString返すようにすればWebAPIが作れるみたいで、この手軽さは割りと好みかもしれない。
MVCとかさっぱりなので、ASP.NET MVCとかさっぱりわからへん。。。
ためしてみたものの、プロジェクト作ったその次する操作すらわからなくて挫折しました。

とりあえず、しばだるカップルのブログを参考に、ここまでいけました!
http://shiba-yan.hatenablog.jp/entry/20130509/1368107112
http://daruyanagi.jp/entry/2013/05/10/085706