SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
未知との交信!?Project Signal R
2018/06/30 Fukuoka.NET #10
@tsubakimoto_s
松村優大 (MLBお兄さん)
• 株式会社オルターブース
• Microsoft MVP (for VSDT)
• C#/PHP/Azure/AWS
• 島根県出身の30歳
2
本日の内容
• .NET Coreのサポート計画
• ASP.NET Core SignalR
• Azure SignalR Service
• デモ
7
.NET Coreのサポート計画
8
.NET Core versions
11https://github.com/dotnet/core/blob/master/microsoft-support.md
LTS (Long Term Support/長期的サポート)
安定的な機能やコンポーネントを提供
更新頻度を減らしたいアプリケーション向き
Current (現在のリリース)
新機能を含むが将来的な変更の可能性あり
継続的なアップデートが必要
.NET Coreのサポート計画
12
• LTS
• そのLTSの最初のリリースからの3年間
• 次のLTSのリリース後1年経過するまで
• Current
• 次のCurrentまたはLTSのバージョンの
リリース後3ヶ月経過するまで
.NET Coreのサポート計画
バージョン レベル リリース日 サポート終了日
1.0 LTS 2016/06/27 2019/06/27
1.1 LTS 2016/11/16 2019/06/27
2.0 Current 2017/08/14 2018/10/01
2.1 Current 2018/05/30 At least three years
3.0 ??? ??? ???
13
.NET Coreのサポート計画
バージョン レベル リリース日 サポート終了日
1.0 LTS 2016/06/27 2019/06/27
1.1 LTS 2016/11/16 2019/06/27
2.0 Current 2017/08/14 2018/10/01
2.1 Current 2018/05/30 At least three years
3.0 ??? ??? ???
14
.NET Core 2.1
15
2018年10月までにLTSになる予定であると
アナウンスされている。
今後新しくアプリケーションを作るときは
.NET Core 2.1 が推奨されている。
https://blogs.msdn.microsoft.com/dotnet/2018/05/30/announcing-net-core-2-1/
詳細はブログで
16https://tsubalog.hatenablog.com/entry/2018/06/23/102443
.NET Coreのサポート計画
バージョン レベル リリース日 サポート終了日
1.0 LTS 2016/06/27 2019/06/27
1.1 LTS 2016/11/16 2019/06/27
2.0 Current 2017/08/14 2018/10/01
2.1 Current 2018/05/30 At least three years
3.0 ??? ??? ???
17
18https://blogs.msdn.microsoft.com/dotnet/2018/05/07/net-core-3-and-support-for-windows-desktop-applications/
ASP.NET Core SignalR
19
ASP.NET Core SignalR
• “Realtime Web”を実現する基盤機能
• WebSocketによるプッシュ型通信
• ASP.NET Core 2.1でサポート開始
• ASP.NETでは以前よりサポートされている
20
SignalRの通信イメージ
21https://docs.microsoft.com/ja-jp/aspnet/signalr/overview/getting-started/introduction-to-signalr
位置づけ
22
.NET Core
ASP.NET Core
Razor Pages MVC
Web APISignalR
SignalRが適するケース
• チャット
• ホワイトボード
• サイト内/アプリケーション内での
プッシュ型通知
※WinFormsやXamarinでも利用可能
23https://github.com/aspnet/SignalR-samples
ASP.NET Core SignalRの実装
24
バックエンド
1. ASP.NET Coreプロジェクトの作成
• Razor Pages or MVC
2. Hubクラスの作成
3. Startup.csにSignalRを適用
25https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr?view=aspnetcore-2.1
Hubクラスとは
サーバーに接続しているクライアントに対して、
クライアント側に定義したメソッドを呼び出す
機能を定義する。
• 名前空間: Microsoft.AspNetCore.SignalR.Hub
• パッケージ: Microsoft.AspNetCore.App 2.1~
• クライアント: JavaScript / C#(WinForms, Xamarin,
etc)
26
ChatHub.cs (sample)
27
using Microsoft.AspNetCore.SignalR;
namespace ChatSample.Hubs
{
public class ChatHub : Hub
{
public void Send(string name, string message)
{
Clients.All.SendAsync("broadcastMessage", name, message);
}
}
}
クライアントに定義されたメソッド名
Startup.cs
28
public void Configure(IApplicationBuilder app)
{
app.UseSignalR(routes =>
{
routes.MapHub<ChatHub>("/chat");
});
エンドポイント
public void ConfigureServices(IServiceCollection services)
{
// "SignalRを使うよ"という宣言
services.AddSignalR();
クライアント (Javascript)
1. npm install @aspnet/signalr
2. Hubへの接続確立
3. Hubから呼び出される関数の定義
→リアルタイム処理を実装
4. バックエンドとの通信開始
29https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr?view=aspnetcore-2.1
クライアント (Javascript)
30
//接続の確立
var connection = new signalR.HubConnectionBuilder()
.withUrl('/chat’)
.build();
connection.on('broadcastMessage', function (name, message) {
//do something
});
//通信開始
connection.start()
.then(function () { /*接続成功のときの処理*/ })
.catch(error => { /*接続失敗のときの処理*/ });
Hubのエンドポイントを指定
Hubから呼び出される関数
デモ
http://bit.ly/fukuten10demo
https://github.com/aspnet/SignalR-samples
31
ASP.NET Core SignalR
JavaScript
Azure SignalR Service
32
Azure SignalR Serviceとは
• ASP.NET Core SignalRをホストする
Webサーバーのフルマネージドサービス
• パブリックプレビュー (2018/06/30時点)
33https://azure.microsoft.com/en-us/blog/azure-signalr-service-a-fully-managed-service-to-add-real-time-functionality/
1ヶ月で約2,700円
フルマネージドサービスである良さ
• WebSocketサーバーの管理
• パフォーマンス
• スケーラビリティ
• 可用性 など
• これらを自身で管理する必要がなくなる
• 99.9%のSLA
34
スケール
35
Startup.cs
36
public void ConfigureServices(IServiceCollection services)
{
// "Azure SignalR Serviceを使うよ"という宣言
services.AddSignalR().AddAzureSignalR("接続文字列");
public void Configure(IApplicationBuilder app)
{
app.UseAzureSignalR(routes =>
{
routes.MapHub<ChatHub>("/chat");
});
Azure SignalR Serviceに接続
認証
• Azure SignalR Serviceに接続する際に
認証を求めることが可能
• OAuth認証をサポートする外部サービス
• GitHub
• Facebook
• Azure Active Directory
など
37
ログ/Application Insights
• ILogger<T>を使用する
• 従来のASP.NET Coreと同じ
• ログをApplication Insightsに送信する
• Microsoft.ApplicationInsights.AspNetCore
• ILoggerFactoryの拡張 (Startup.cs)
38
ILoggerFactoryの拡張 (Startup.cs)
39
送信するログの段階
・Trace
・Debug
・Information
・Warning
・Error
・Critical
・None
40
ご清聴ありがとうございました
41

Weitere ähnliche Inhalte

Was ist angesagt?

サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
Yuta Matsumura
 

Was ist angesagt? (20)

オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
 
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏
 
オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発
 
忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめ忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめ
 
DevOps、その前に
DevOps、その前にDevOps、その前に
DevOps、その前に
 
復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0
 
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
 
PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!
 
”試してみた”で終わらない サーバーレスアプリケーションの実践開発
”試してみた”で終わらない サーバーレスアプリケーションの実践開発”試してみた”で終わらない サーバーレスアプリケーションの実践開発
”試してみた”で終わらない サーバーレスアプリケーションの実践開発
 
そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?
 
Azure Functions Tips
Azure Functions TipsAzure Functions Tips
Azure Functions Tips
 
Blazor Server テンプレート解説
Blazor Server テンプレート解説Blazor Server テンプレート解説
Blazor Server テンプレート解説
 
Database tools for .NET Core
Database tools for .NET CoreDatabase tools for .NET Core
Database tools for .NET Core
 
改めて C# でできることを振り返る
改めて C# でできることを振り返る改めて C# でできることを振り返る
改めて C# でできることを振り返る
 
SendGrid SDKを捨てた話
SendGrid SDKを捨てた話SendGrid SDKを捨てた話
SendGrid SDKを捨てた話
 
Windowsサービスも.NET Coreで作ろう
Windowsサービスも.NET Coreで作ろうWindowsサービスも.NET Coreで作ろう
Windowsサービスも.NET Coreで作ろう
 
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素
 
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
 
Visual Studio 拡張機能の作り方
Visual Studio 拡張機能の作り方Visual Studio 拡張機能の作り方
Visual Studio 拡張機能の作り方
 
【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート
 

Ähnlich wie 未知との交信!?Project SignalR

Ähnlich wie 未知との交信!?Project SignalR (20)

.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo
 
Dotnetcore30forwindesktop
Dotnetcore30forwindesktopDotnetcore30forwindesktop
Dotnetcore30forwindesktop
 
dotnetconfJP2017_netcore2
dotnetconfJP2017_netcore2dotnetconfJP2017_netcore2
dotnetconfJP2017_netcore2
 
Getting Started .NET Core
Getting Started .NET CoreGetting Started .NET Core
Getting Started .NET Core
 
.NET Framework アプリケーションの NET 5 への 移行を考える
.NET Framework アプリケーションの NET 5 への 移行を考える.NET Framework アプリケーションの NET 5 への 移行を考える
.NET Framework アプリケーションの NET 5 への 移行を考える
 
LEGO MINDSTORMS EV3 API
LEGO MINDSTORMS EV3 APILEGO MINDSTORMS EV3 API
LEGO MINDSTORMS EV3 API
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
App016 .net core_~_cross-platform、_high_performance、_open_sour
App016 .net core_~_cross-platform、_high_performance、_open_sourApp016 .net core_~_cross-platform、_high_performance、_open_sour
App016 .net core_~_cross-platform、_high_performance、_open_sour
 
App016 .net core_~_cross-platform、_high_performance、_open_sou
App016 .net core_~_cross-platform、_high_performance、_open_souApp016 .net core_~_cross-platform、_high_performance、_open_sou
App016 .net core_~_cross-platform、_high_performance、_open_sou
 
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
 
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
 
160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大
 
20201127 .NET 5
20201127 .NET 520201127 .NET 5
20201127 .NET 5
 
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
 
正式リリースされた.Net coreに少し触れ合ってみる
正式リリースされた.Net coreに少し触れ合ってみる正式リリースされた.Net coreに少し触れ合ってみる
正式リリースされた.Net coreに少し触れ合ってみる
 
Open contrailmeetup201506 r2.1紹介
Open contrailmeetup201506 r2.1紹介Open contrailmeetup201506 r2.1紹介
Open contrailmeetup201506 r2.1紹介
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
ADO.NET Entity Framework
ADO.NET Entity Framework ADO.NET Entity Framework
ADO.NET Entity Framework
 
解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 Update解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 Update
 

Mehr von Yuta Matsumura

Mehr von Yuta Matsumura (14)

「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
 
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組みチーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組み
 
App Modernization for .NET
App Modernization for .NETApp Modernization for .NET
App Modernization for .NET
 
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD分かったうえではじめるCI/CD
分かったうえではじめるCI/CD
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 
Azure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もうAzure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もう
 
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
 
.NET Conf の歩き方
.NET Conf の歩き方.NET Conf の歩き方
.NET Conf の歩き方
 
PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 閉会式PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 閉会式
 
PHPカンファレンス福岡2019 開会式
PHPカンファレンス福岡2019 開会式PHPカンファレンス福岡2019 開会式
PHPカンファレンス福岡2019 開会式
 
ASP.NET Core 2.x Identityについて
ASP.NET Core 2.x IdentityについてASP.NET Core 2.x Identityについて
ASP.NET Core 2.x Identityについて
 
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
 
サーバーレスの常識を覆す Azure Durable Functionsを使い倒す
サーバーレスの常識を覆す Azure Durable Functionsを使い倒すサーバーレスの常識を覆す Azure Durable Functionsを使い倒す
サーバーレスの常識を覆す Azure Durable Functionsを使い倒す
 
娘駆動開発で活躍するAzureのサーバーレスサービス
娘駆動開発で活躍するAzureのサーバーレスサービス娘駆動開発で活躍するAzureのサーバーレスサービス
娘駆動開発で活躍するAzureのサーバーレスサービス
 

Kürzlich hochgeladen

Kürzlich hochgeladen (7)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

未知との交信!?Project SignalR