軽量フレームワークNancy
きよくら ならみ
合同勉強会 in 大都会岡山 -2013 Winter
2013.12.14
自己紹介
• きよくら ならみ
– @kiyokura / id:kiyokura

• 岡山生まれ岡山育ちのプログラマー
– 現在は県内の某製造業で社内SE

• NET系の開発やWebアプリ開発
– Microsoft MVP for ASP.NET/IIS
One ASP.NETの話し
• ASP.NETは其々特徴を持ったいくつかの
フレームワークが存在
• それぞれをプラガブルに取捨選択/ミック
スして使えるのが今のASP.NET
そして"You"

Sites

Services
Single Page Apps

YOU!

Web
Forms

Web
Pages

MVC

ASP.NET

Web
API

SignalR

YOU!
非MS製のフレームワークも使える
• その一例が「Nancy」
軽量フレームワークNancy
• Sinatraインスパイア系
– 軽量
– シンプル

• OSS
– http://nancyfx.org/
– https://github.com/NancyFx
– MIT License
HTTP動詞+パス+アクション
public class SampleModule
: Nancy.NancyModule
{
public SampleModule()
{
Get["/"] = _ => "Hello World!";
Get["/Hoge/"] = _ => "fuga!!";
}
}
実行結果
使い方
• NuGetでインストールするだけ
– 「空のASP.NET Webアプリケーション」に
PM> Install-Package Nancy.Hosting.Aspnet
View Engine (template)もあるよ
• HTML全部文字で返すはもちろん面倒
• ちゃんとview engineがあります

• それも、複数あるのでお好みで!
2013.12現在の選択肢
•
•
•
•
•
•
•
•

Razor
Spark
DotLiquid
NDjango
Nustache
Markdown
NHaml
Parrot
View engineの使い方
• 使いたいView Engineのパッケージを
NuGetからインストール
– 例:razor
PM> Install-Package Nancy.Viewengines.Razor

• 一つのサイトで複数のエンジンを併用可
能
Markdownの例

コードから変数を渡す例
Viewを戻す

viewに値を渡すには
こんな感じで
オブジェクトを作って渡して
やる
実行結果
シンプルなので…
• ちょっとしたことをするときにいいかも
– ちゃんとMVCを意識して設計するまでもない
ようなものとか
まとめ
• NancyはASP.NETの軽量フレームワーク
• Sinatraインスパイア系

軽量フレームワークNancy