SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
SignalRを使ったチャッ
トアプリの制作
株式会社SAKURUG
エンジニアリングユニット
草場 友光
.NET ラボ 2022年2月
自己紹介
• 普段は主にWebFormsアプリ
の保守のお仕事をしてます。
• 古めのシステムが多いので時
代に取り残されぬよう新しい技
術を一つでも入れるよう日々努
力しています。
• tomo_kusaba
宣伝
【VISION】ひとの可能性を開花させる企業であり続ける
VISIONに共感できる仲間募集中。
注意
• 個人の見解・解釈が多分に入っています。
• 見解の相違・事実誤認などありましたらご指摘ください。
• #dotnetlabでtweetすると右側に表示されます
今日の目的
• SignalRを使ったチャットアプリの技術的検討や制作過程につ
いて共有をしていきたいと思います
主なトピック
• チャットアプリの技術選定
• 主要仕様の決定
• 追加機能について
• サーバへのデプロイ
動機
• 今まで使用していたPerl(CGI)のチャットが現状に合わない
• クエリーストリングのみでチャットにログインできてしまう不
具合も。。。
• 実際にクローラーによってログイン状態になっていることがしばしば
• 実害は起きてないものの他者からみたらあたかもその人がいるかのよ
うに見えるので紛らわしい
• botやクローラーに容易にチャットに入らない程度のログイン
機構をつけたチャットを作りたい!
• とはいえ、厳密なセキュリティを求めるものでもない
制約事項
• 自宅サーバにデプロイ可能であること
• Windows Server 2016 (IIS 10)
• データベースはインストール可
• .NETラボのネタになるよう.NET6で実装できるとよい!
チャットアプリの技術選定について
Azure
Communication
Services Chat
SDK
Signal R
Communication Services とは
• クラウドベースのサービス(TeamsをAPI化したもの)
• チャットの会話はチャットスレッド内で行われる
• つまりスレッド型のチャットアプリとなる
• チャットスレッドはそれぞれのChatThreadIdによって一意に
識別される
単一スレッドのチャットを作ろうとしていた
ので仕様として重厚すぎる
Communication Servicesについての
過去セッション
• .NET ラボ勉強会2020年10月「Teamsの裏側?Azure
Communication Servicesのプレビューが出たので、さっそく
触ってみた話」(初音 玲さん)
• .NET ラボ勉強会2020年11月「Azure Communication
Servicesで自分だけのWEB会議を作ろう」(初音 玲さん)
• .NET ラボ勉強会2021年3月「いよいよ Azure
Communication Services からTeams会議につながるようです
よ!」(初音 玲さん)
YouTubeで動画公開されています
SignalRとは
• リアルタイムWeb機能をアプリに追加できるライブラリ。
• 主な機能としては以下の通り
• 接続管理を自動的に処理する
• 接続されているクライアントに同時にメッセージを送信する
• 特定のクライアントまたはグループにメッセージ送信する
• 増加するトラフィックを処理するためにスケーリングする
• 以下のような実装がある
• ASP.NET SignalR
• ASP.NET Core SignalR
• Azure SignalR Service
Webアプリとしての実装方式の検討
• 現状.NET 6で考えられる実装は以下の通り
• ASP.NET Core MVC
• Blazor Server
• Blazor WebAssembly
• いずれでも実装は可能と考えたが、データベースを使用した永
続化を考えていたのでその実装の容易さから今回はBlazor
Serverを選択した
今回は、Blazor Server+ASP.NET Core SignalRを採用
Blazor Serverチャットアプリを構築す
る
• マイクロソフト公式ドキュメントにそのものがあるのでまず参
考にする!
SignalR実装の肝
_hubConnection = new HubConnectionBuilder();
_hubConnection.On<string, Message>("Broadcast", BroadcastMessage);
await _hubConnection.StartAsync();
await _hubConnection.SendAsync("Broadcast", message.Username, message);
public void BroadcastMessage(string name, Message message)
{
……
}
public class BlazorChatHub : Hub
{
public async Task Broadcast(string username, Message message)
{
await Clients.All.SendAsync("Broadcast", username, message);
}
}
クライアント側
サーバー側
呼び出す
呼び出す
サンプルアプリはこんな感じ
とりあえずの修正内容
• 個々のユーザアカウントでログインしてこのログイン名で
チャットできるようにしたい
• →個別認証でプロジェクトを作成
• チャットの入力テキストボックスがだんだん下になるのは芳し
くない
• Razorページを調整
• チャットの会話内容はSQLServerで永続化する
• ページ初期表示時にチャット内容をロード
• チャット発言時にチャット内容を書き込み
新規スキャフォールディングアイテム追
加
• 登録フォームやログインフォームを編集したいので以下の手順
で新規スキャフォールディングアイテムの追加をします
アカウント登録フォームの編集
• Register.cshtml.csを編集しInputModelに名前を入力できる
よう追加
• Registar.cshtmlを編集し名前を入力するフォームを追加
• Register.cshtml.csを編集しOnPostAsyncに入力した名前が
UserNameになるように編集
• 不要なチェックなどコメントアウトをしておく
• 日本語の名前を入力可能とするためにProgram.csの
「builder.Services.AddDefaultIdentity」に
「options.User.AllowedUserNameCharacters = null;」を追
加
ログインフォームの編集
• アカウント登録が名前で入っているのでログインが名前でログ
インする必要がある。
• Login.cshtmlを編集してEmailの入力欄のラベルをわかりやす
く名前としておく
• Login.cshtml.csのInputModelを編集してEmailの属性を
Requiredのみにしておく
• その他適宜、表示を日本語に置き換えておく
アイコン提供: @miz_mus
アイコンの追加
• 大人数でチャットすることを想定しアイコンの表示機能を追加
した。
• 名前だけじゃなくアイコンを表示することで視覚的に識別できるのは
非常によい!
発言の表示色の設定追加
• 先と同じ理由で識別を容易とするために発言に色をつけられる
ようにした。
ネタをもらう機能
• 一人でも楽しめるチャット(寂しいとかいわないで!)
• あらかじめ登録されたネタ集からランダムでネタを振ってもら
える機能
• ランダムはLINQにないので拡張メソッドで実装
問題点
• 各設定画面からチャット画面に戻ってくると入室メッセージが
いちいち表示されてしまう。
• 原因は、ハブとの接続管理をRazorページにて行っているため。
• 解決方法としてハブとの接続管理をDIを用いてブラウザとの接
続単位で(Scoped)管理していけばよいのではないか?
今まで知らなかったこと
• RazorページでDIを呼び出すには@injectを書けばいいけどDI
しようとしてるクラスの中で他のDIを呼び出すにはどうすれば
よいの??
• 答え:コンストラクタに書けばいいらしい
public ClientHub(NavigationManager navigation, AuthenticationStateProvider authentication, ApplicationDbContext
DbContect, Room room)
{
_authenticationStateProvider = authentication;
_navigationManager = navigation;
_applicationDbContext = DbContect;
_room = room;
}
クライアントハブのDI化
• ほぼコピペで完了
• 変更点はページにOnChangeイベントを通知して画面変更を促
すようにした程度
公開設定ー接続
• WebDeploy用に公開設定
タイトル 内容
公開方法 「Webデプロイパッケー
ジ」
パッケージの場所 出力する場所を選択
サイト名 IIS上のパスを入力
公開設定ー設定
• WebDeploy用設定続き
タイトル 内容
構成 Release
ターゲットフレームワー
ク
net6.0
配置モード 自己完結
ターゲットランタイム win-x64
単一ファイルの生成 -
ReadyToRun -
未使用コードのトリミン
グ
-
サーバへのデプロイ
• 前提として、サーバがWebDeploy可能な状態となっているこ
と
1. Web Deploy がサーバにインストール済みであること
1. https://www.microsoft.com/ja-
jp/download/details.aspx?id=43717
2. サーバの役割で「Webサーバ(IIS)」>「管理ツール」>「管
理サービス」がインストール済みであること
IISインポート手順1
• 既存のアプリケーションに対してアップグレードリリースする
手順を示します。
• まず、既存アプリケーションを停止します。
• アプリケションプールから停止します。
IISインポート手順2
• 展開>アプリケーションの
インポートとしてアプリ
ケーションインポートウィ
ザードを開きます。
IISインポート手順3
• Visual Studioから出力した
Zipファイルへのパスを指定し
ます。
• 「次へ」ボタンを押下します。
IISインポート手順4
• そのまま「次へ」を押下しま
す。
IISインポート手順5
• アプリケーションをインス
トールするパスを入力します。
• Visual Studioでのサイト名の
入力がデフォルト値として表
示されています。
IISインポート手順6
• 「はい、デスティネーション
に存在し、アプリケーション
パッケージには存在しない余
分なファイルとフォルダはす
べて削除します」にチェック
を入れます。
• 「次へ」ボタンを押下します。
IISインポート手順7
• 「パッケージは正常にインス
トールされました。」という
メッセージを確認します。
• 「終了」ボタンを押下します。
IISインポート手順8
• 停止したアプリケーション
プールを開始します
デモ
https://www.musewiki.net/BlazorChat/
リポジトリ
• https://github.com/tomokusaba/BlazorServerChat2
おしまい
おしまい

Más contenido relacionado

La actualidad más candente

業務アプリケーション開発を支える.NET技術 #ngtnet
業務アプリケーション開発を支える.NET技術 #ngtnet業務アプリケーション開発を支える.NET技術 #ngtnet
業務アプリケーション開発を支える.NET技術 #ngtnet将 高野
 
[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法
[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法
[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法de:code 2017
 
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...WebSig24/7
 
[SC01] DevSecOps on Azure : セキュリティ問題に迅速に対応するためのパイプライン設計
[SC01] DevSecOps on Azure : セキュリティ問題に迅速に対応するためのパイプライン設計[SC01] DevSecOps on Azure : セキュリティ問題に迅速に対応するためのパイプライン設計
[SC01] DevSecOps on Azure : セキュリティ問題に迅速に対応するためのパイプライン設計de:code 2017
 
これさえあれば大丈夫!Visual Studio Code 徹底解説
これさえあれば大丈夫!Visual Studio Code 徹底解説これさえあれば大丈夫!Visual Studio Code 徹底解説
これさえあれば大丈夫!Visual Studio Code 徹底解説Saki Homma
 
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)YuzoHirakawa
 
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報Yuto Kawabata
 
社内の遊休PCをAzurePipelinesでCICDに活用しよう
社内の遊休PCをAzurePipelinesでCICDに活用しよう社内の遊休PCをAzurePipelinesでCICDに活用しよう
社内の遊休PCをAzurePipelinesでCICDに活用しようShinya Nakajima
 
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化gree_tech
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門VirtualTech Japan Inc.
 
[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例
[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例
[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例de:code 2017
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則増田 亨
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃Teruo Adachi
 
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」de:code 2017
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬Masanori Satoh
 
エンジニアが働きたい場所で働けるために、チームに必要なこと
エンジニアが働きたい場所で働けるために、チームに必要なことエンジニアが働きたい場所で働けるために、チームに必要なこと
エンジニアが働きたい場所で働けるために、チームに必要なことYuki Okada
 
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SREIida Yukako
 
ドメイン駆動設計と サーバサイドと私
ドメイン駆動設計と サーバサイドと私ドメイン駆動設計と サーバサイドと私
ドメイン駆動設計と サーバサイドと私Noriaki Kadota
 
UXを損ねる静的コンテンツ配信アンチパターン7選
UXを損ねる静的コンテンツ配信アンチパターン7選UXを損ねる静的コンテンツ配信アンチパターン7選
UXを損ねる静的コンテンツ配信アンチパターン7選Yuki Okada
 

La actualidad más candente (20)

業務アプリケーション開発を支える.NET技術 #ngtnet
業務アプリケーション開発を支える.NET技術 #ngtnet業務アプリケーション開発を支える.NET技術 #ngtnet
業務アプリケーション開発を支える.NET技術 #ngtnet
 
[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法
[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法
[SC12] あなたのチームのセキュリティスキルは十分ですか?DevSecOpsを見据えたセキュリティ人材の育成方法
 
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
 
[SC01] DevSecOps on Azure : セキュリティ問題に迅速に対応するためのパイプライン設計
[SC01] DevSecOps on Azure : セキュリティ問題に迅速に対応するためのパイプライン設計[SC01] DevSecOps on Azure : セキュリティ問題に迅速に対応するためのパイプライン設計
[SC01] DevSecOps on Azure : セキュリティ問題に迅速に対応するためのパイプライン設計
 
これさえあれば大丈夫!Visual Studio Code 徹底解説
これさえあれば大丈夫!Visual Studio Code 徹底解説これさえあれば大丈夫!Visual Studio Code 徹底解説
これさえあれば大丈夫!Visual Studio Code 徹底解説
 
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
Web Component Framework Urushiのご紹介(OSC2017 Tokyo/Spring)
 
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報
TECH Streetますます機能拡充するPower Automate for desktopの概要と最新情報
 
社内の遊休PCをAzurePipelinesでCICDに活用しよう
社内の遊休PCをAzurePipelinesでCICDに活用しよう社内の遊休PCをAzurePipelinesでCICDに活用しよう
社内の遊休PCをAzurePipelinesでCICDに活用しよう
 
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例
[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例
[DO12] ナビタイムジャパン CTO 菊池氏が語る IT リーダのための開発を加速させる DevOps の実践例
 
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
 
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」
[TL12] "炎上案件ストッパー"はかく語りき 「プロジェクトの成果をあげるために意識した一つの事」
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
 
エンジニアが働きたい場所で働けるために、チームに必要なこと
エンジニアが働きたい場所で働けるために、チームに必要なことエンジニアが働きたい場所で働けるために、チームに必要なこと
エンジニアが働きたい場所で働けるために、チームに必要なこと
 
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
 
ドメイン駆動設計と サーバサイドと私
ドメイン駆動設計と サーバサイドと私ドメイン駆動設計と サーバサイドと私
ドメイン駆動設計と サーバサイドと私
 
UXを損ねる静的コンテンツ配信アンチパターン7選
UXを損ねる静的コンテンツ配信アンチパターン7選UXを損ねる静的コンテンツ配信アンチパターン7選
UXを損ねる静的コンテンツ配信アンチパターン7選
 

Similar a .NET Lab2022年2月

.NET 7期待の新機能
.NET 7期待の新機能.NET 7期待の新機能
.NET 7期待の新機能TomomitsuKusaba
 
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppWeb開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppTomomitsuKusaba
 
.NET 7におけるBlazorの新機能
.NET 7におけるBlazorの新機能.NET 7におけるBlazorの新機能
.NET 7におけるBlazorの新機能TomomitsuKusaba
 
.NET6新機能の振り返り
.NET6新機能の振り返り.NET6新機能の振り返り
.NET6新機能の振り返りTomomitsuKusaba
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...Rakuten Group, Inc.
 
BlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみようBlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみようTomomitsuKusaba
 
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppWeb開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppTomomitsuKusaba
 
Microsoft MVPとは?コミュニティ活動のすすめ
Microsoft MVPとは?コミュニティ活動のすすめMicrosoft MVPとは?コミュニティ活動のすすめ
Microsoft MVPとは?コミュニティ活動のすすめTomomitsuKusaba
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れMitsuru Katoh
 
アジャイル開発のためのDatadog
アジャイル開発のためのDatadogアジャイル開発のためのDatadog
アジャイル開発のためのDatadogNobuyasu Seki
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
220203 sit2022 sap murata
220203 sit2022 sap murata220203 sit2022 sap murata
220203 sit2022 sap murataSoichiro Murata
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshopYoichiro Sakurai
 
浪江町ハッカソンインプットセミナー20140621
浪江町ハッカソンインプットセミナー20140621浪江町ハッカソンインプットセミナー20140621
浪江町ハッカソンインプットセミナー20140621Satoshi Maeda
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在TomomitsuKusaba
 
Domoによるモニタリングオートメーション
DomoによるモニタリングオートメーションDomoによるモニタリングオートメーション
DomoによるモニタリングオートメーションTaro Yoshioka
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけらAtsushi Nakamura
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~Yuki Ando
 
プランナーがPR駆動してみた話
プランナーがPR駆動してみた話プランナーがPR駆動してみた話
プランナーがPR駆動してみた話Rino Omura
 

Similar a .NET Lab2022年2月 (20)

.NET 7期待の新機能
.NET 7期待の新機能.NET 7期待の新機能
.NET 7期待の新機能
 
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppWeb開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor App
 
.NET 7におけるBlazorの新機能
.NET 7におけるBlazorの新機能.NET 7におけるBlazorの新機能
.NET 7におけるBlazorの新機能
 
.NET6新機能の振り返り
.NET6新機能の振り返り.NET6新機能の振り返り
.NET6新機能の振り返り
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
 
BlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみようBlazorにSwaggerを導入してみよう
BlazorにSwaggerを導入してみよう
 
Web開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor AppWeb開発者にお勧め .NET MAUI Blazor App
Web開発者にお勧め .NET MAUI Blazor App
 
Microsoft MVPとは?コミュニティ活動のすすめ
Microsoft MVPとは?コミュニティ活動のすすめMicrosoft MVPとは?コミュニティ活動のすすめ
Microsoft MVPとは?コミュニティ活動のすすめ
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れ
 
アジャイル開発のためのDatadog
アジャイル開発のためのDatadogアジャイル開発のためのDatadog
アジャイル開発のためのDatadog
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
220203 sit2022 sap murata
220203 sit2022 sap murata220203 sit2022 sap murata
220203 sit2022 sap murata
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
 
浪江町ハッカソンインプットセミナー20140621
浪江町ハッカソンインプットセミナー20140621浪江町ハッカソンインプットセミナー20140621
浪江町ハッカソンインプットセミナー20140621
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
 
Domoによるモニタリングオートメーション
DomoによるモニタリングオートメーションDomoによるモニタリングオートメーション
Domoによるモニタリングオートメーション
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
楽天エンジニアライフ
楽天エンジニアライフ楽天エンジニアライフ
楽天エンジニアライフ
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
プランナーがPR駆動してみた話
プランナーがPR駆動してみた話プランナーがPR駆動してみた話
プランナーがPR駆動してみた話
 

Más de TomomitsuKusaba

ASP. NET Core 汎用ホスト概要
ASP. NET Core 汎用ホスト概要ASP. NET Core 汎用ホスト概要
ASP. NET Core 汎用ホスト概要TomomitsuKusaba
 
NET 6で実装された新しいLINQ API
NET 6で実装された新しいLINQ APINET 6で実装された新しいLINQ API
NET 6で実装された新しいLINQ APITomomitsuKusaba
 
MuseLoid規格の音源自作について
MuseLoid規格の音源自作についてMuseLoid規格の音源自作について
MuseLoid規格の音源自作についてTomomitsuKusaba
 
Entity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうEntity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうTomomitsuKusaba
 
リモートワークで買ってよかったもの
リモートワークで買ってよかったものリモートワークで買ってよかったもの
リモートワークで買ってよかったものTomomitsuKusaba
 
.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデートTomomitsuKusaba
 

Más de TomomitsuKusaba (6)

ASP. NET Core 汎用ホスト概要
ASP. NET Core 汎用ホスト概要ASP. NET Core 汎用ホスト概要
ASP. NET Core 汎用ホスト概要
 
NET 6で実装された新しいLINQ API
NET 6で実装された新しいLINQ APINET 6で実装された新しいLINQ API
NET 6で実装された新しいLINQ API
 
MuseLoid規格の音源自作について
MuseLoid規格の音源自作についてMuseLoid規格の音源自作について
MuseLoid規格の音源自作について
 
Entity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうEntity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼう
 
リモートワークで買ってよかったもの
リモートワークで買ってよかったものリモートワークで買ってよかったもの
リモートワークで買ってよかったもの
 
.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート
 

.NET Lab2022年2月