Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Blazor WASMのアプリをMAUI Blazorに移行してみる
Search
tomokusaba
February 24, 2023
Programming
0
580
Blazor WASMのアプリをMAUI Blazorに移行してみる
.NETラボ 勉強会 2023年2月
Blazor WASMのアプリをMAUI Blazorに移行してみる
tomokusaba
February 24, 2023
Tweet
Share
More Decks by tomokusaba
See All by tomokusaba
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
1
11
プロンプトエンジニアリング入門
tomokusaba
2
1.1k
Sementic Kernelのネイティブ関数について
tomokusaba
0
890
C#でのPlaywrightを使ったE2Eテストの実際
tomokusaba
0
360
「インフラ初心者」…からのPlaywright Testing
tomokusaba
1
320
Fluent UI Blazorの新しいComponentについて
tomokusaba
0
260
「インフラ初心者の私がAzure VMで.NETアプリをホストするまでサンタを帰さない」の続き!
tomokusaba
1
300
Sementic Kernelのネイティブ関数について
tomokusaba
0
260
Semantic Kernelのすすめ
tomokusaba
0
220
Other Decks in Programming
See All in Programming
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
180
脱・初心者!脱・マネコン!AWS CDKを使ってみませんか!?
har1101
0
300
Doctrine ORMでValue Objectを扱う方法4選 #phpstudy / 4 ways to handle Value Objects with Doctrine ORM
77web
4
110
Milestoner
bkuhlmann
1
400
Javaエンジニアのための Nodejs/Nuxt3入門
hidekatsu_izuno
0
280
Front-end application development, Symfony-style(s)
dunglas
2
1.9k
Ruby GitHub Packages
bkuhlmann
0
620
SpringBoot+MyBatisで例外が出たときどこを見るか
syukai
0
110
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
1.1k
Elm 0.19.0 Changes
bkuhlmann
0
480
スクラムチームと認知負荷 - ニフティのスクラムトーク Vol2. / NIFTY Tech Talk #18
niftycorp
PRO
1
120
pixivアプリでマルチモジュールを実現するまで
gatosyocora
1
130
Featured
See All Featured
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
Infographics Made Easy
chrislema
237
18k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.3k
Automating Front-end Workflow
addyosmani
1355
200k
GitHub's CSS Performance
jonrohan
1023
450k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Reflections from 52 weeks, 52 projects
jeffersonlam
344
19k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
24
2.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
658
120k
Bootstrapping a Software Product
garrettdimon
PRO
301
110k
Transcript
Blazor WASMのアプリを MAUI Blazorに移行してみる 株式会社SAKURUG エンジニアリングユニット 草場 友光 .NETラボ 2023年2月
自己紹介 • 普段は主にWebFormsアプリの保守の お仕事をしてます。 • 古めのシステムが多いので時代に取り 残されぬよう新しい技術を一つでも入 れるよう日々努力しています。 • 2022/08-2023
Microsoft MVP (Developer Technologies) • tomo_kusaba
宣伝 【VISION】ひとの可能性を開花させる企業であり続ける VISIONに共感できる仲間募集中。
注意 • 個人の見解・解釈が多分に入っています。 • 見解の相違・事実誤認などありましたらご指摘ください。 • #dotnetlabでtweetすると右側に表示されます
今日の目的 • Blazor WebAssemblyで記述したアプリケーションは基本的に そのままのコードでMAUI Blazorに移行が可能です。 • しかし、ワークロードが異なるが故に全くそのままといういき ません。 •
先月見せたRESTAPI、MessagePack、MemoryPack比較用の アプリケーションを題材にして実際にMAUI Blazorに移行して みてその差異を探ってみたいといきます。
MAUI Blazorとは Blazor Hybrid Blazor技術も使ってMAUI のUIやコードを記述できる 技術 MAUIの様々なAPIも Razorコンポーネントの中に 記述できる
今回の移行順序 • 必要なパッケージを NuGet(MessagePack,MemoryPack,QuickGrid) • _imports.razorに「@using Microsoft.AspNetCore.Components.QuickGrid」を追加 • Null許容を有効化する •
モデルクラス(Yubin.cs)をコピー • MauiProgram.csにhttpClientサービスを追加 • Page配下の各razorページを移行 • Shared配下のNavMenuの表示を変更
移行元プロジェクト • https://github.com/tomokusaba/MessagePackView • https://kind-moss-0af0a4d00.2.azurestaticapps.net/ (GitHub) Static Web Apps
デモ
ワークロードによる差 • global usingで暗黙的に宣言されているパッケージ • MAUIはNull許容が有効化されていなかった。(.NET 7) • Microsoft.AspNetCore.Components.Hosting.WebAssembl yHostかMicrosoft.Maui.Hostか?
実機でデバッグしてみる(Android) • 準備 • デバイスで開発者モードを有効にする • 設定画面に移動 • 端末情報を選択 •
ビルド番号を7回タップ • USBデバッグを有効にする • 設定画面に移動 • 開発者向けオプションを選択 • USBデバッグオプションをオンにする • デバイスをPCに接続する • データ通信可能なUSBケーブルでPCと端末を接続する • デバイスのドライバーをインストールする(Android SDK Managerを使用 してGoogle USBドライバーをインストール)
ホットリロード • 実機でのデバッグ実行時でもホットリロード可能(重要)
デモ
移行後のMAUI Blazorアプリ • https://github.com/tomokusaba/MAUIBlazor
参考文献 • NET MAUI とは • ASP.NET Core Blazor Hybrid
おしまい おしまい