Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ASP.NET Core 概要
基礎をおさえて WebAPI を作ってみよう
publish version
2017 - 03 - 11
Visual Studio 2017 リリース記念勉強会
@BEACH_SIDE
横浜 篤
よこはま あつし
http://beachside.hatenablog.com/
Using…
C#, ASP.NET, Azure, Machine Learning, Xamarin ….
I’m a C...
本セッションでお伝えしたいこと
• サーバーサイドの内容を中心に、抑えたいおきたい
ASP.NET Core のキーワード
• ASP.NET Core のアプリケーションを作ってみたいと
いうモチベーション
1. ASP.NET Core とは
2. 知っておきたい基本機能
- サーバーサイド編
3. 知っておきたい基本機能
- クライアント編
Agenda
ASP.NET Core とは
“conversion over configuration” ! ALL THE THINGS !?
1.
概 要
• オープンソースでクロスプラットフォーム
• ウェブアプリケーション、IoT アプリケーション、モバイルバックエンドなどアプリケー
ションを構築するためのフレームワーク
• Windows, Mac, Linux 上で動作
• ASP...
改善された基本機能
• モダンな Client-Side Framework と開発ワークフローの統合
https://docs.microsoft.com/en-us/aspnet/core/client-side/index
• 複数環境、...
“conversion over configuration” ! ALL THE THINGS !?
知っておきたい基本機能
Server-Side 編
2.
注目のキーワード
• コンソールアプリケーションである
• コンソールアプリケーションのエントリーポイントでウェブサーバーを生成して起動
• 注目のキーワードは、
- Host
- Server
- Startup
- Middleware
キーワード解説 >> Host(ホスト)
• Hostとは
• IWebHost インターフェースが実装されたオブジェクト
• ASP.NET Core アプリケーションでは、基本的に WebHostBuilder を使ってHostを構成し、起...
キーワード解説 >> Server(サーバー)
• ASP.NET Core では2つのサーバーが用意されている
• Kestrel:クロスプラットフォームの非同期 I/O ライブラリ libuv で実装されたHTTPサーバー
• WebLis...
キーワード解説 >> Startup クラス
• リクエストパイプラインの処理を構成するのが責務
• Configure メソッドの定義が必須。アプリケーション起動時、エントリーポイントから呼ば
れ、コンストラクター ⇒ ConfigureSe...
キーワード解説 >> Middleware(ミドルウェア)
• HTTPリクエストを処理するためのコンポーネント
• 主にStartupクラスの Configure メソッドで使われる(設定する)
• ビルトインのミドルウェアとして「Authe...
DEMO
コンソールアプリからASP.NET Coreへ
WebAPI について
• 基本的に MVC パターン
• リクエストの送受信の際の便利な機能
• 基本的にはHTTPリクエストのデータと、ルーティングの規約、アクションメソッドの引数
の名称に応じてモデルバインディング
• HTTPリクエスト...
DEMO
Web API のプロジェクトテンプレートを見る
キーワード解説 >> Dependency Injection( DI 、依存性の注入、依存関係の挿入)
• ビルトインで組み込まれました
• Startup クラスの ConfigureServices メソッドで定義するのが基本
• DI ...
キーワード解説 >> Routing(ラゥティング、ルーティング)
設定方法は主に2つ
• Controller クラスやそのActionメソッドで設定
• RouteAttribute をつけて指定
• Startup クラスの Config...
キーワード解説 >> Configuration(コンフィグレーション、構成)
• 環境に応じた変数などの管理
• 基本的には、IConfigurationRoot インターフェースを実装したオブジェクトで管理
• Development、St...
DEMO
サービスクラスの実装とDIで少しだけ実践的な Web API へ
conversion over configuration !
知っておきたい基本機能
Server-Side 編
2.
機能強化や機能追加で以前より便利に
• Razor
• Viewの実装をより生産的に。HTML + C# で実装。
• Tag Helpers
• Web Components の概念も取り入れている
• カスタムのプロジェクトテンプレートが ...
DEMO
Angularのプロジェクトの作成
まとめ
本日のまとめ
• アプリケーション起動時の動作が重要
• サービスの DI、HTTP リクエストに対するパイプラインの設定、環境に応じた構成設定など
起動に関する設定のほとんどが Startup クラスに集約されている
• 「conventio...
追加情報>> クラウド環境やクロスプラットフォームへのデプロイ
• Azure の WebApps へのデプロイは簡単
> 右クリックからポチっとするだけでデプロイできます。VSTS などを使ってCI / CD ももちろん可能。
• Azure...
開発に役立つ
と個人的に思っている
参考資料
• ASP.NET Core Documentation
https://docs.microsoft.com/ja-jp/aspnet/core/
• .NET Web Development a...
Thank you.
2017-03-11 Visual Studio 2017 リリース記念勉強会
Upcoming SlideShare
Loading in …5
×

ASP.NET Core 概要(2017年3月時点)

628 views

Published on

ASP.NET Core の入門として押さえておきたいポイントをまとめました。(2017年3月時点)

Published in: Technology
  • ACCESS that WEBSITE Over for All Ebooks (Unlimited) ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... DOWNLOAD FULL EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • -- DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT -- ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... (Unlimited)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THAT BOOKS/FILE INTO AVAILABLE FORMAT - (Unlimited) ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes Christian, Classics, Comics, Contemporary, Cookbooks, Art, Biography, Business, Chick Lit, Children's, Manga, Memoir, Music, Science, Science Fiction, Self Help, History, Horror, Humor And Comedy, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • -- DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT -- ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... (Unlimited)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

ASP.NET Core 概要(2017年3月時点)

  1. 1. ASP.NET Core 概要 基礎をおさえて WebAPI を作ってみよう publish version 2017 - 03 - 11 Visual Studio 2017 リリース記念勉強会
  2. 2. @BEACH_SIDE 横浜 篤 よこはま あつし http://beachside.hatenablog.com/ Using… C#, ASP.NET, Azure, Machine Learning, Xamarin …. I’m a C#er. よろしく お願いします
  3. 3. 本セッションでお伝えしたいこと • サーバーサイドの内容を中心に、抑えたいおきたい ASP.NET Core のキーワード • ASP.NET Core のアプリケーションを作ってみたいと いうモチベーション
  4. 4. 1. ASP.NET Core とは 2. 知っておきたい基本機能 - サーバーサイド編 3. 知っておきたい基本機能 - クライアント編 Agenda
  5. 5. ASP.NET Core とは “conversion over configuration” ! ALL THE THINGS !? 1.
  6. 6. 概 要 • オープンソースでクロスプラットフォーム • ウェブアプリケーション、IoT アプリケーション、モバイルバックエンドなどアプリケー ションを構築するためのフレームワーク • Windows, Mac, Linux 上で動作 • ASP.NET を大幅に再設計 • System.Web.dllから脱却し、細分化されたモジュールで構成 • .NET Core または全ての.NET Frameworkで実行可能 公式ドキュメント:Introduction to ASP.NET Core : https://docs.microsoft.com/en-us/aspnet/core/
  7. 7. 改善された基本機能 • モダンな Client-Side Framework と開発ワークフローの統合 https://docs.microsoft.com/en-us/aspnet/core/client-side/index • 複数環境、クラウド環境と連携しやすい構成システム https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration • ビルトインの Dependency Injection https://en-us/aspdocs.microsoft.com/net/core/fundamentals/dependency-injection • IIS だけではなく、セルフホストしたサーバーでの実行 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/hosting 等々… 公式ドキュメント:Introduction to ASP.NET Core : https://docs.microsoft.com/en-us/aspnet/core/
  8. 8. “conversion over configuration” ! ALL THE THINGS !? 知っておきたい基本機能 Server-Side 編 2.
  9. 9. 注目のキーワード • コンソールアプリケーションである • コンソールアプリケーションのエントリーポイントでウェブサーバーを生成して起動 • 注目のキーワードは、 - Host - Server - Startup - Middleware
  10. 10. キーワード解説 >> Host(ホスト) • Hostとは • IWebHost インターフェースが実装されたオブジェクト • ASP.NET Core アプリケーションでは、基本的に WebHostBuilder を使ってHostを構成し、起 動する必要がある • 構成する値は、公式ドキュメントを参照 • ホストとサーバーの違い • ホストの主な責務は、アプリケーションの起動とライフサイクルの管理。具体的には、サー ビスの管理、サーバーの構成など。 • サーバーの主な責務は、 HTTPリクエストの受けること 公式ドキュメント:Introduction to hosting in ASP.NET Core : https://docs.microsoft.com/en-us/aspnet/core/fundamentals/hosting
  11. 11. キーワード解説 >> Server(サーバー) • ASP.NET Core では2つのサーバーが用意されている • Kestrel:クロスプラットフォームの非同期 I/O ライブラリ libuv で実装されたHTTPサーバー • WebListener : Windowsのみで実行できる • Kestrel + [IIS or Nginx or Apache or …] で利用が基本 • Kestrel単体でも十分動作するので開発する際は問題なさそう • 本番環境などでは IIS, Nginx, Apache 等をリバースプロキシサーバーとしての利用すること を推奨。理由は起動プロセスの制御とかセキュリティ等(詳しくは公式ドキュメントに記載)。 公式ドキュメント:Web server implementations in ASP.NET Core : https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/ 画像: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/
  12. 12. キーワード解説 >> Startup クラス • リクエストパイプラインの処理を構成するのが責務 • Configure メソッドの定義が必須。アプリケーション起動時、エントリーポイントから呼ば れ、コンストラクター ⇒ ConfigureServices メソッド ⇒ Configureメソッドの順に動作 • ConfigureServicesメソッドの主な責務は… • サービス(例:Entity Framework Core, ASP.NET Core MVC など)の Dependency Injection を定義する • Configureメソッドの主な責務は… • リクエストパイプラインに Middleware(ミドルウェア)を定義する 公式ドキュメント:Application Startup in ASP.NET Core : https://docs.microsoft.com/en-us/aspnet/core/fundamentals/startup
  13. 13. キーワード解説 >> Middleware(ミドルウェア) • HTTPリクエストを処理するためのコンポーネント • 主にStartupクラスの Configure メソッドで使われる(設定する) • ビルトインのミドルウェアとして「Authentication」(認証機能)、「Routing」(ルーティ ング機能を定義、制御)、「Session」(ユーザーのセッション管理)などがある • ASP.NET のHTTPモジュールやHTTPハンドラーの多くもミドルウェアとなった • カスタムに作成することももちろん可能 • プログラムでコールした順に設定される 公式ドキュメント:ASP.NET Core Middleware Fundamentals : https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware
  14. 14. DEMO コンソールアプリからASP.NET Coreへ
  15. 15. WebAPI について • 基本的に MVC パターン • リクエストの送受信の際の便利な機能 • 基本的にはHTTPリクエストのデータと、ルーティングの規約、アクションメソッドの引数 の名称に応じてモデルバインディング • HTTPリクエストヘッダーの Accept 属性に応じたレスポンス生成 • プロジェクトテンプレートが GOOD • プロジェクトテンプレートを使ってプロジェクトを作ると動くアプリケーションができるの で、構造の理解に役立つ。 • Web API だけではなく、ビューを持った Web アプリケーションのテンプレートも同様
  16. 16. DEMO Web API のプロジェクトテンプレートを見る
  17. 17. キーワード解説 >> Dependency Injection( DI 、依存性の注入、依存関係の挿入) • ビルトインで組み込まれました • Startup クラスの ConfigureServices メソッドで定義するのが基本 • DI とは?なぜ DI ?How to に関する日本語情報は… • 「ASP.NET - 依存関係の挿入によるASP.NET Coreでのクリーンなコードの作成」(2016-5) https://msdn.microsoft.com/ja-jp/magazine/mt703433.aspx • 「Essential .NET - .NET Core による依存関係の挿入」(2016-6) https://msdn.microsoft.com/ja-jp/magazine/mt707534.aspx • ちょっと古いけど…「ASP.NET5 MVC6 でDI(Dependency Injection)の設定」(2016-1) http://beachside.hatenablog.com/entry/2016/01/15/170000 公式ドキュメント:Introduction to Dependency Injection in ASP.NET Core : https://docs.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection
  18. 18. キーワード解説 >> Routing(ラゥティング、ルーティング) 設定方法は主に2つ • Controller クラスやそのActionメソッドで設定 • RouteAttribute をつけて指定 • Startup クラスの Configure メソッドで設定 • リクエストに応じたルーティングを直接指定 • リクエストに応じたルーティングを規約で指定 公式ドキュメント:Routing in ASP.NET Core :https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing Routing to Controller Actions : https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing
  19. 19. キーワード解説 >> Configuration(コンフィグレーション、構成) • 環境に応じた変数などの管理 • 基本的には、IConfigurationRoot インターフェースを実装したオブジェクトで管理 • Development、Staging、Production がデフォルトで定義されている • デフォルトでいくつかのプロバイダーを用意 • JSONやXMLのファイル、コマンドライン引数、環境変数、インメモリーのオブジェクト、 Azure Key Vault など。 • 環境に応じて[Startup{環境名}]クラスや [Configure{環境名}] メソッドを呼ぶことができる 公式ドキュメント:Configuration in ASP.NET Core : https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration
  20. 20. DEMO サービスクラスの実装とDIで少しだけ実践的な Web API へ
  21. 21. conversion over configuration ! 知っておきたい基本機能 Server-Side 編 2.
  22. 22. 機能強化や機能追加で以前より便利に • Razor • Viewの実装をより生産的に。HTML + C# で実装。 • Tag Helpers • Web Components の概念も取り入れている • カスタムのプロジェクトテンプレートが GOOD • Razorベースのテンプレートだけでなく、Angular、React、Aurelia などのカスタムテンプ レートがあり、モジュールローダーやタスクランナーの設定までされている http://beachside.hatenablog.com/entry/2017/02/25/150306
  23. 23. DEMO Angularのプロジェクトの作成
  24. 24. まとめ
  25. 25. 本日のまとめ • アプリケーション起動時の動作が重要 • サービスの DI、HTTP リクエストに対するパイプラインの設定、環境に応じた構成設定など 起動に関する設定のほとんどが Startup クラスに集約されている • 「convention over configuration(設定より規約)」の要素は強い • Client-Side の開発もモダンに! • Razor を使った ASP.NET 固有の開発ではなく、Angular や React といった選択も容易に!
  26. 26. 追加情報>> クラウド環境やクロスプラットフォームへのデプロイ • Azure の WebApps へのデプロイは簡単 > 右クリックからポチっとするだけでデプロイできます。VSTS などを使ってCI / CD ももちろん可能。 • Azure Functions へは… > Model のレイヤーを分けておけば、移行も簡単。VSTS などを使ってCI / CD ももちろん可能。 • うちは AWS なんだけど…. > もちろん 流行りのAPI Gateway x Lambdaですよね? 平野さんのセッションにて! • うちは Linux なんだけど…. > Docker も使っちゃいますよね? 田中さんのセッションにて!
  27. 27. 開発に役立つ と個人的に思っている 参考資料 • ASP.NET Core Documentation https://docs.microsoft.com/ja-jp/aspnet/core/ • .NET Web Development and Tools Blog https://blogs.msdn.microsoft.com/webdev/ • ASP.NET Community Standup https://www.youtube.com/playlist?list=PL0M0zPgJ3HSftTAAHttA3JQU4vOjXFquF • しばやん雑記 http://blog.shibayan.jp/ • miso_soup3 Blog http://miso-soup3.hateblo.jp/
  28. 28. Thank you. 2017-03-11 Visual Studio 2017 リリース記念勉強会

×