Slide 1

Slide 1 text

私の考える初学者がBlazorで きるまでの学習方法 株式会社SAKURUG プロダクトDiv 草場 友光 .NETラボ勉強会2024年8月

Slide 2

Slide 2 text

自己紹介 • コミュニティ活動を通じて知識をアッ プデートしています。 • 2022/08-2025 Microsoft MVP (Developer Technologies) • tomo_kusaba

Slide 3

Slide 3 text

宣伝 【VISION】ひとの可能性を開花させる企業であり続ける VISIONに共感できる仲間募集中。

Slide 4

Slide 4 text

注意 • 個人の見解・解釈が多分に入っています。 • 見解の相違・事実誤認などありましたらご指摘ください。 • #dotnetlabでtweetすると左側に表示されます

Slide 5

Slide 5 text

今日の目的 • Blazorはとても有用なWebフレームワークです。 • Blazorで開発できるようになるまでC#初心者を想定してどの ような学習コンテンツで学習したらよいか? • どのように学習するとより知識が定着しやすいかを紹介しこれか らBlazorでバリバリ開発するぞという方の助けになればと思い ます。

Slide 6

Slide 6 text

流れ • C#の文法の学習 • .NETの学習 • ASP.NET Coreの学習 • Blazorの学習 • (Option)EntityFremeCoreの学習 • (Option)Fluent UI Blazorの学習 • (Option)NUnit • (Option)Playwright

Slide 7

Slide 7 text

学習のポイント その1 • コードはコピペしない! • 必ず、キーボードで1字1字入力しましょう • 実際、コピペした人と、写経した人ではのびが違います!

Slide 8

Slide 8 text

学習のポイント その2 • コードは動かしてみよう • 自分なりに工夫していじってみよう

Slide 9

Slide 9 text

C#の学習 • 独習C#

Slide 10

Slide 10 text

続・C#の学習 • https://learn.microsoft.com/ja- jp/collections/7q6yuyx4kq6q10

Slide 11

Slide 11 text

続続・C#の学習 • https://ufcpp.net/study/csharp/ • C#1.0~C#最新までの新機能をおさらい →基本的に新しい言語機能が正義!

Slide 12

Slide 12 text

.NETの学習 • Microsoft Learnでどうぞ • https://learn.microsoft.com/ja- jp/collections/xjrpco5z5ewgej

Slide 13

Slide 13 text

.NETの学習ポイントその1 • 日付時刻の取り扱い • クラウドにホストする場合はUTCでの取り扱うのが基本 • 表示時にJTCに変換する必要あり(UTC⇔JSTについて確認) • . NET 8で追加された時間抽象化(TimeProvider)についての取り扱 いについて確認

Slide 14

Slide 14 text

.NETの学習ポイントその2 • カルチャーに依存したライブラリについての認識 • Stringクラスに特に多くカルチャー依存したメソッドが数多く存在します。 • ローカルとクラウドで実行結果が異なることがあります。 • Strings.StrConvのように日本ローケルやアジアローケール以外でそも そも実行不可な列挙体メンバーによってはメソッドもあります。

Slide 15

Slide 15 text

.NETの学習ポイントその3 • 汎用ホスト(Generic Hosts) • ASP.NET Coreの汎用ホストにも続く基礎的な内容 • 以下の機能を提供することは全く変わらないので抑えておくこと • DI機構 • ログ • 構成 • IHostedServiceの実装

Slide 16

Slide 16 text

汎用ホストについて参考 • .NETラボでも過去汎用ホストについて何回も語られています • .NETラボ勉強会2022年8月 .NET Core Options Pattern(髙尾 哲朗) • .NETラボ勉強会2022年9月 汎用ホストをいろいろカスタマイズして みる(髙尾 哲朗) • .NETラボ勉強会2022年10月 ASP. NET Core 汎用ホスト概要(草 場 友光) • .NETラボ勉強会2022年12月 .NET 汎用ホスト(Generic Host)っ てなにもの?(高萩 俊行(とっちゃん))

Slide 17

Slide 17 text

ASP.NET Coreの学習 • Microsoft Learnでどうぞ

Slide 18

Slide 18 text

続・ASP.NET Coreの学習 • 空のプロジェクトから始めるBlazor • https://youtu.be/8Uy4QfF9wQY?si=9Lakuuqej3D d3ys0

Slide 19

Slide 19 text

ASP.NET Coreの学習のポイント • 汎用ホストを侮るな • 過去、.NETラボ勉強会でも何回も取り上げられているとおり重 要ポイントです。 • 特に、DI(Dependency Injection)についてはBlazorの サービス機構を語る上で基礎的な内容になってます。

Slide 20

Slide 20 text

Blazorの学習 • Microsoft Learnでどうぞ

Slide 21

Slide 21 text

Blazorの学習 • https://jsakamoto.github.io/self-learning-materials-for-blazor- jp/Blazor%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E 3%82%B7%E3%83%A7%E3%83%B3%E3%83%97%E3%83%AD%E3%82%B0 %E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%87%AA%E7%BF%9 2%E6%9B%B8-v.8.0.1.pdf • https://github.com/jsakamoto/self-learning-materials-for-blazor- jp?tab=readme-ov-file

Slide 22

Slide 22 text

Blazorの学習ポイント • Blazor Web Appsになってレンダリングの問題が複雑化してま す。サーバーで動いてるのか、クライアント側で動いてるのか、イン タラクティブ性はどうかを意識しながら確認すること。 • Razorコンポーネントがんばる! • 状態管理のやりかた!

Slide 23

Slide 23 text

EntityFrameworkCoreの学習 • Microsoft Learnでどうぞ

Slide 24

Slide 24 text

EntityFrameworkCoreのポイント • データアクセスはLINQで行う • 従来通りSQLによるデータアクセスも検討

Slide 25

Slide 25 text

Fluent UI Blazorの学習 • Fluent UIの設計原則についてを学ぶ • Fluent UI Blazorは現在Fluent UI1に基づいているが原理原則は 変わらないのでこちらを参照するとよい

Slide 26

Slide 26 text

Fluent UI Blazorの学習 • Fluent UI Blazorのデモページでどうぞ • 具体的なFluent UI Blazorのコンポーネントの使用法についてはデモ ページを参照することでわかる

Slide 27

Slide 27 text

NUnit の学習 • Playwrightとの親和性から単体テストにはNUnitを推奨 • NUnit Documentationを読む!

Slide 28

Slide 28 text

Playwright(.NET)の学習 • .NETラボ勉強会2024年2月 C#でのPlaywrightを使った E2Eテストの実際(草場 友光)参照 • Playwright for .NET Docs参照

Slide 29

Slide 29 text

おしまい おしまい