軽量asp.netフレームワークnancy

21
軽量ASP.NETフレームワーク Nancy きよくら ならみ Room metro #23 大阪 LT 2014.03.01

Upload: narami-kiyokura

Post on 16-Feb-2017

5.165 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 軽量ASP.NETフレームワークNancy

軽量ASP.NETフレームワークNancy

きよくら ならみ

Room metro #23 大阪LT

2014.03.01

Page 2: 軽量ASP.NETフレームワークNancy

自己紹介

• きよくら ならみ

– @kiyokura / id:kiyokura

• 岡山生まれ岡山育ちのプログラマー

–現在は県内の某製造業で社内SE

• NET系の開発やWebアプリ開発

– Microsoft MVP for ASP.NET/IIS

Page 3: 軽量ASP.NETフレームワークNancy

宣伝

• 3/22(土)

• MVP Communiy Camp 2014

• 私も広島会場で登壇

– Visual Studioで始めるTypeScript開発入門!

• http://atnd.org/events/47438

Page 4: 軽量ASP.NETフレームワークNancy

本題

Page 5: 軽量ASP.NETフレームワークNancy

One ASP.NET

ASP.NET

Web

Forms

Web

PagesMVC

Web

APISignalR

Single Page Apps

Sites Services

Page 6: 軽量ASP.NETフレームワークNancy

One ASP.NET

• ASP.NETにはそれぞれ特徴を持ったいくつかのフレームワークが存在

• それぞれをプラガブルに取捨選択/ミックスして使えるのが今のASP.NET

– VS2013ではミックスして使いやすくなった

Page 7: 軽量ASP.NETフレームワークNancy

そして"You"

ASP.NET

Web

Forms

Web

PagesMVC

Web

APISignalR

Single Page Apps

Sites Services

YOU! YOU!

Page 8: 軽量ASP.NETフレームワークNancy

非MS製のフレームワークも使える

• その一例が「Nancy」

Page 9: 軽量ASP.NETフレームワークNancy

http://nancyfx.org/

Page 10: 軽量ASP.NETフレームワークNancy

軽量フレームワークNancy

• Sinatraインスパイア系

–軽量

–シンプル

• OSS

– http://nancyfx.org/

– https://github.com/NancyFx

– MIT License

Page 11: 軽量ASP.NETフレームワークNancy

HTTP動詞+パス+アクション

public class SampleModule: Nancy.NancyModule

{public SampleModule(){

Get["/"] = _ => "Hello World!";Get["/Hoge/"] = _ => "fuga!!";

}}

Page 12: 軽量ASP.NETフレームワークNancy

実行結果

Page 13: 軽量ASP.NETフレームワークNancy

使い方

• NuGetでインストールするだけ

–「空のASP.NET Webアプリケーション」に

PM> Install-Package Nancy.Hosting.Aspnet

Page 14: 軽量ASP.NETフレームワークNancy

View Engine (template)もあるよ

• HTML全部文字で返すはもちろん面倒

• ちゃんとview engineがあります

• それも、複数あるのでお好みで!

Page 15: 軽量ASP.NETフレームワークNancy

2013.12現在の選択肢

• Razor

• Spark

• DotLiquid

• NDjango

• Nustache

• Markdown

• NHaml

• Parrot

Page 16: 軽量ASP.NETフレームワークNancy

View engineの使い方

• 使いたいView EngineのパッケージをNuGetからインストール

–例:razor

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

PM> Install-Package Nancy.Viewengines.Razor

Page 17: 軽量ASP.NETフレームワークNancy

Markdownの例

コードから変数を渡す例

Page 18: 軽量ASP.NETフレームワークNancy

Viewを戻す

viewに値を渡すにはこんな感じで

オブジェクトを作って渡してやる

Page 19: 軽量ASP.NETフレームワークNancy

実行結果

Page 20: 軽量ASP.NETフレームワークNancy

シンプルなので…

• ちょっとしたことをするときにイイ

–ワンライナー的なWeb APIが欲しいとき

–2~3ページくらいでシンプルなサイト

• Web Pagesと天秤にかけるかも

• ルーティングとかテストの書きやすさとか

Page 21: 軽量ASP.NETフレームワークNancy

まとめ

• NancyはASP.NETの軽量フレームワーク

• Sinatraインスパイア系

• プラガブルなViewエンジン

• ちょっとしたことに結構便利!