軽量asp.netフレームワークnancy
TRANSCRIPT
軽量ASP.NETフレームワークNancy
きよくら ならみ
Room metro #23 大阪LT
2014.03.01
自己紹介
• きよくら ならみ
– @kiyokura / id:kiyokura
• 岡山生まれ岡山育ちのプログラマー
–現在は県内の某製造業で社内SE
• NET系の開発やWebアプリ開発
– Microsoft MVP for ASP.NET/IIS
宣伝
• 3/22(土)
• MVP Communiy Camp 2014
• 私も広島会場で登壇
– Visual Studioで始めるTypeScript開発入門!
• http://atnd.org/events/47438
本題
One ASP.NET
ASP.NET
Web
Forms
Web
PagesMVC
Web
APISignalR
Single Page Apps
Sites Services
One ASP.NET
• ASP.NETにはそれぞれ特徴を持ったいくつかのフレームワークが存在
• それぞれをプラガブルに取捨選択/ミックスして使えるのが今のASP.NET
– VS2013ではミックスして使いやすくなった
そして"You"
ASP.NET
Web
Forms
Web
PagesMVC
Web
APISignalR
Single Page Apps
Sites Services
YOU! YOU!
非MS製のフレームワークも使える
• その一例が「Nancy」
http://nancyfx.org/
軽量フレームワーク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に値を渡すにはこんな感じで
オブジェクトを作って渡してやる
実行結果
シンプルなので…
• ちょっとしたことをするときにイイ
–ワンライナー的なWeb APIが欲しいとき
–2~3ページくらいでシンプルなサイト
• Web Pagesと天秤にかけるかも
• ルーティングとかテストの書きやすさとか
まとめ
• NancyはASP.NETの軽量フレームワーク
• Sinatraインスパイア系
• プラガブルなViewエンジン
• ちょっとしたことに結構便利!