SlideShare a Scribd company logo
未知との交信!?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

More Related Content

PDF
.NET Core時代のCI/CD
PDF
C# runs anywhere, make anything
PDF
いつでもどこでも .NET
PDF
.NET アプリを改善して実践する継続的インテグレーション
PDF
.NET Coreのいろは
PDF
The Twelve-Factor (A|M)pp with C#
PPTX
Xamarinでも有能な .NET Core
PDF
マイクロサービス開発が捗る Project Tye
.NET Core時代のCI/CD
C# runs anywhere, make anything
いつでもどこでも .NET
.NET アプリを改善して実践する継続的インテグレーション
.NET Coreのいろは
The Twelve-Factor (A|M)pp with C#
Xamarinでも有能な .NET Core
マイクロサービス開発が捗る Project Tye

What's hot (20)

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

Similar to 未知との交信!?Project SignalR (20)

PPTX
dotnetconfJP2017_netcore2
PDF
.NET の今とミライ (.NET Conf 2018 Japan Keynote)
PDF
20190731 Azure Functions x Line at Azure Tech Lab #4
PDF
プログラミング生放送@プログラミング生放送勉強会 第20回@品川
PDF
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
PDF
Dotnetcore30forwindesktop
PPTX
Interactive connection2
PDF
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
PPTX
Interoperability of webassembly with javascript
PDF
Teamsの裏側? Azure Communication Servicesのプレビューが出たので、さっそく触ってみた話
PDF
SignalRブートキャンプ
PDF
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
PPTX
20200214 c#tokyo lt_upload
PDF
Ignite 2021秋 recap - 開発者向け新機能紹介
PPTX
App001 .net core_アプリケーショ
PDF
App001 .net core_アプリケーショ
PPTX
App001 .net core_アプリケーショ
PDF
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
PDF
[Japan Tech summit 2017] APP 001
PPTX
C# 8.0 非同期ストリーム
dotnetconfJP2017_netcore2
.NET の今とミライ (.NET Conf 2018 Japan Keynote)
20190731 Azure Functions x Line at Azure Tech Lab #4
プログラミング生放送@プログラミング生放送勉強会 第20回@品川
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
Dotnetcore30forwindesktop
Interactive connection2
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
Interoperability of webassembly with javascript
Teamsの裏側? Azure Communication Servicesのプレビューが出たので、さっそく触ってみた話
SignalRブートキャンプ
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
20200214 c#tokyo lt_upload
Ignite 2021秋 recap - 開発者向け新機能紹介
App001 .net core_アプリケーショ
App001 .net core_アプリケーショ
App001 .net core_アプリケーショ
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
[Japan Tech summit 2017] APP 001
C# 8.0 非同期ストリーム
Ad

More from Yuta Matsumura (15)

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

未知との交信!?Project SignalR