狠狠撸

狠狠撸Share a Scribd company logo
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#er.
よろしく
お願いします
本セッションでお伝えしたいこと
? サーバーサイドの内容を中心に、抑えたいおきたい
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.NET を大幅に再設計
? System.Web.dllから脱却し、細分化されたモジュールで構成
? .NET Core または全ての.NET Frameworkで実行可能
公式ドキュメント:Introduction to ASP.NET Core : https://docs.microsoft.com/en-us/aspnet/core/
改善された基本機能
? モダンな 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/
“conversion over configuration” ! ALL THE THINGS !?
知っておきたい基本機能
Server-Side 編
2.
注目のキーワード
? コンソールアプリケーションである
? コンソールアプリケーションのエントリーポイントでウェブサーバーを生成して起動
? 注目のキーワードは、
- Host
- Server
- Startup
- Middleware
キーワード解説 >> 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
キーワード解説 >> 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/
キーワード解説 >> 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
キーワード解説 >> 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
DEMO
コンソールアプリからASP.NET Coreへ
WebAPI について
? 基本的に MVC パターン
? リクエストの送受信の際の便利な機能
? 基本的にはHTTPリクエストのデータと、ルーティングの規約、アクションメソッドの引数
の名称に応じてモデルバインディング
? HTTPリクエストヘッダーの Accept 属性に応じたレスポンス生成
? プロジェクトテンプレートが GOOD
? プロジェクトテンプレートを使ってプロジェクトを作ると動くアプリケーションができるの
で、構造の理解に役立つ。
? Web API だけではなく、ビューを持った Web アプリケーションのテンプレートも同様
DEMO
Web API のプロジェクトテンプレートを見る
キーワード解説 >> 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
キーワード解説 >> 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
キーワード解説 >> 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
DEMO
サービスクラスの実装とDIで少しだけ実践的な Web API へ
conversion over configuration !
知っておきたい基本機能
Server-Side 編
2.
機能強化や機能追加で以前より便利に
? Razor
? Viewの実装をより生産的に。HTML + C# で実装。
? Tag Helpers
? Web Components の概念も取り入れている
? カスタムのプロジェクトテンプレートが GOOD
? Razorベースのテンプレートだけでなく、Angular、React、Aurelia などのカスタムテンプ
レートがあり、モジュールローダーやタスクランナーの設定までされている
http://beachside.hatenablog.com/entry/2017/02/25/150306
DEMO
Angularのプロジェクトの作成
まとめ
本日のまとめ
? アプリケーション起動時の動作が重要
? サービスの DI、HTTP リクエストに対するパイプラインの設定、環境に応じた構成設定など
起動に関する設定のほとんどが Startup クラスに集約されている
? 「convention over configuration(設定より規約)」の要素は強い
? Client-Side の開発もモダンに!
? Razor を使った ASP.NET 固有の開発ではなく、Angular や React といった選択も容易に!
追加情報>> クラウド環境やクロスプラットフォームへのデプロイ
? Azure の WebApps へのデプロイは簡単
> 右クリックからポチっとするだけでデプロイできます。VSTS などを使ってCI / CD ももちろん可能。
? Azure Functions へは…
> Model のレイヤーを分けておけば、移行も簡単。VSTS などを使ってCI / CD ももちろん可能。
? うちは AWS なんだけど….
> もちろん 流行りのAPI Gateway x Lambdaですよね? 平野さんのセッションにて!
? うちは Linux なんだけど….
> Docker も使っちゃいますよね? 田中さんのセッションにて!
開発に役立つ
と個人的に思っている
参考資料
? 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/
Thank you.
2017-03-11 Visual Studio 2017 リリース記念勉強会

More Related Content

What's hot (20)

クラウドネイティブ化する未来
クラウドネイティブ化する未来クラウドネイティブ化する未来
クラウドネイティブ化する未来
Keisuke Nishitani
?
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
Hiromasa Tanaka
?
JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Kansai Simple Workflow Service (SWF)JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Kansai Simple Workflow Service (SWF)
Takuro Sasaki
?
はじめてのBluemixでシングルサインオン ~ 希望編!
はじめてのBluemixでシングルサインオン ~ 希望編!はじめてのBluemixでシングルサインオン ~ 希望編!
はじめてのBluemixでシングルサインオン ~ 希望編!
Kazumi IWANAGA
?
Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話
Keiji Muraishi
?
Mobile SEO (Japanese Version)
Mobile SEO (Japanese Version)Mobile SEO (Japanese Version)
Mobile SEO (Japanese Version)
ssuserd60633
?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Kazumi IWANAGA
?
プロビジョニングの今 ーフルマネージド?サービスを目指してー #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド?サービスを目指してー  #cmdevio2016 #Eプロビジョニングの今 ーフルマネージド?サービスを目指してー  #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド?サービスを目指してー #cmdevio2016 #E
Shuji Watanabe
?
础奥厂+奥辞谤诲笔谤别蝉蝉でつくる贵颈谤别蹿辞虫アプリ
础奥厂+奥辞谤诲笔谤别蝉蝉でつくる贵颈谤别蹿辞虫アプリ础奥厂+奥辞谤诲笔谤别蝉蝉でつくる贵颈谤别蹿辞虫アプリ
础奥厂+奥辞谤诲笔谤别蝉蝉でつくる贵颈谤别蹿辞虫アプリ
Takayuki Miyauchi
?
尘辞颁濒辞耻诲ハンズオン摆ベーシック闭
尘辞颁濒辞耻诲ハンズオン摆ベーシック闭尘辞颁濒辞耻诲ハンズオン摆ベーシック闭
尘辞颁濒辞耻诲ハンズオン摆ベーシック闭
真吾 吉田
?
Cache 自由自在
Cache 自由自在Cache 自由自在
Cache 自由自在
Ryu Shindo
?
奥别产础笔滨のこれまでとこれから
奥别产础笔滨のこれまでとこれから奥别产础笔滨のこれまでとこれから
奥别产础笔滨のこれまでとこれから
Yohei Yamamoto
?
20160720 aws development-tools-and_hybrid_cdp
20160720 aws development-tools-and_hybrid_cdp20160720 aws development-tools-and_hybrid_cdp
20160720 aws development-tools-and_hybrid_cdp
Yukitaka Ohmura
?
Serverless Framework 使ってる話(node.js)
Serverless Framework 使ってる話(node.js)Serverless Framework 使ってる話(node.js)
Serverless Framework 使ってる話(node.js)
Naoto Teruya
?
グリーにおける础奥厂移行の必然性
グリーにおける础奥厂移行の必然性グリーにおける础奥厂移行の必然性
グリーにおける础奥厂移行の必然性
gree_tech
?
Jaws days2017-ops jaws-2
Jaws days2017-ops jaws-2Jaws days2017-ops jaws-2
Jaws days2017-ops jaws-2
Serverworks Co.,Ltd.
?
検索エンジンを有効利用する奥贰叠サイト构筑
検索エンジンを有効利用する奥贰叠サイト构筑検索エンジンを有効利用する奥贰叠サイト构筑
検索エンジンを有効利用する奥贰叠サイト构筑
sato165 @delab
?
JAWSUG Osaka S3 CloudSearch
JAWSUG Osaka S3 CloudSearchJAWSUG Osaka S3 CloudSearch
JAWSUG Osaka S3 CloudSearch
Takuro Sasaki
?
Type script出始めるfirebaseプログラミング
Type script出始めるfirebaseプログラミングType script出始めるfirebaseプログラミング
Type script出始めるfirebaseプログラミング
浩史 橋本
?
奥别产アプリケーション负荷试験実践入门
奥别产アプリケーション负荷试験実践入门奥别产アプリケーション负荷试験実践入门
奥别产アプリケーション负荷试験実践入门
樽八 仲川
?
クラウドネイティブ化する未来
クラウドネイティブ化する未来クラウドネイティブ化する未来
クラウドネイティブ化する未来
Keisuke Nishitani
?
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
Hiromasa Tanaka
?
JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Kansai Simple Workflow Service (SWF)JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Kansai Simple Workflow Service (SWF)
Takuro Sasaki
?
はじめてのBluemixでシングルサインオン ~ 希望編!
はじめてのBluemixでシングルサインオン ~ 希望編!はじめてのBluemixでシングルサインオン ~ 希望編!
はじめてのBluemixでシングルサインオン ~ 希望編!
Kazumi IWANAGA
?
Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話Scala@SmartNews AdFrontend を Scala で書いた話
Scala@SmartNews AdFrontend を Scala で書いた話
Keiji Muraishi
?
Mobile SEO (Japanese Version)
Mobile SEO (Japanese Version)Mobile SEO (Japanese Version)
Mobile SEO (Japanese Version)
ssuserd60633
?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Kazumi IWANAGA
?
プロビジョニングの今 ーフルマネージド?サービスを目指してー #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド?サービスを目指してー  #cmdevio2016 #Eプロビジョニングの今 ーフルマネージド?サービスを目指してー  #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド?サービスを目指してー #cmdevio2016 #E
Shuji Watanabe
?
础奥厂+奥辞谤诲笔谤别蝉蝉でつくる贵颈谤别蹿辞虫アプリ
础奥厂+奥辞谤诲笔谤别蝉蝉でつくる贵颈谤别蹿辞虫アプリ础奥厂+奥辞谤诲笔谤别蝉蝉でつくる贵颈谤别蹿辞虫アプリ
础奥厂+奥辞谤诲笔谤别蝉蝉でつくる贵颈谤别蹿辞虫アプリ
Takayuki Miyauchi
?
尘辞颁濒辞耻诲ハンズオン摆ベーシック闭
尘辞颁濒辞耻诲ハンズオン摆ベーシック闭尘辞颁濒辞耻诲ハンズオン摆ベーシック闭
尘辞颁濒辞耻诲ハンズオン摆ベーシック闭
真吾 吉田
?
Cache 自由自在
Cache 自由自在Cache 自由自在
Cache 自由自在
Ryu Shindo
?
奥别产础笔滨のこれまでとこれから
奥别产础笔滨のこれまでとこれから奥别产础笔滨のこれまでとこれから
奥别产础笔滨のこれまでとこれから
Yohei Yamamoto
?
20160720 aws development-tools-and_hybrid_cdp
20160720 aws development-tools-and_hybrid_cdp20160720 aws development-tools-and_hybrid_cdp
20160720 aws development-tools-and_hybrid_cdp
Yukitaka Ohmura
?
Serverless Framework 使ってる話(node.js)
Serverless Framework 使ってる話(node.js)Serverless Framework 使ってる話(node.js)
Serverless Framework 使ってる話(node.js)
Naoto Teruya
?
グリーにおける础奥厂移行の必然性
グリーにおける础奥厂移行の必然性グリーにおける础奥厂移行の必然性
グリーにおける础奥厂移行の必然性
gree_tech
?
検索エンジンを有効利用する奥贰叠サイト构筑
検索エンジンを有効利用する奥贰叠サイト构筑検索エンジンを有効利用する奥贰叠サイト构筑
検索エンジンを有効利用する奥贰叠サイト构筑
sato165 @delab
?
JAWSUG Osaka S3 CloudSearch
JAWSUG Osaka S3 CloudSearchJAWSUG Osaka S3 CloudSearch
JAWSUG Osaka S3 CloudSearch
Takuro Sasaki
?
Type script出始めるfirebaseプログラミング
Type script出始めるfirebaseプログラミングType script出始めるfirebaseプログラミング
Type script出始めるfirebaseプログラミング
浩史 橋本
?
奥别产アプリケーション负荷试験実践入门
奥别产アプリケーション负荷试験実践入门奥别产アプリケーション负荷试験実践入门
奥别产アプリケーション负荷试験実践入门
樽八 仲川
?

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

[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
?
The seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurugThe seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurug
SAKURUG co.
?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
Apps for office オンプレミスとクラウド
Apps for office オンプレミスとクラウドApps for office オンプレミスとクラウド
Apps for office オンプレミスとクラウド
Hirotada Watanabe
?
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
Akira Inoue
?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
Mvc conf session_1_osada
Mvc conf session_1_osadaMvc conf session_1_osada
Mvc conf session_1_osada
Hiroshi Okunushi
?
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
GoAzure
?
ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門
Masuda Tomoaki
?
One ASP.NET の今とこれから
One ASP.NET の今とこれからOne ASP.NET の今とこれから
One ASP.NET の今とこれから
Akira Inoue
?
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Akira Inoue
?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
开発初心者が础奥厂サービスを色々使ってアプリ开発をした话
开発初心者が础奥厂サービスを色々使ってアプリ开発をした话开発初心者が础奥厂サービスを色々使ってアプリ开発をした话
开発初心者が础奥厂サービスを色々使ってアプリ开発をした话
MaiFujisawa
?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
?
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
miso- soup3
?
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
Akira Inoue
?
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
Akira Inoue
?
マイクロソフト奥别产开発の今と今后
マイクロソフト奥别产开発の今と今后マイクロソフト奥别产开発の今と今后
マイクロソフト奥别产开発の今と今后
Akira Inoue
?
最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー
Akira Inoue
?
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
?
The seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurugThe seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurug
SAKURUG co.
?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
Apps for office オンプレミスとクラウド
Apps for office オンプレミスとクラウドApps for office オンプレミスとクラウド
Apps for office オンプレミスとクラウド
Hirotada Watanabe
?
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
Akira Inoue
?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
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
GoAzure
?
ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門
Masuda Tomoaki
?
One ASP.NET の今とこれから
One ASP.NET の今とこれからOne ASP.NET の今とこれから
One ASP.NET の今とこれから
Akira Inoue
?
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Akira Inoue
?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
开発初心者が础奥厂サービスを色々使ってアプリ开発をした话
开発初心者が础奥厂サービスを色々使ってアプリ开発をした话开発初心者が础奥厂サービスを色々使ってアプリ开発をした话
开発初心者が础奥厂サービスを色々使ってアプリ开発をした话
MaiFujisawa
?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
?
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
?
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
miso- soup3
?
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
Akira Inoue
?
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
Akira Inoue
?
マイクロソフト奥别产开発の今と今后
マイクロソフト奥别产开発の今と今后マイクロソフト奥别产开発の今と今后
マイクロソフト奥别产开発の今と今后
Akira Inoue
?
最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー最新 ASP.NET Web 開発オーバービュー
最新 ASP.NET Web 開発オーバービュー
Akira Inoue
?

More from Atsushi Yokohama (BEACHSIDE) (16)

Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たちBot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
Atsushi Yokohama (BEACHSIDE)
?
チャットボット開発を取り巻く環境と Cogbot コミュニティ
チャットボット開発を取り巻く環境と Cogbot コミュニティチャットボット開発を取り巻く環境と Cogbot コミュニティ
チャットボット開発を取り巻く環境と Cogbot コミュニティ
Atsushi Yokohama (BEACHSIDE)
?
Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)
Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)
Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)
Atsushi Yokohama (BEACHSIDE)
?
Automated ML (Azure) で始める機械学習の民主化
Automated ML (Azure) で始める機械学習の民主化Automated ML (Azure) で始める機械学習の民主化
Automated ML (Azure) で始める機械学習の民主化
Atsushi Yokohama (BEACHSIDE)
?
Azure Bot Service で CI/CD on Azure Dev Ops
Azure Bot Service で CI/CD on Azure Dev OpsAzure Bot Service で CI/CD on Azure Dev Ops
Azure Bot Service で CI/CD on Azure Dev Ops
Atsushi Yokohama (BEACHSIDE)
?
Bot Framework v4 開発 Tips 2018-11
Bot Framework v4  開発 Tips 2018-11Bot Framework v4  開発 Tips 2018-11
Bot Framework v4 開発 Tips 2018-11
Atsushi Yokohama (BEACHSIDE)
?
Build 2018 - Cognitive Services updates summary
Build 2018 - Cognitive Services updates summaryBuild 2018 - Cognitive Services updates summary
Build 2018 - Cognitive Services updates summary
Atsushi Yokohama (BEACHSIDE)
?
アプリのロギングからデータ収集?分析?活用
アプリのロギングからデータ収集?分析?活用アプリのロギングからデータ収集?分析?活用
アプリのロギングからデータ収集?分析?活用
Atsushi Yokohama (BEACHSIDE)
?
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
Atsushi Yokohama (BEACHSIDE)
?
Bot Framework で会話のログを取る
Bot Framework で会話のログを取るBot Framework で会話のログを取る
Bot Framework で会話のログを取る
Atsushi Yokohama (BEACHSIDE)
?
Project Prague を試してみました
Project Prague を試してみましたProject Prague を試してみました
Project Prague を試してみました
Atsushi Yokohama (BEACHSIDE)
?
BotFramework と LUIS を使ったアプリの開発
BotFramework と LUIS を使ったアプリの開発BotFramework と LUIS を使ったアプリの開発
BotFramework と LUIS を使ったアプリの開発
Atsushi Yokohama (BEACHSIDE)
?
Translator API (Microsoft Cognitive Services)の概要
Translator API (Microsoft Cognitive Services)の概要Translator API (Microsoft Cognitive Services)の概要
Translator API (Microsoft Cognitive Services)の概要
Atsushi Yokohama (BEACHSIDE)
?
Speech API の概要(Microsoft Cognitive Services)
Speech API の概要(Microsoft Cognitive Services)Speech API の概要(Microsoft Cognitive Services)
Speech API の概要(Microsoft Cognitive Services)
Atsushi Yokohama (BEACHSIDE)
?
LUIS を使ったアプリケーション開発
LUIS を使ったアプリケーション開発LUIS を使ったアプリケーション開発
LUIS を使ったアプリケーション開発
Atsushi Yokohama (BEACHSIDE)
?
Build 2017 更新情報 Cognitive Services 編
Build 2017 更新情報 Cognitive Services 編Build 2017 更新情報 Cognitive Services 編
Build 2017 更新情報 Cognitive Services 編
Atsushi Yokohama (BEACHSIDE)
?
Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たちBot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
Bot Framework Composer と Microsoft Azure でボット開発を取り巻く仲間たち
Atsushi Yokohama (BEACHSIDE)
?
チャットボット開発を取り巻く環境と Cogbot コミュニティ
チャットボット開発を取り巻く環境と Cogbot コミュニティチャットボット開発を取り巻く環境と Cogbot コミュニティ
チャットボット開発を取り巻く環境と Cogbot コミュニティ
Atsushi Yokohama (BEACHSIDE)
?
Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)
Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)
Azure Cognitive Services の Vision カテゴリーまとめ(2020/3)
Atsushi Yokohama (BEACHSIDE)
?
Automated ML (Azure) で始める機械学習の民主化
Automated ML (Azure) で始める機械学習の民主化Automated ML (Azure) で始める機械学習の民主化
Automated ML (Azure) で始める機械学習の民主化
Atsushi Yokohama (BEACHSIDE)
?
アプリのロギングからデータ収集?分析?活用
アプリのロギングからデータ収集?分析?活用アプリのロギングからデータ収集?分析?活用
アプリのロギングからデータ収集?分析?活用
Atsushi Yokohama (BEACHSIDE)
?
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
Azure Bot Service で始めるチャットボット開発入門 (2018-01)v1.1
Atsushi Yokohama (BEACHSIDE)
?
Translator API (Microsoft Cognitive Services)の概要
Translator API (Microsoft Cognitive Services)の概要Translator API (Microsoft Cognitive Services)の概要
Translator API (Microsoft Cognitive Services)の概要
Atsushi Yokohama (BEACHSIDE)
?
Speech API の概要(Microsoft Cognitive Services)
Speech API の概要(Microsoft Cognitive Services)Speech API の概要(Microsoft Cognitive Services)
Speech API の概要(Microsoft Cognitive Services)
Atsushi Yokohama (BEACHSIDE)
?

Recently uploaded (8)

滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?

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

  • 1. ASP.NET Core 概要 基礎をおさえて WebAPI を作ってみよう publish version 2017 - 03 - 11 Visual Studio 2017 リリース記念勉強会
  • 2. @BEACH_SIDE 横浜 篤 よこはま あつし http://beachside.hatenablog.com/ Using… C#, ASP.NET, Azure, Machine Learning, Xamarin …. I’m a C#er. よろしく お願いします
  • 3. 本セッションでお伝えしたいこと ? サーバーサイドの内容を中心に、抑えたいおきたい ASP.NET Core のキーワード ? ASP.NET Core のアプリケーションを作ってみたいと いうモチベーション
  • 4. 1. ASP.NET Core とは 2. 知っておきたい基本機能 - サーバーサイド編 3. 知っておきたい基本機能 - クライアント編 Agenda
  • 5. ASP.NET Core とは “conversion over configuration” ! ALL THE THINGS !? 1.
  • 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. 改善された基本機能 ? モダンな 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. “conversion over configuration” ! ALL THE THINGS !? 知っておきたい基本機能 Server-Side 編 2.
  • 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. キーワード解説 >> 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. キーワード解説 >> 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. キーワード解説 >> 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
  • 15. WebAPI について ? 基本的に MVC パターン ? リクエストの送受信の際の便利な機能 ? 基本的にはHTTPリクエストのデータと、ルーティングの規約、アクションメソッドの引数 の名称に応じてモデルバインディング ? HTTPリクエストヘッダーの Accept 属性に応じたレスポンス生成 ? プロジェクトテンプレートが GOOD ? プロジェクトテンプレートを使ってプロジェクトを作ると動くアプリケーションができるの で、構造の理解に役立つ。 ? Web API だけではなく、ビューを持った Web アプリケーションのテンプレートも同様
  • 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. キーワード解説 >> 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. キーワード解説 >> 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
  • 21. conversion over configuration ! 知っておきたい基本機能 Server-Side 編 2.
  • 22. 機能強化や機能追加で以前より便利に ? Razor ? Viewの実装をより生産的に。HTML + C# で実装。 ? Tag Helpers ? Web Components の概念も取り入れている ? カスタムのプロジェクトテンプレートが GOOD ? Razorベースのテンプレートだけでなく、Angular、React、Aurelia などのカスタムテンプ レートがあり、モジュールローダーやタスクランナーの設定までされている http://beachside.hatenablog.com/entry/2017/02/25/150306
  • 25. 本日のまとめ ? アプリケーション起動時の動作が重要 ? サービスの DI、HTTP リクエストに対するパイプラインの設定、環境に応じた構成設定など 起動に関する設定のほとんどが Startup クラスに集約されている ? 「convention over configuration(設定より規約)」の要素は強い ? Client-Side の開発もモダンに! ? Razor を使った ASP.NET 固有の開発ではなく、Angular や React といった選択も容易に!
  • 26. 追加情報>> クラウド環境やクロスプラットフォームへのデプロイ ? Azure の WebApps へのデプロイは簡単 > 右クリックからポチっとするだけでデプロイできます。VSTS などを使ってCI / CD ももちろん可能。 ? Azure Functions へは… > Model のレイヤーを分けておけば、移行も簡単。VSTS などを使ってCI / CD ももちろん可能。 ? うちは AWS なんだけど…. > もちろん 流行りのAPI Gateway x Lambdaですよね? 平野さんのセッションにて! ? うちは Linux なんだけど…. > Docker も使っちゃいますよね? 田中さんのセッションにて!
  • 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. Thank you. 2017-03-11 Visual Studio 2017 リリース記念勉強会