2. 2
自己紹介
Twitter : miso_soup3
Blog : http://d.hatena.ne.jp/miso_soup3/
開発経験:業務アプリ開発, C#,
ASP.NET MVC, ASP.NET Web API
北陸3県(富山・石川・福井)を中心に、
マイクロソフト系の技術について広く語り合う勉強会
Hokuriku.NET
矢後 比呂加 Hiroka Yago
10. 10
1.ASP.NET Web API の利用例
① Web サイト + ASP.NET Web API + JavaScript
Web サイト
ASP.NET
MVC or WebForms
(.NET 4 以上)
11. 11
1.ASP.NET Web API の利用例
ASP.NET Web API
Ajax で シームレスな
Web アプリケーション
① Web サイト + ASP.NET Web API + JavaScript
Web サイト
ASP.NET
MVC or WebForms
(.NET 4 以上)
12. 12
1.ASP.NET Web API の利用例
• 既存資産との連携が可能
• ※ただし ASP.NET Web API は .NET 4 以上 で動作
• ASP.NET Web Forms, MVC と一緒に利用可能
• NuGet により容易に組み込める
• ASP.NET 認証機能が利用可能
① Web サイト + ASP.NET Web API + JavaScript
13. 13
1.ASP.NET Web API の利用例
① Web サイト + ASP.NET Web API + JavaScript
Visual Studio 2010 で、
.NET 4 の Web Forms プロジェクトに
NuGet で ASP.NET Web API を組み込み、
Ajax を使った機能を実装してみる。
14. 14
1.ASP.NET Web API の利用例
② Web サイト + ASP.NET Web API + JavaScript
+ モバイルアプリ
Web サイト
ASP.NET
MVC or WebForms
(.NET 4 以上)
ASP.NET Web API
15. 15
1.ASP.NET Web API の利用例
② Web サイト + ASP.NET Web API + JavaScript
+ モバイルアプリ
Web サイト
ASP.NET
MVC or WebForms
(.NET 4 以上)
ASP.NET Web API Windows Phone
HTTP サービス
として外部に公開
モバイルアプリ
iOS
Windows ストアアプリ
16. 16
1.ASP.NET Web API の利用例
③ クライアントとして HTTP サービスを利用する
HTTP サービスを
提供する側
ASP.NET Web API
HTTP サービスを
利用する側
↑先の2つの例はこちら ↑今から紹介する例はこちら
17. 17
1.ASP.NET Web API の利用例
③ クライアントとして HTTP サービスを利用する
ニュースやお天気
などの
HTTP サービス
※ASP.NET Web API に限らず
HTTP Client
HTTP サービスを
呼び出すための
クライアント
ライブラリ
18. 18
1.ASP.NET Web API の利用例
③ クライアントとして HTTP サービスを利用する
• HTTP Client
• HTTP サービス を呼び出すためのクライアントライブラリ
• ASP.NET Web API の中に含まれている
• .NET 4.5 に追加された
• (.NET 4 では、NuGet からライブラリを取得することで利用可能)
• Windows Phone や Windows ストアアプリでも利用される
19. 19
1.ASP.NET Web API の利用例
③ クライアントとして HTTP サービスを利用する
Twitter API を、
HTTP Client ライブラリを使って
呼び出す。
20. 20
1.ASP.NET Web API の利用例
③ クライアントとして HTTP サービスを利用する
HTTP Client ?
ASP.NET Web API に含まれている??
NuGet で取得できる??
21. 21
1.ASP.NET Web API の利用例
System.Net.Http.dll, …
Microsoft.Net.Http
System.Net.Http.Formatting.dll
Microsoft.AspNet.WebApi.Client
System.Web.Http.dll
Microsoft.AspNet.WebApi.Core
青文字… NuGet のパッケージ名
System.Web.Http.WebHost.dll, …
Microsoft.AspNet.WebApi.WebHost
Microsoft.AspNet.WebApi
HTTP Client で使う ライブラリ
ASP.NET Web API で使う
ライブラリ
22. 22
1.ASP.NET Web API の利用例
System.Net.Http.dll, …
Microsoft.Net.Http
System.Net.Http.Formatting.dll
Microsoft.AspNet.WebApi.Client
System.Web.Http.dll
Microsoft.AspNet.WebApi.Core
青文字… NuGet のパッケージ名
System.Web.Http.WebHost.dll, …
Microsoft.AspNet.WebApi.WebHost
Microsoft.AspNet.WebApi
HTTP Client で使う ライブラリ
ASP.NET Web API で使う
ライブラリ
←?
23. 23
1.ASP.NET Web API の利用例
Media Type Formatter (System.Net.Http.Formatting.dll)
• ASP.NET Web API の重要なキーワードの1つ
• HTTP リクエスト・レスポンスの Body ⇔
オブジェクトの変換を受け持つ
HTTP Body
オブジェクト
• JsonMediaTypeFormatter
• XMLMediaTypeFormatter
• FormUrlEncodedMediaTypeFormatter
24. 24
1.ASP.NET Web API の利用例
Media Type Formatter (System.Net.Http.Formatting.dll)
HTTP リクエスト
Body
オブジェクト
HTTP レスポンス
Body
オブジェクト
オブジェクト オブジェクト
クライアント側
サーバー側
25. 25
• ASP.NET Web API の利用例 を3つ紹介
• ASP.NET WebForms, MVC との連携。.NET 4 以上で動作。
• HTTP Client で HTTP サービスを呼び出す
• System.Net.Http.Formatting.dll
1.ASP.NET Web API の利用例
50. 50
まとめ
• ASP.NET Web API の利用例 を3つ紹介
• ASP.NET WebForms, MVC との連携。.NET 4 以上で動作。
• HTTP Client で HTTP サービスを呼び出す
• Media Type Formatter
• フレームワーク内部について
• 支援機能を3つ紹介
• API ヘルプページ自動生成
• テスタビリティの高さを利用する
• トレース機能
• メカニズム
51. 51
これから始める方へ
• とりあえずどんな感じかコードを見たい!
• → ASP.NET Web API プロジェクトテンプレートではなく、
スキャッフォールド機能で生成されるコードがおすすめ。
CRUD 一連の処理が記述されています。
My Favorite Features: Entity Framework Code First and ASP.NET Web
API
• ドキュメント
• ASP.NET オフィシャルサイト
• 英語ですが、概要からサンプルコード、拡張の仕方まで充実しています。
http://www.asp.net/web-api
• 「Overview」「Samples」がおすすめ。