SlideShare a Scribd company logo
1 of 21
Download to read offline
軽量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

Sites

Services
Single Page Apps

Web
Forms

Web
Pages

MVC

ASP.NET

Web
API

SignalR
One ASP.NET
• ASP.NETにはそれぞれ特徴を持ったいく
つかのフレームワークが存在
• それぞれをプラガブルに取捨選択/ミック
スして使えるのが今のASP.NET
– VS2013ではミックスして使いやすくなった
そして"You"

Sites

Services
Single Page Apps

YOU!

Web
Forms

Web
Pages

MVC

ASP.NET

Web
API

SignalR

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エンジン
ちょっとしたことに結構便利!

More Related Content

What's hot

Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~
Shinichi Tomita
 
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
masayoshi takahashi
 

What's hot (20)

Cod2013 Sapporo #1
Cod2013 Sapporo #1Cod2013 Sapporo #1
Cod2013 Sapporo #1
 
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
 
ASP.NET "NOW" and "NEXT"
ASP.NET "NOW" and "NEXT"ASP.NET "NOW" and "NEXT"
ASP.NET "NOW" and "NEXT"
 
How do you like knockout?
How do you like knockout?How do you like knockout?
How do you like knockout?
 
iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料
 
SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察
SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察
SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察
 
TypeScript による今風の web アプリ開発
TypeScript による今風の web アプリ開発TypeScript による今風の web アプリ開発
TypeScript による今風の web アプリ開発
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
 
Concurrent Programm in JavaScript
Concurrent Programm in JavaScriptConcurrent Programm in JavaScript
Concurrent Programm in JavaScript
 
Concurrent Programming in JavaScript
Concurrent Programming in JavaScriptConcurrent Programming in JavaScript
Concurrent Programming in JavaScript
 
一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure 活用方法
一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure活用方法一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure活用方法
一度使うとレンタルサーバーに戻れない!?便利機能を使ってみよう!Web制作でのMicrosoft Azure 活用方法
 
A 1-2 One ASP.NET - ASP.NET Web Stack
A 1-2 One ASP.NET - ASP.NET Web StackA 1-2 One ASP.NET - ASP.NET Web Stack
A 1-2 One ASP.NET - ASP.NET Web Stack
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
 
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
 
Visual Studio 2017 事はじめ
Visual Studio 2017 事はじめVisual Studio 2017 事はじめ
Visual Studio 2017 事はじめ
 
Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~
 
Microsoft Azure WebAppsで ECサイトを構築してみた話 ~EC-CUBE3で試してみました~
Microsoft Azure WebAppsでECサイトを構築してみた話 ~EC-CUBE3で試してみました~Microsoft Azure WebAppsでECサイトを構築してみた話 ~EC-CUBE3で試してみました~
Microsoft Azure WebAppsで ECサイトを構築してみた話 ~EC-CUBE3で試してみました~
 
A/BテストをAzure×Googleアナリティクスで試してみました。
A/BテストをAzure×Googleアナリティクスで試してみました。A/BテストをAzure×Googleアナリティクスで試してみました。
A/BテストをAzure×Googleアナリティクスで試してみました。
 
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
 
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話
 

Viewers also liked

HTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクトHTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクト
Shumpei Shiraishi
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
 
CLR/H#74 LT IT勉強会発表用イチオシツール
CLR/H#74 LT IT勉強会発表用イチオシツールCLR/H#74 LT IT勉強会発表用イチオシツール
CLR/H#74 LT IT勉強会発表用イチオシツール
Jun-ichi Sakamoto
 
Reactive Programming
Reactive ProgrammingReactive Programming
Reactive Programming
maruyama097
 

Viewers also liked (20)

LightNode - Micro RPC/REST Framework
LightNode - Micro RPC/REST FrameworkLightNode - Micro RPC/REST Framework
LightNode - Micro RPC/REST Framework
 
Windows ストアアプリを HTMLで作成する
Windows ストアアプリをHTMLで作成するWindows ストアアプリをHTMLで作成する
Windows ストアアプリを HTMLで作成する
 
A Framework for LightUp Applications of Grani
A Framework for LightUp Applications of GraniA Framework for LightUp Applications of Grani
A Framework for LightUp Applications of Grani
 
HTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクトHTML5がもたらすアプリ開発へのインパクト
HTML5がもたらすアプリ開発へのインパクト
 
AngularJS 2.0 Jumpstart
AngularJS 2.0 JumpstartAngularJS 2.0 Jumpstart
AngularJS 2.0 Jumpstart
 
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んでイラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
 
「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで
 
20130921レジュメ2
20130921レジュメ220130921レジュメ2
20130921レジュメ2
 
「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
 
最近、リアルタイムWebが面白い
最近、リアルタイムWebが面白い最近、リアルタイムWebが面白い
最近、リアルタイムWebが面白い
 
はじめにことばありき
はじめにことばありきはじめにことばありき
はじめにことばありき
 
CLR/H#74 LT IT勉強会発表用イチオシツール
CLR/H#74 LT IT勉強会発表用イチオシツールCLR/H#74 LT IT勉強会発表用イチオシツール
CLR/H#74 LT IT勉強会発表用イチオシツール
 
Gulp ことはじめ
Gulp ことはじめGulp ことはじめ
Gulp ことはじめ
 
20140823 LL diver Angular.js で構築した note に関して
20140823 LL diver Angular.js で構築した note に関して20140823 LL diver Angular.js で構築した note に関して
20140823 LL diver Angular.js で構築した note に関して
 
秒速一億円
秒速一億円秒速一億円
秒速一億円
 
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトークMore Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
 
Introduction of "MarkdownPresenter"
Introduction of "MarkdownPresenter"Introduction of "MarkdownPresenter"
Introduction of "MarkdownPresenter"
 
[予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦!
[予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦![予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦!
[予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦!
 
Reactive Programming
Reactive ProgrammingReactive Programming
Reactive Programming
 

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

One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
Akira Inoue
 

Similar to 軽量ASP.NETフレームワークNancy (20)

20140322
2014032220140322
20140322
 
【Web TECH FORUM 2017 in大阪】Webシステム開発とJavaScript UIコンポーネント
【Web TECH FORUM 2017 in大阪】Webシステム開発とJavaScript UIコンポーネント【Web TECH FORUM 2017 in大阪】Webシステム開発とJavaScript UIコンポーネント
【Web TECH FORUM 2017 in大阪】Webシステム開発とJavaScript UIコンポーネント
 
開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能
 
【Web TECH FORUM 2017 in大阪】JavaScript UIコンポーネント の選定と活用ポイント
【Web TECH FORUM 2017 in大阪】JavaScript UIコンポーネント の選定と活用ポイント【Web TECH FORUM 2017 in大阪】JavaScript UIコンポーネント の選定と活用ポイント
【Web TECH FORUM 2017 in大阪】JavaScript UIコンポーネント の選定と活用ポイント
 
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
Web制作的に便利な機能満載!Microsoft Azureを使ってみようWeb制作的に便利な機能満載!Microsoft Azureを使ってみよう
Web制作的に便利な機能満載!Microsoft Azureを使ってみよう
 
ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門
 
Vscodemeetup6
Vscodemeetup6Vscodemeetup6
Vscodemeetup6
 
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そうオレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そう
 
MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方MVCフレームワークとの付き合い方
MVCフレームワークとの付き合い方
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
 
なるほどわかった!App Service on Linux
なるほどわかった!App Service on Linuxなるほどわかった!App Service on Linux
なるほどわかった!App Service on Linux
 
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
【18-C-5】C# で iOS/Androidアプリ開発 - Visual Studio 2015 + Xamarin + MVVMCross -
 
Application insights で行ってみよう
Application insights で行ってみようApplication insights で行ってみよう
Application insights で行ってみよう
 
Silverlightと業務アプリ
Silverlightと業務アプリSilverlightと業務アプリ
Silverlightと業務アプリ
 
Visual studio online and Agile
Visual studio online and AgileVisual studio online and Agile
Visual studio online and Agile
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
.NET Core for Mac users in Azure
.NET Core for Mac users in Azure.NET Core for Mac users in Azure
.NET Core for Mac users in Azure
 
初音玲の流儀 - なんでプログラミングしているの?
初音玲の流儀 - なんでプログラミングしているの?初音玲の流儀 - なんでプログラミングしているの?
初音玲の流儀 - なんでプログラミングしているの?
 
Azure serverlesssummit2018
Azure serverlesssummit2018Azure serverlesssummit2018
Azure serverlesssummit2018
 
【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
 

More from Narami Kiyokura

More from Narami Kiyokura (7)

脱・Excelホーガンシのために、その1
脱・Excelホーガンシのために、その1脱・Excelホーガンシのために、その1
脱・Excelホーガンシのために、その1
 
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみたADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
 
よろしい、ならばMicro-ORMだ
よろしい、ならばMicro-ORMだよろしい、ならばMicro-ORMだ
よろしい、ならばMicro-ORMだ
 
WebMatrixで遊ぶ-ゆるふわGitHubページ
WebMatrixで遊ぶ-ゆるふわGitHubページWebMatrixで遊ぶ-ゆるふわGitHubページ
WebMatrixで遊ぶ-ゆるふわGitHubページ
 
TypeScript超入門
TypeScript超入門TypeScript超入門
TypeScript超入門
 
NuGetの社内利用のススメ
NuGetの社内利用のススメNuGetの社内利用のススメ
NuGetの社内利用のススメ
 
IMESupport for Sublime Text 2 / ConvertToUTF8の紹介
IMESupport for Sublime Text 2 / ConvertToUTF8の紹介IMESupport for Sublime Text 2 / ConvertToUTF8の紹介
IMESupport for Sublime Text 2 / ConvertToUTF8の紹介
 

Recently uploaded

Recently uploaded (11)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

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