SlideShare a Scribd company logo
1 of 49
Download to read offline
C# で Single Page Web アプリが開発できる 「Blazor」
その概要と Web アプリ開発者にもたらす利点
https://youtu.be/JU-6pAxqAa4
2 OSC18Do – "Blazor"
https://twitter.com/bokusama/status/708376621409959936
http://clr-h.jp
3 OSC18Do – "Blazor"
#osc18do
#clrh107
4 OSC18Do – "Blazor"
プロフィール
SPA 開発の経験あり。
• サーバー側 - C# + ASP.NET MVC / ASP.NET Core MVC
• クライアント側 - TypeScript + AnguarJS 1.x / Angular 5
• 開発経験はあるけど、知識は浅い。いつもよくググってる。
React、Vueなど他のSPAフレームワーク経験はゼロ。
JavaScript は嫌いじゃない。
• むしろ好きなほう。(型がないと辛いので TypeScript 使いますが。)
@jsakamoto
5 OSC18Do – "Blazor"
3年前…
オープンソースカン
ファレンス Hokkaido
2015 で、TypeScript は
いいぞー、という話を
させていただきました。
6 OSC18Do – "Blazor"
7 OSC18Do – "Blazor"
Blazorとは
8 OSC18Do – "Blazor"
「Blazor」とは、Single Page Web アプリケーションを、C# 言語で開発可能とする、
実行環境 SPAフレームワーク 開発環境
Blazor とは
これらを提供する、オープンソースなソフトウェアプロダクトです。
9 OSC18Do – "Blazor"
Blazor の実行環境
10 OSC18Do – "Blazor"
C#プログラムがブラウザで動作
• Webブラウザの "WebAssembly" 上に
.NET 実行環境を構築
• .NET アセンブリ (.dll) をロード、
IL (中間言語) を解釈して動作
• C# ソースコード ⇒ JavaScript、といった
トランスパイラではない
• C# ⇒ WebAssembly のクロスコンパイラでもない
※本セッション中では、"C#" ばかり連呼してますが、このような動作原理なので、実は VB や F# は
じめ、とにかく .NET アセンブリであれば Blazor アプリ内から参照して実行することができます。
(但しスピーカー自身は未検証)
11 OSC18Do – "Blazor"
WebAssembly ブラウザ サポート状況
https://caniuse.com/#feat=wasm
12 OSC18Do – "Blazor"
SPA フレームワークとしての Blazor
13 OSC18Do – "Blazor"
SPAフレームワークである
• Razor構文による
HTMLテンプレート
• コンポーネント指向
• データバインディング
• 依存性注入 (DI)
• URLルーティング
"WebAssembly で
フィボナッチ数
を計算してみた"
とかのレベル
じゃないよ!
14 OSC18Do – "Blazor"
Flash などのようなプラグイン技術ではない
• HTML + CSS でプレゼンテーション層を記述。
• JavaScript エンジンに替わって、
WebAssembly エンジンでロジックを実行し
てるだけ、と考えるとよいかも。
• この点では、Angular、React、Vue といった
SPA フレームワークと同じ仲間と言えるの
では。
※今日現在はWebAssemblyのコード内からDOMは触れないなどの制約があるため、実のところ、
Blazor のランタイムには、大量の JavaScript コードが含まれています。
15 OSC18Do – "Blazor"
Blazor で作るのは SPA!
• Blazor アプリはブラウザ上で動く SPA。
• サーバー側実装は必須ではありません。
• 検証してないが、原理からして、Firebase などの MBaaS をサーバー側実装として
利用することも OK なはず。
• 静的コンテンツをホストできる Web サーバー上であれば配置可能。
• Blazor アプリプロジェクトを "発行" してできあがる、.dll ファイル群を含むコン
テンツを配置すればOK!
16 OSC18Do – "Blazor"
Blazor を開発するための環境
17 OSC18Do – "Blazor"
強力な開発支援環境
• Visual Studio IDE 用アドインが提供
• HTMLテンプレート記述中も
下記のIDE支援が得られる
• インテリセンス
• 即時エラーチェック
• Code Lens
• リファクタリング機能
18 OSC18Do – "Blazor"
.NET Core 2.1 SDK (2.1.300)
"ASP.NET と Web 開発" ワークロードが
選択されていること
Visual Studio 2017 v.15.7+
Visual Studio 拡張
Blazor Language Services
Windows OS の場合の推奨開発環境
.NET
19 OSC18Do – "Blazor"
Visual Studio のプロジェクト新規作成に現れる
20 OSC18Do – "Blazor"
CLI 環境もある
Linux や macOS では dotnet CLI で開発可能
• .NET Core 2.1 SDK (2.1.300)
$ dotnet new -i Microsoft.AspNetCore.Blazor.Templates::*
$ dotnet new blazor
$ dotnet run
21 OSC18Do – "Blazor"
Blazor はオープンソース
22 OSC18Do – "Blazor"
ソースコードは GitHub でホスト
• Microsoft の ASP.NET Team が主導
• Apache 2.0 ライセンス
23 OSC18Do – "Blazor"
Blazor がもたらすもの
24 OSC18Do – "Blazor"
Blazor は開発者負担を減らす!
C# プログラマに対し
追加の学習コストが
小さい
IDE による開発支援 サーバ~クライアント
間の型と手続きの共有
25 OSC18Do – "Blazor"
1. C# プログラマに対し
追加の学習コストが小さい
26 OSC18Do – "Blazor"
コンポーネント(HTMLテンプレート)は Razor 構文
• ASP.NET MVC のサーバー側ビュー
と同じ構文
• "@" キーワードを起点に C# コード
が書ける、ってノリでいける。
• JSX の C# 版みたいな感じ
• 独特なマークアップを、さほど覚
えなくて済む。
27 OSC18Do – "Blazor"
C# プロジェクトである
• シンプル。
• JavaScript のパッケージシステム、バンド
ラー、タスクランナーなどの設定ファイル
と格闘しなくてよい。
• パッケージシステムも NuGet
である。
28 OSC18Do – "Blazor"
トランスパイラではない。.NET 実行環境である。
• これまでの C# プログラミングの知識・経験がそのまま通用する。
• 標準クラスライブラリ (BCL)
• 属性 (Attribute)
• リフレクション
• 単体テスト
• .NET アセンブリバイナリがそのまま動く
• 既存の NuGet パッケージも使える
29 OSC18Do – "Blazor"
2. Visual Studio IDE による開発支援
30 OSC18Do – "Blazor"
強力な開発支援環境
• Visual Studio IDE 用アドインが提供
• HTMLテンプレート記述中も
下記のIDE支援が得られる
• インテリセンス
• 即時エラーチェック
• Code Lens
• リファクタリング機能
31 OSC18Do – "Blazor"
インテリセンス
コンポーネントのHTML部分記述中
も、他のコンポーネント名が候補
に現れる
コンポーネントが公開している
プロパティも候補に現れる
32 OSC18Do – "Blazor"
リファクタリング
HTMLテンプレート編集でも、変数名や型名の変更が実行可能
33 OSC18Do – "Blazor"
参照の検索
モデルを参照しているHTMLテンプレート中の箇所もわかる
34 OSC18Do – "Blazor"
補足 – Chrome Debugger 対応も進行中
35 OSC18Do – "Blazor"
3. サーバー/クライアント間での
型と手続きの共有
36 OSC18Do – "Blazor"
型情報の二重管理
サーバー側を C#、クライアント側を TypeScript で実装だと、XHR/JSON
でやりとりする型情報が二重管理に。
37 OSC18Do – "Blazor"
JSON.parse() の問題
JSON.parse() では Date 型を復元できない
38 OSC18Do – "Blazor"
Blazor はサーバー/クライアントで型情報を共有
• 日時型も問題なくクライアント側でJSONから復元される
• 日時型に限らず、メソッド
や計算プロパティも含めて、
サーバー側と同じオブジェク
トが復元
39 OSC18Do – "Blazor"
Blazor を学ぶには?
40 OSC18Do – "Blazor"
おすすめ動画
NDC Oslo 2017 ASP.NET Community
Standup – April 3
NDC Minnesota 2018
https://youtu.be/JU-6pAxqAa4https://j.mp/ndc-oslo-blazor https://j.mp/ancs-apr3
41 OSC18Do – "Blazor"
自習用リソース
Blazor 公式サイト
https://blazor.net/
LEARN BLAZOR
https://learn-blazor.com/
Blazor アプリケーションプログラミング自習書
https://j.mp/selflearn-blazor-jp
42 OSC18Do – "Blazor"
Blazor の弱点
43 OSC18Do – "Blazor"
実験段階である
https://twitter.com/danroth27/status/970174117109424128
44 OSC18Do – "Blazor"
Qiita 「2018年の最先端バックエンドエンジニアに必要なスキル
について考えてみました。」
45 OSC18Do – "Blazor"
まとめ
46 OSC18Do – "Blazor"
Blazor が示した未来
• JavaScriptへのトランスパイルでもなく、
WebAssembly へのクロスコンパイルでもない、
実行環境をそのままブラウザ上で走らせること
で SPA を実装するアイディアが実証されまし
た。
• このような形を含めて WebAssembly の活用の
幅が広がると、その恩恵に預かれるプログラ
マやユーザーも増えるのでは、と感じました。
Blazor は SPA 開発者の負担を大幅
に緩和できる
• Blazor は、"ブラウザ上で.NETが動く" のその先、
SPAフレームワークと IDE 支援までをも提供す
ることで、SPA 開発の開発者体験が大きく改善
することを示してみせました。
• 開発者負担が減ることで、よりよき成果を、
より迅速にユーザーに届けることができるの
では、と期待が膨らみます。
JavaScript 以外の言語とランタイ
ムが使える可能性
47 OSC18Do – "Blazor"
Lean, Practice, Share.
48 OSC18Do – "Blazor"
Q
A
Q & A
49 OSC18Do – "Blazor"
Happy Coding :)
© 2018 Junichi Sakamoto All rights reserved.
本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。
本情報の内容 (添付文書、リンク先などを含む) は、本情報作成時点のものであり、予告なく変更される場合があります

More Related Content

What's hot

さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みTakeshi Ogawa
 
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要Akira Inoue
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Satoshi Kubo
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーションssuser070fa9
 
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門Developers Summit
 
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるとにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるMasatoshi Tada
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割Recruit Lifestyle Co., Ltd.
 
de:code 2019 CD09 【Build 2019 発表】Blockchain as a Service 最新情報と新サービスにおけるブロックチェ...
de:code 2019 CD09 【Build 2019 発表】Blockchain as a Service 最新情報と新サービスにおけるブロックチェ...de:code 2019 CD09 【Build 2019 発表】Blockchain as a Service 最新情報と新サービスにおけるブロックチェ...
de:code 2019 CD09 【Build 2019 発表】Blockchain as a Service 最新情報と新サービスにおけるブロックチェ...Kazumi Hirose
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring増田 亨
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer増田 亨
 
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャーssuser070fa9
 
Azure Kubernetes Service Overview
Azure Kubernetes Service OverviewAzure Kubernetes Service Overview
Azure Kubernetes Service OverviewTakeshi Fukuhara
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18Yusuke Suzuki
 
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来増田 亨
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 

What's hot (20)

さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
 
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
 
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
【16E2】New Relic を使ったDevOps 時代のパフォーマンス監視と障害分析入門
 
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるとにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みる
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
de:code 2019 CD09 【Build 2019 発表】Blockchain as a Service 最新情報と新サービスにおけるブロックチェ...
de:code 2019 CD09 【Build 2019 発表】Blockchain as a Service 最新情報と新サービスにおけるブロックチェ...de:code 2019 CD09 【Build 2019 発表】Blockchain as a Service 最新情報と新サービスにおけるブロックチェ...
de:code 2019 CD09 【Build 2019 発表】Blockchain as a Service 最新情報と新サービスにおけるブロックチェ...
 
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primerオブジェクト指向プログラミング入門 -- Java object-oriented programming primer
オブジェクト指向プログラミング入門 -- Java object-oriented programming primer
 
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
 
Jenkins と groovy
Jenkins と groovyJenkins と groovy
Jenkins と groovy
 
Azure Kubernetes Service Overview
Azure Kubernetes Service OverviewAzure Kubernetes Service Overview
Azure Kubernetes Service Overview
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18
 
オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
 
Maven基礎
Maven基礎Maven基礎
Maven基礎
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 

Similar to C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点

New Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASMNew Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASMShotaro Suzuki
 
モノづくりBlazor勉強会1回目資料_Blazorについて.pptx
モノづくりBlazor勉強会1回目資料_Blazorについて.pptxモノづくりBlazor勉強会1回目資料_Blazorについて.pptx
モノづくりBlazor勉強会1回目資料_Blazorについて.pptxtkeproject
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門miso- soup3
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性Yamamoto Reki
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発Yuta Matsumura
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Shotaro Suzuki
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるdavid9142
 
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1MasuqaT
 
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門高速!Clojure Web 開発入門
高速!Clojure Web 開発入門Kazuki Tsutsumi
 
Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系祐司 伊藤
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Narami Kiyokura
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口Sunao Tomita
 
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園Y Watanabe
 
Blazor Web Assembly (C#) を触ってみた
Blazor Web Assembly (C#) を触ってみたBlazor Web Assembly (C#) を触ってみた
Blazor Web Assembly (C#) を触ってみたNaito Oshima
 
Mvc conf session_2_shibamura
Mvc conf session_2_shibamuraMvc conf session_2_shibamura
Mvc conf session_2_shibamuraHiroshi Okunushi
 
Visual studio 14 CTP2 概要
Visual studio 14 CTP2 概要Visual studio 14 CTP2 概要
Visual studio 14 CTP2 概要Yoshihisa Ozaki
 

Similar to C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点 (20)

New Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASMNew Features of DotNet 6 Blazor WASM
New Features of DotNet 6 Blazor WASM
 
モノづくりBlazor勉強会1回目資料_Blazorについて.pptx
モノづくりBlazor勉強会1回目資料_Blazorについて.pptxモノづくりBlazor勉強会1回目資料_Blazorについて.pptx
モノづくりBlazor勉強会1回目資料_Blazorについて.pptx
 
2016/12/17 ASP.NET フロントエンドタスク入門
 2016/12/17 ASP.NET フロントエンドタスク入門 2016/12/17 ASP.NET フロントエンドタスク入門
2016/12/17 ASP.NET フロントエンドタスク入門
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
Blazor0.6.0を用いたスクリプトレスWebアプリ開発の可能性
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
 
【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート
 
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1
 
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門高速!Clojure Web 開発入門
高速!Clojure Web 開発入門
 
Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系Webブラウザで使えるいろんな処理系
Webブラウザで使えるいろんな処理系
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
 
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
 
Blazor Web Assembly (C#) を触ってみた
Blazor Web Assembly (C#) を触ってみたBlazor Web Assembly (C#) を触ってみた
Blazor Web Assembly (C#) を触ってみた
 
Mvc conf session_2_shibamura
Mvc conf session_2_shibamuraMvc conf session_2_shibamura
Mvc conf session_2_shibamura
 
Visual studio 14 CTP2 概要
Visual studio 14 CTP2 概要Visual studio 14 CTP2 概要
Visual studio 14 CTP2 概要
 

More from Jun-ichi Sakamoto

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

More from Jun-ichi Sakamoto (20)

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

Recently uploaded

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (10)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点

  • 1. C# で Single Page Web アプリが開発できる 「Blazor」 その概要と Web アプリ開発者にもたらす利点 https://youtu.be/JU-6pAxqAa4
  • 2. 2 OSC18Do – "Blazor" https://twitter.com/bokusama/status/708376621409959936 http://clr-h.jp
  • 3. 3 OSC18Do – "Blazor" #osc18do #clrh107
  • 4. 4 OSC18Do – "Blazor" プロフィール SPA 開発の経験あり。 • サーバー側 - C# + ASP.NET MVC / ASP.NET Core MVC • クライアント側 - TypeScript + AnguarJS 1.x / Angular 5 • 開発経験はあるけど、知識は浅い。いつもよくググってる。 React、Vueなど他のSPAフレームワーク経験はゼロ。 JavaScript は嫌いじゃない。 • むしろ好きなほう。(型がないと辛いので TypeScript 使いますが。) @jsakamoto
  • 5. 5 OSC18Do – "Blazor" 3年前… オープンソースカン ファレンス Hokkaido 2015 で、TypeScript は いいぞー、という話を させていただきました。
  • 6. 6 OSC18Do – "Blazor"
  • 7. 7 OSC18Do – "Blazor" Blazorとは
  • 8. 8 OSC18Do – "Blazor" 「Blazor」とは、Single Page Web アプリケーションを、C# 言語で開発可能とする、 実行環境 SPAフレームワーク 開発環境 Blazor とは これらを提供する、オープンソースなソフトウェアプロダクトです。
  • 9. 9 OSC18Do – "Blazor" Blazor の実行環境
  • 10. 10 OSC18Do – "Blazor" C#プログラムがブラウザで動作 • Webブラウザの "WebAssembly" 上に .NET 実行環境を構築 • .NET アセンブリ (.dll) をロード、 IL (中間言語) を解釈して動作 • C# ソースコード ⇒ JavaScript、といった トランスパイラではない • C# ⇒ WebAssembly のクロスコンパイラでもない ※本セッション中では、"C#" ばかり連呼してますが、このような動作原理なので、実は VB や F# は じめ、とにかく .NET アセンブリであれば Blazor アプリ内から参照して実行することができます。 (但しスピーカー自身は未検証)
  • 11. 11 OSC18Do – "Blazor" WebAssembly ブラウザ サポート状況 https://caniuse.com/#feat=wasm
  • 12. 12 OSC18Do – "Blazor" SPA フレームワークとしての Blazor
  • 13. 13 OSC18Do – "Blazor" SPAフレームワークである • Razor構文による HTMLテンプレート • コンポーネント指向 • データバインディング • 依存性注入 (DI) • URLルーティング "WebAssembly で フィボナッチ数 を計算してみた" とかのレベル じゃないよ!
  • 14. 14 OSC18Do – "Blazor" Flash などのようなプラグイン技術ではない • HTML + CSS でプレゼンテーション層を記述。 • JavaScript エンジンに替わって、 WebAssembly エンジンでロジックを実行し てるだけ、と考えるとよいかも。 • この点では、Angular、React、Vue といった SPA フレームワークと同じ仲間と言えるの では。 ※今日現在はWebAssemblyのコード内からDOMは触れないなどの制約があるため、実のところ、 Blazor のランタイムには、大量の JavaScript コードが含まれています。
  • 15. 15 OSC18Do – "Blazor" Blazor で作るのは SPA! • Blazor アプリはブラウザ上で動く SPA。 • サーバー側実装は必須ではありません。 • 検証してないが、原理からして、Firebase などの MBaaS をサーバー側実装として 利用することも OK なはず。 • 静的コンテンツをホストできる Web サーバー上であれば配置可能。 • Blazor アプリプロジェクトを "発行" してできあがる、.dll ファイル群を含むコン テンツを配置すればOK!
  • 16. 16 OSC18Do – "Blazor" Blazor を開発するための環境
  • 17. 17 OSC18Do – "Blazor" 強力な開発支援環境 • Visual Studio IDE 用アドインが提供 • HTMLテンプレート記述中も 下記のIDE支援が得られる • インテリセンス • 即時エラーチェック • Code Lens • リファクタリング機能
  • 18. 18 OSC18Do – "Blazor" .NET Core 2.1 SDK (2.1.300) "ASP.NET と Web 開発" ワークロードが 選択されていること Visual Studio 2017 v.15.7+ Visual Studio 拡張 Blazor Language Services Windows OS の場合の推奨開発環境 .NET
  • 19. 19 OSC18Do – "Blazor" Visual Studio のプロジェクト新規作成に現れる
  • 20. 20 OSC18Do – "Blazor" CLI 環境もある Linux や macOS では dotnet CLI で開発可能 • .NET Core 2.1 SDK (2.1.300) $ dotnet new -i Microsoft.AspNetCore.Blazor.Templates::* $ dotnet new blazor $ dotnet run
  • 21. 21 OSC18Do – "Blazor" Blazor はオープンソース
  • 22. 22 OSC18Do – "Blazor" ソースコードは GitHub でホスト • Microsoft の ASP.NET Team が主導 • Apache 2.0 ライセンス
  • 23. 23 OSC18Do – "Blazor" Blazor がもたらすもの
  • 24. 24 OSC18Do – "Blazor" Blazor は開発者負担を減らす! C# プログラマに対し 追加の学習コストが 小さい IDE による開発支援 サーバ~クライアント 間の型と手続きの共有
  • 25. 25 OSC18Do – "Blazor" 1. C# プログラマに対し 追加の学習コストが小さい
  • 26. 26 OSC18Do – "Blazor" コンポーネント(HTMLテンプレート)は Razor 構文 • ASP.NET MVC のサーバー側ビュー と同じ構文 • "@" キーワードを起点に C# コード が書ける、ってノリでいける。 • JSX の C# 版みたいな感じ • 独特なマークアップを、さほど覚 えなくて済む。
  • 27. 27 OSC18Do – "Blazor" C# プロジェクトである • シンプル。 • JavaScript のパッケージシステム、バンド ラー、タスクランナーなどの設定ファイル と格闘しなくてよい。 • パッケージシステムも NuGet である。
  • 28. 28 OSC18Do – "Blazor" トランスパイラではない。.NET 実行環境である。 • これまでの C# プログラミングの知識・経験がそのまま通用する。 • 標準クラスライブラリ (BCL) • 属性 (Attribute) • リフレクション • 単体テスト • .NET アセンブリバイナリがそのまま動く • 既存の NuGet パッケージも使える
  • 29. 29 OSC18Do – "Blazor" 2. Visual Studio IDE による開発支援
  • 30. 30 OSC18Do – "Blazor" 強力な開発支援環境 • Visual Studio IDE 用アドインが提供 • HTMLテンプレート記述中も 下記のIDE支援が得られる • インテリセンス • 即時エラーチェック • Code Lens • リファクタリング機能
  • 31. 31 OSC18Do – "Blazor" インテリセンス コンポーネントのHTML部分記述中 も、他のコンポーネント名が候補 に現れる コンポーネントが公開している プロパティも候補に現れる
  • 32. 32 OSC18Do – "Blazor" リファクタリング HTMLテンプレート編集でも、変数名や型名の変更が実行可能
  • 33. 33 OSC18Do – "Blazor" 参照の検索 モデルを参照しているHTMLテンプレート中の箇所もわかる
  • 34. 34 OSC18Do – "Blazor" 補足 – Chrome Debugger 対応も進行中
  • 35. 35 OSC18Do – "Blazor" 3. サーバー/クライアント間での 型と手続きの共有
  • 36. 36 OSC18Do – "Blazor" 型情報の二重管理 サーバー側を C#、クライアント側を TypeScript で実装だと、XHR/JSON でやりとりする型情報が二重管理に。
  • 37. 37 OSC18Do – "Blazor" JSON.parse() の問題 JSON.parse() では Date 型を復元できない
  • 38. 38 OSC18Do – "Blazor" Blazor はサーバー/クライアントで型情報を共有 • 日時型も問題なくクライアント側でJSONから復元される • 日時型に限らず、メソッド や計算プロパティも含めて、 サーバー側と同じオブジェク トが復元
  • 39. 39 OSC18Do – "Blazor" Blazor を学ぶには?
  • 40. 40 OSC18Do – "Blazor" おすすめ動画 NDC Oslo 2017 ASP.NET Community Standup – April 3 NDC Minnesota 2018 https://youtu.be/JU-6pAxqAa4https://j.mp/ndc-oslo-blazor https://j.mp/ancs-apr3
  • 41. 41 OSC18Do – "Blazor" 自習用リソース Blazor 公式サイト https://blazor.net/ LEARN BLAZOR https://learn-blazor.com/ Blazor アプリケーションプログラミング自習書 https://j.mp/selflearn-blazor-jp
  • 42. 42 OSC18Do – "Blazor" Blazor の弱点
  • 43. 43 OSC18Do – "Blazor" 実験段階である https://twitter.com/danroth27/status/970174117109424128
  • 44. 44 OSC18Do – "Blazor" Qiita 「2018年の最先端バックエンドエンジニアに必要なスキル について考えてみました。」
  • 45. 45 OSC18Do – "Blazor" まとめ
  • 46. 46 OSC18Do – "Blazor" Blazor が示した未来 • JavaScriptへのトランスパイルでもなく、 WebAssembly へのクロスコンパイルでもない、 実行環境をそのままブラウザ上で走らせること で SPA を実装するアイディアが実証されまし た。 • このような形を含めて WebAssembly の活用の 幅が広がると、その恩恵に預かれるプログラ マやユーザーも増えるのでは、と感じました。 Blazor は SPA 開発者の負担を大幅 に緩和できる • Blazor は、"ブラウザ上で.NETが動く" のその先、 SPAフレームワークと IDE 支援までをも提供す ることで、SPA 開発の開発者体験が大きく改善 することを示してみせました。 • 開発者負担が減ることで、よりよき成果を、 より迅速にユーザーに届けることができるの では、と期待が膨らみます。 JavaScript 以外の言語とランタイ ムが使える可能性
  • 47. 47 OSC18Do – "Blazor" Lean, Practice, Share.
  • 48. 48 OSC18Do – "Blazor" Q A Q & A
  • 49. 49 OSC18Do – "Blazor" Happy Coding :) © 2018 Junichi Sakamoto All rights reserved. 本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。 本情報の内容 (添付文書、リンク先などを含む) は、本情報作成時点のものであり、予告なく変更される場合があります