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

Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例gree_tech
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Shin Ohno
 
Java EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてJava EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてShigeru Tatsuta
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugItsuki Kuroda
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホンYou_Kinjoh
 
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方kwatch
 
Azure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロAzure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロKazuyuki Miyake
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますinfinite_loop
 
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Kenjiro Kubota
 
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-Satoshi Masuda
 
ワタシハ Azure Functions チョットデキル
ワタシハ Azure Functions チョットデキルワタシハ Azure Functions チョットデキル
ワタシハ Azure Functions チョットデキルTsuyoshi Ushio
 
コンポーネント指向と余白の設計
コンポーネント指向と余白の設計コンポーネント指向と余白の設計
コンポーネント指向と余白の設計Manabu Yasuda
 
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践Yoshifumi Kawai
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPsMicrosoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPsRie Moriguchi
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)NTT DATA Technology & Innovation
 
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回Yoshiki Hayama
 

What's hot (20)

Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
 
Java EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてJava EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行について
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホン
 
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
Nippondanji氏に怒られても仕方ない、配列型とJSON型の使い方
 
Azure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロAzure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロ
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
 
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
 
ワタシハ Azure Functions チョットデキル
ワタシハ Azure Functions チョットデキルワタシハ Azure Functions チョットデキル
ワタシハ Azure Functions チョットデキル
 
コンポーネント指向と余白の設計
コンポーネント指向と余白の設計コンポーネント指向と余白の設計
コンポーネント指向と余白の設計
 
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPsMicrosoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2022をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
 

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
 
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要Akira Inoue
 
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
 

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...
 
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
 
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
 

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

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Recently uploaded (10)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

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. 本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。 本情報の内容 (添付文書、リンク先などを含む) は、本情報作成時点のものであり、予告なく変更される場合があります