SlideShare a Scribd company logo
1 of 21
SignalRでリモコンを作ろう
C# Tokyo LT大会 2020/02
Nisizawa Shuhei
自己紹介
• 西澤周平
• 業務用のASP.NETアプリケーションの保守er
• 趣味でXamarin.Formsやってます
@shuhey_commu
SignalRとは
• ASP.NETに双方向,リアルタイムな通信機能を追加するライブラリ
• サーバー・クライアント間に永続的なコネクションを確立
• 自動再接続も
• コネクションの方式は自動で選択
• サーバーとクライアント間でベストなものを選択
• 開発者は考える必要がない
• RPC(Remote Procedure Call)でサーバーからクライアントのメソッドを,
クライアントからサーバーのメソッドを呼ぶことができる.
よく見る用途
• チャットアプリ
• SignalRのサンプルでおなじみ
• ダッシュボード
• データの変化をリアルタイムでクライアントに反映
• 株価のリアルタイムチャートとか?
• Server-Side Blazor
SignalRのイメージ
• 双方向
• リアルタイム通信
はろー
SignalRのイメージ
• 双方向
• リアルタイム通信
はろー
はろー
はろー
はろー
知らんがな…
SignalRを使って何かできないだろうか
• クライアントからクライアントにメッセージを送れる(サーバー
経由で)
• 相手クライアント側でメッセージを受け取ったら任意の処理を
行える
• つまり, ネットワークの向こうのデバイスを操作できる
SignalRを使って何かできないだろうか
• 欲しい物を作る
• モチベーション高まる
• 結果として嬉しい
SignalRを使って何かできないだろうか
• 欲しい物を作る
• モチベーション高まる
• 結果として嬉しい
• 発表スライドコントローラー
• パワポリモコン
こんなやつ →
とあるパワポリモコンの機能
• 次のスライドへ
• 前のスライドへ
• ブラックアウト
SignalRパワポリモコンのメリット
• 貴重なUSBポートを消費しない
• 忘れる可能性が低い
• うっかりバッテリー切れの可能性が低い
• お金が減らない(時間は減るけど)
• そんなに高価なものでもないけれど
• 機能の追加もお好みのままに
• 経験はプライスレス!
SignalRパワポリモコンのデメリット
• ネットワーク必須
• 自作ゆえに本番でちゃんと動くかすごく不安
パワポリモコンの構成
リモコン役の
Xamarin.Forms製アプリ
(無料)
レシーバー役の
WPF製常駐アプリ
(無料)
中継するだけの
SignalRサーバー
Azure App Serviceでホスト
(無料)
ここでPower
Pointを動かし
ているよ
仕組み
• SignalRサーバーへメッセージ(ただの文字列)送信
next
仕組み
• SignalRサーバーはクライアントへそのまま中継するだけ
next next
仕組み
• メッセージに応じて各キーが押されたことにする
next next
SendKeys.SendWait("{RIGHT}");
キーボードの→が押されたことにする
メッセージとキーの対応
送信文字列 シミュレートするキー操作 補足
prev ←
next →
blackout B
toggleSlideShow Shift+5 切り替え
ESC
デモ
• すでにやってます
• (注:このプレゼンを自作パワポコントローラで行いました)
まとめ
• SignalRの双方向,リアルタイム通信の機能を使えばネットワーク
の向こう側のデバイスを操作できる
• 実装はとてもシンプルにできる
• 公式のチュートリアル,ドキュメントを見ると実感できます
• .NETアプリさえ動けばいろんなデバイスを操作できる!
• と思ふ
• ぜひSignalRで遊んでみてください
ありがとうございました
参考
• .NET Core と SignalR によるリアルタイム Web の活用
• MS 井上さん
• https://www.slideshare.net/chack411/net-core-signalr-web
• チャットアプリチュートリアル(クライアントはJavaScript)
• https://docs.Microsoft.com/en-us/aspnet/core/tutorials/signalr?tabs=visual-studio&view=aspnetcore-3.1
• .NETクライアント(C#で)
• https://docs.microsoft.com/en-us/aspnet/core/signalr/dotnet-client?view=aspnetcore-3.1&tabs=visual-studio
• 今回のソースコード
• https://github.com/shuheydev/SlideController

More Related Content

Similar to 20200214 c#tokyo lt_upload

Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Akira Inoue
 
160705-02 RTミドルウエア講習会・名城大
160705-02 RTミドルウエア講習会・名城大160705-02 RTミドルウエア講習会・名城大
160705-02 RTミドルウエア講習会・名城大openrtm
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門torisoup
 
LINE API 紹介&LINE API Use Case(Azure編)
LINE API 紹介&LINE API Use Case(Azure編)LINE API 紹介&LINE API Use Case(Azure編)
LINE API 紹介&LINE API Use Case(Azure編)拓将 平林
 
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Y Watanabe
 
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)Shinichiro Isago
 
SmartBBSとデスクトップアプリ
SmartBBSとデスクトップアプリSmartBBSとデスクトップアプリ
SmartBBSとデスクトップアプリkstmshinshu
 
AWS初心者向けWebinar AWSでBig Data活用
AWS初心者向けWebinar AWSでBig Data活用AWS初心者向けWebinar AWSでBig Data活用
AWS初心者向けWebinar AWSでBig Data活用Amazon Web Services Japan
 
.NET ラボ 勉強会 C# でラインプラットフォーム開発
.NET ラボ 勉強会 C# でラインプラットフォーム開発.NET ラボ 勉強会 C# でラインプラットフォーム開発
.NET ラボ 勉強会 C# でラインプラットフォーム開発Kenichiro Nakamura
 
LINE お絵描きアプリハンズオン 20190519
LINE お絵描きアプリハンズオン 20190519LINE お絵描きアプリハンズオン 20190519
LINE お絵描きアプリハンズオン 20190519K Kimura
 
明治大学理工学部 特別講義 AI on Azure
明治大学理工学部 特別講義 AI on Azure明治大学理工学部 特別講義 AI on Azure
明治大学理工学部 特別講義 AI on AzureDaiyu Hatakeyama
 
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回Naoyuki Yamada
 
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020SORACOM,INC
 
Engineer is Hero !! DevOps MSA and AI
Engineer is Hero !! DevOps MSA and AIEngineer is Hero !! DevOps MSA and AI
Engineer is Hero !! DevOps MSA and AIYoshio Terada
 
開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリング開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリングAmazon Web Services Japan
 
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2Amazon Web Services Japan
 
Androidを中心に紐解くIoT
Androidを中心に紐解くIoTAndroidを中心に紐解くIoT
Androidを中心に紐解くIoTKeisuke Nishitani
 

Similar to 20200214 c#tokyo lt_upload (20)

Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
 
160705-02 RTミドルウエア講習会・名城大
160705-02 RTミドルウエア講習会・名城大160705-02 RTミドルウエア講習会・名城大
160705-02 RTミドルウエア講習会・名城大
 
Growing up serverless
Growing up serverlessGrowing up serverless
Growing up serverless
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
LINE API 紹介&LINE API Use Case(Azure編)
LINE API 紹介&LINE API Use Case(Azure編)LINE API 紹介&LINE API Use Case(Azure編)
LINE API 紹介&LINE API Use Case(Azure編)
 
Angularreflex20141210
Angularreflex20141210Angularreflex20141210
Angularreflex20141210
 
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
 
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
WindowsAzureの長所を活かすクラウド アプリ開発(PDF版)
 
SmartBBSとデスクトップアプリ
SmartBBSとデスクトップアプリSmartBBSとデスクトップアプリ
SmartBBSとデスクトップアプリ
 
AWS初心者向けWebinar AWSでBig Data活用
AWS初心者向けWebinar AWSでBig Data活用AWS初心者向けWebinar AWSでBig Data活用
AWS初心者向けWebinar AWSでBig Data活用
 
.NET ラボ 勉強会 C# でラインプラットフォーム開発
.NET ラボ 勉強会 C# でラインプラットフォーム開発.NET ラボ 勉強会 C# でラインプラットフォーム開発
.NET ラボ 勉強会 C# でラインプラットフォーム開発
 
LINE お絵描きアプリハンズオン 20190519
LINE お絵描きアプリハンズオン 20190519LINE お絵描きアプリハンズオン 20190519
LINE お絵描きアプリハンズオン 20190519
 
明治大学理工学部 特別講義 AI on Azure
明治大学理工学部 特別講義 AI on Azure明治大学理工学部 特別講義 AI on Azure
明治大学理工学部 特別講義 AI on Azure
 
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
 
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
B2 改めて双方向通信について考えよう! 〜リモートアクセスのパターンとその実践〜 | SORACOM Technology Camp 2020
 
GraphQL入門 (AWS AppSync)
GraphQL入門 (AWS AppSync)GraphQL入門 (AWS AppSync)
GraphQL入門 (AWS AppSync)
 
Engineer is Hero !! DevOps MSA and AI
Engineer is Hero !! DevOps MSA and AIEngineer is Hero !! DevOps MSA and AI
Engineer is Hero !! DevOps MSA and AI
 
開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリング開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリング
 
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
 
Androidを中心に紐解くIoT
Androidを中心に紐解くIoTAndroidを中心に紐解くIoT
Androidを中心に紐解くIoT
 

Recently uploaded

LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルCRI Japan, Inc.
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイントonozaty
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用KLab Inc. / Tech
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。iPride Co., Ltd.
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperleger Tokyo Meetup
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfTakayuki Nakayama
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdkokinagano2
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルCRI Japan, Inc.
 

Recently uploaded (8)

LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 

20200214 c#tokyo lt_upload