SlideShare a Scribd company logo
de:code 2019 MW81
がんばらなくても C# で Single Page Web アプリ
ケーションが書けてしまう「 Blazor」とは
Microsoft MVP for Visual Studio and Development Technologies
坂本 純一 (@jsakamoto)
Blazor の概要とその仕組み
Client-side Server-side
Client-side
Blazor とは?
SPA フレー
ムワーク
実行環境
開発環境
(SDK)
JavaScript への変換ではない。
.NET のバイナリが動く。
仕組み
※このような動作原理なので、既存の NuGet パッケージライブラリもそのまま使えたりする。
あくまでも HTML 標準
あくまでも HTML 標準
Demo
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Demo
C# で SPA が書けることの
何が嬉しいのか
• .NET Core SDK
Visual Studio 2019 + Blazor 拡張
Visual Studio Code + C#拡張
開発環境の構築が容易
※1 … 2019年5月現在、v.3.0.0 Preview 5 ※2 … JetBrains Rider など他のエディタ/IDE は未評価
※3 … 2019年5月現在、Preview 版 推奨
だけ
簡潔なプロジェクト構造
容易な開発環境構築
+
簡潔なプロジェクト構造
| |
がんばらなくても SPA が
書けてしまう。
既に C# で開発している場合は
さらなる特典
ビルドシステム (MSBuild)
LINQ 属性 リフレクション
IntelliSense、CodeLens etc…
パッケージシステム (NuGet)
単体テスト (xUnit とか)
いつもの C# 開発で SPA 開発できる
サーバー側も .NET なら型情報が共有できる
Person.dll
Server Client (Blazor)
サーバー側も .NET なら型情報が共有できる
Person.dll
Server Client (Blazor)
サーバー側も .NET なら型情報が共有できる
Person.dll
var person = new Person {
Name = "Taro";
};
return person;
Server Client (Blazor)
サーバー側も .NET なら型情報が共有できる
Person.dll
var person = new Person {
Name = "Taro";
};
return person;
Server Client (Blazor)
{"name":"Taro"}
サーバー側も .NET なら型情報が共有できる
Person.dll
var person = new Person {
Name = "Taro";
};
return person;
var person = await
Http.GetJsonAsync<Person>(URL);
person.Greeting(); ⇒ "Hello, I’m Taro"
Server Client (Blazor)
{"name":"Taro"}
サーバー側も .NET なら型情報が共有できる
Person.dll
var person = new Person {
Name = "Taro";
};
return person;
var person = await
Http.GetJsonAsync<Person>(url);
person.Greeting(); ⇒ "Hello, I’m Taro"
Server Client (Blazor)
{"name":"Taro"}
属性による制約記述
• モデルクラスのプロパティに、属性で制約を記述することで…
属性による制約記述
属性による制約記述
[New!]
- ブラウザ側検証も有効に
C# で SPA が書けることの
何が嬉しいのか
C# で SPA が書けることで、
開発生産性の向上
を期待できる
Sever-side
そして Server-side Blazor
仕組み
仕組み
仕組み
仕組み
仕組み
仕組み
仕組み
仕組み
仕組み
Internet
Server-side Blazor の利点
ロード時間が短い
• mono.wasm や DLL を読み込ま
ないため
検索エンジン対応
• 初回HTTP要求時、レンダリング済
みコンテンツが返る
成熟・安定したランタイム
• デバッグも容易
処理性能が速い
• mono.wasm はインタープリタ
Server-side
Blazor
Server-side ならではの
さらなる面白さ
サーバー側とクライアント側を、
Web API で結ばなくてよい。
サーバー側データベースのクエリ結果を、
そのまま HTML にバインド (!)
古典的なサーバー側
Webアプリ実装みたい
なのに、これで
SPA として動く!
ますます、がんばらなくても
済んでしまう。
• 常時接続が必要
Server-side Blazor の弱点
リリース時期
2019年9月
Server-side Blazor
https://devblogs.microsoft.com/dotnet/introducing-net-5/
2020年の第一四半期の可能性?
Client-side Blazor
https://twitter.com/lupusa1/status/1126185956002938880
学習リソース
Blazor 公式サイト
• https://blazor.net
Blazor アプリケーションプログラミング自習書 (日本語)
• https://j.mp/selflearn-blazor-jp
まとめ
Blazor を選択することで…
簡潔なプロジェクト構造
強力な開発支援
開発の本質に集中、
リリースを迅速化
ユーザーと開発者
の幸せへ…
Blazor も又、銀の弾丸ではない。
しかし Blazor を選択することが
適している人たちも又、存在する。
あなたも
その一人かもしれませんね?
がんばらなくても
SPA が書けてしまう Blazor。
あなたも
はじめてみませんか?
© 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
© 2019 Jun-ichi Sakamoto All rights reserved.
本情報の内容 (添付文書、リンク先などを含む) は、de:code 2019 開催日 (2019年5月29~30日) 時点のものであり、予告なく変更される場合があります。
本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。
Lean, Practice, Share.

More Related Content

What's hot (20)

PDF
マイクロサービス 4つの分割アプローチ
増田 亨
 
PDF
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
日本マイクロソフト株式会社
 
PPTX
世界一わかりやすいClean Architecture
Atsushi Nakamura
 
PDF
AWSのログ管理ベストプラクティス
Akihiro Kuwano
 
PDF
Docker Compose 徹底解説
Masahito Zembutsu
 
PPTX
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
 
PDF
DockerとPodmanの比較
Akihiro Suda
 
PDF
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
 
PPTX
Dockerからcontainerdへの移行
Akihiro Suda
 
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
 
PDF
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
 
PDF
MagicOnion入門
torisoup
 
PPTX
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
 
PDF
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
 
PDF
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
 
PDF
[AWSマイスターシリーズ]Amazon Elastic Load Balancing (ELB)
Amazon Web Services Japan
 
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
 
PDF
Linux女子部 systemd徹底入門
Etsuji Nakai
 
PPTX
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
 
PPTX
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
 
マイクロサービス 4つの分割アプローチ
増田 亨
 
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
日本マイクロソフト株式会社
 
世界一わかりやすいClean Architecture
Atsushi Nakamura
 
AWSのログ管理ベストプラクティス
Akihiro Kuwano
 
Docker Compose 徹底解説
Masahito Zembutsu
 
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
 
DockerとPodmanの比較
Akihiro Suda
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
 
Dockerからcontainerdへの移行
Akihiro Suda
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
 
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
 
MagicOnion入門
torisoup
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
慎一 古賀
 
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
 
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Yahoo!デベロッパーネットワーク
 
[AWSマイスターシリーズ]Amazon Elastic Load Balancing (ELB)
Amazon Web Services Japan
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
 
Linux女子部 systemd徹底入門
Etsuji Nakai
 
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
 
ぱぱっと理解するSpring Cloudの基本
kazuki kumagai
 

Similar to がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは (20)

PDF
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
Takayoshi Tanaka
 
PDF
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
Takayoshi Tanaka
 
PDF
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
Takashi Okawa
 
PDF
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
Akira Inoue
 
PPTX
WPF & Windows Forms on .NET Core 3.0
ShinichiAoyagi
 
PDF
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Akira Inoue
 
PPTX
新しい Visual Studio & .NET と新時代のアーキテクチャ
慎一 古賀
 
PDF
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura
 
PPT
20021007
小野 修司
 
PDF
C# で SPA を作る BLAZOR WEBASSEMBLY の進化 - そしてその先へ
Jun-ichi Sakamoto
 
PDF
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Akira Inoue
 
PPTX
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
慎一 古賀
 
PPTX
Blazor Web Assembly (C#) を触ってみた
Naito Oshima
 
PDF
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
日本マイクロソフト株式会社
 
PDF
.NET の過去、現在、そして未来
Akira Inoue
 
PDF
.NET Coreから概観する.NETのOSSへの取り組み
Kouji Matsui
 
PPTX
ASP.NET Core のお気に入りの機能たち (docker向け)
Takayoshi Tanaka
 
PDF
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
 
PDF
LightSwitch ~結局何ができるの~ rev 2
Yoshitaka Seo
 
PDF
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Akira Inoue
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
Takayoshi Tanaka
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
Takayoshi Tanaka
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
Takashi Okawa
 
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
Akira Inoue
 
WPF & Windows Forms on .NET Core 3.0
ShinichiAoyagi
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Akira Inoue
 
新しい Visual Studio & .NET と新時代のアーキテクチャ
慎一 古賀
 
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura
 
20021007
小野 修司
 
C# で SPA を作る BLAZOR WEBASSEMBLY の進化 - そしてその先へ
Jun-ichi Sakamoto
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Akira Inoue
 
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
慎一 古賀
 
Blazor Web Assembly (C#) を触ってみた
Naito Oshima
 
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
日本マイクロソフト株式会社
 
.NET の過去、現在、そして未来
Akira Inoue
 
.NET Coreから概観する.NETのOSSへの取り組み
Kouji Matsui
 
ASP.NET Core のお気に入りの機能たち (docker向け)
Takayoshi Tanaka
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Shotaro Suzuki
 
LightSwitch ~結局何ができるの~ rev 2
Yoshitaka Seo
 
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Akira Inoue
 
Ad

More from Jun-ichi Sakamoto (20)

PDF
Pre-render Blazor WebAssembly on static web hosting at publishing time
Jun-ichi Sakamoto
 
PDF
WebAssemblyが切り拓くフロントエンドWeb開発の未来
Jun-ichi Sakamoto
 
PDF
Azure Application Insights + Angular5+ - Global azure boot camp 2019@sapporo LT
Jun-ichi Sakamoto
 
PDF
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
Jun-ichi Sakamoto
 
PDF
C# で Single Page Web アプリを 開発できる Blazor ― その魅力
Jun-ichi Sakamoto
 
PDF
Azure App Service Authentication
Jun-ichi Sakamoto
 
PDF
ライトニングトーク - とある LINE Bot の開発記「とても腹立たしいことがあったのです」
Jun-ichi Sakamoto
 
PDF
「ゆるくLTをしよう勉強会@旭川」jsakamoto 予告編
Jun-ichi Sakamoto
 
PDF
Ohotech特盛#14 セッション4 予告編
Jun-ichi Sakamoto
 
PDF
CLR/H 第99回勉強会ライトニングトーク
Jun-ichi Sakamoto
 
PDF
Ohotech特盛#13 スマホで操作する カメラ付きWi-Fiラジコンカー ― C#とラズパイとWebアプリの技術で作っちゃおう! ―
Jun-ichi Sakamoto
 
PDF
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
 
PDF
息子たちがローマ字勉強するための &lt;s>HTML5&lt;/s> Web標準 アプリ作ってみた
Jun-ichi Sakamoto
 
PDF
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
Jun-ichi Sakamoto
 
PDF
One horror stories around NuGet
Jun-ichi Sakamoto
 
PDF
How to automated test a web application with sending e mail feature
Jun-ichi Sakamoto
 
PDF
Introduction of "MarkdownPresenter"
Jun-ichi Sakamoto
 
PDF
セッション中に Twitter につぶやく!
Jun-ichi Sakamoto
 
PDF
Ohotech特盛#5予告 - タートルグラフィックでいろんな模様を描いてみよう!
Jun-ichi Sakamoto
 
PDF
ASP.NET SignalR によるクイズWebアプリ 「みんなで同時プレイするWebアプリでCodeQuizに挑戦!」
Jun-ichi Sakamoto
 
Pre-render Blazor WebAssembly on static web hosting at publishing time
Jun-ichi Sakamoto
 
WebAssemblyが切り拓くフロントエンドWeb開発の未来
Jun-ichi Sakamoto
 
Azure Application Insights + Angular5+ - Global azure boot camp 2019@sapporo LT
Jun-ichi Sakamoto
 
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
Jun-ichi Sakamoto
 
C# で Single Page Web アプリを 開発できる Blazor ― その魅力
Jun-ichi Sakamoto
 
Azure App Service Authentication
Jun-ichi Sakamoto
 
ライトニングトーク - とある LINE Bot の開発記「とても腹立たしいことがあったのです」
Jun-ichi Sakamoto
 
「ゆるくLTをしよう勉強会@旭川」jsakamoto 予告編
Jun-ichi Sakamoto
 
Ohotech特盛#14 セッション4 予告編
Jun-ichi Sakamoto
 
CLR/H 第99回勉強会ライトニングトーク
Jun-ichi Sakamoto
 
Ohotech特盛#13 スマホで操作する カメラ付きWi-Fiラジコンカー ― C#とラズパイとWebアプリの技術で作っちゃおう! ―
Jun-ichi Sakamoto
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
 
息子たちがローマ字勉強するための &lt;s>HTML5&lt;/s> Web標準 アプリ作ってみた
Jun-ichi Sakamoto
 
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
Jun-ichi Sakamoto
 
One horror stories around NuGet
Jun-ichi Sakamoto
 
How to automated test a web application with sending e mail feature
Jun-ichi Sakamoto
 
Introduction of "MarkdownPresenter"
Jun-ichi Sakamoto
 
セッション中に Twitter につぶやく!
Jun-ichi Sakamoto
 
Ohotech特盛#5予告 - タートルグラフィックでいろんな模様を描いてみよう!
Jun-ichi Sakamoto
 
ASP.NET SignalR によるクイズWebアプリ 「みんなで同時プレイするWebアプリでCodeQuizに挑戦!」
Jun-ichi Sakamoto
 
Ad

がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは