「C Sharpの基礎 - Blazorデスクトップ」の版間の差分
(ページの作成:「== 概要 == <br><br> == クロスプラットフォーム .NET UIフレームワークの対応状況 == Blazorは多くのプラットフォームで動作し、全てのプラットフォーム間で多くのソースコードを共有することが可能である。<br> <br> <center> {| class="wikitable" | style="background-color:#fefefe; table-layout: fixed; width: 100%; table-layout: fixed; width: 75%; margin: 0 auto;" |- ! style="background-color:#66CCFF; w…」) |
|||
| 47行目: | 47行目: | ||
<br> | <br> | ||
また、C#のソースコードを別のライブラリに記述することもできる。<br> | また、C#のソースコードを別のライブラリに記述することもできる。<br> | ||
<br> | |||
Razorコンポーネント / Razorページのみを共有ライブラリに配置して、<br> | |||
App.razor、_Imports.razor、MainLayout.razor、JsInterop.cs、jsInterop.js、app.cssは共有ライブラリに移動しない。<br> | |||
<br> | |||
.csとindex.htmlを除く全てのファイルを共有ライブラリに移動することができる。<br> | |||
プラットフォーム固有の動作がある場合は、C#インターフェースで解決することができる。<br> | |||
<br> | |||
全ての.cssと.jsファイルは共有ライブラリに格納することができ、<br> | |||
index.htmlの_content/OpenHabitTracker.Blazor/...のように、プラットフォーム固有のプロジェクトにインクルードすることができる。<br> | |||
<br><br> | |||
== フレームワークの選択 == | |||
==== Windowsのみ ==== | |||
* WinForms | |||
* WPF | |||
<br> | |||
==== Windows、Linux、MacOS ==== | |||
* Photino Blazor | |||
*: コンパイルや起動が速い。 | |||
* Electron.NET | |||
*: ElectronNET.APIで動作する。 | |||
*: ただし、長いコンパイル時間、サイズの大きなビルドファイル、起動が遅い等のデメリットがある。 | |||
* Chromely | |||
*: ただし、長いコンパイル時間、起動が遅い等のデメリットがある。 | |||
*: また、2023年1月16日に開発停止している。 | |||
<br> | |||
WASM、Windows、Linux、MacOS、iOS、Androidをサポートするには、少なくとも以下に示すものが必要となる。<br> | |||
* Photino Blazor | |||
* Blazor WASM | |||
* Maui | |||
<br><br> | <br><br> | ||
2024年12月28日 (土) 14:57時点における版
概要
クロスプラットフォーム .NET UIフレームワークの対応状況
Blazorは多くのプラットフォームで動作し、全てのプラットフォーム間で多くのソースコードを共有することが可能である。
| フレームワーク | 初公開 | UI技術 | Windows | MacOS | Linux | Android | iOS | Web Assembly (WASM) |
|---|---|---|---|---|---|---|---|---|
| .NET MAUI | May 2022 | XAML | Yes | Yes | No | Yes | Yes | No |
| Blazor | Sep 2019 | HTML + CSS | Yes | Yes | Yes | Yes | Yes | Yes |
| Avalonia | Feb 2015 | XAML | Yes | Yes | Yes | Yes | Yes | Experimental |
| Uno Platform | Sep 2018 | XAML | Yes | Yes | Yes | Yes | Yes | Yes |
| Xamarin.Forms | May 2014 | XAML | Yes | No | No | Yes | Yes | No |
XamarinはMAUIに取って代わられており、MAUIはWebをサポートしていないため、Avalonia UI、Uno Platform、Blazorが選択肢に挙がる。
以前のBlazorは、WinForms / WPFのWebView2を使用したWASMとWindowsのみであった。
現在では、Maui Blazor Hybridがある。
Blazorプロジェクトの構造と分割パターン
- 共有ライブラリ
- コアクラス
- コアクラスを保持する
<Project Sdk="Microsoft.NET.Sdk">型のOpenHabitTracker
- コアクラスを保持する
- Razoorファイル
- Razoorファイルを保持する
<Project Sdk="Microsoft.NET.Sdk.Razor">型のOpenHabitTracker.Blazor
- Razoorファイルを保持する
以下に示すように分割することにより、ロジックはUIから分離されて、Razorファイルには数行のC#コードが含まれるようになる。
C#のソースコードを.razor.csファイル (コードビハインドファイル) に記述するとエディタの動作が改善される。
また、C#のソースコードを別のライブラリに記述することもできる。
Razorコンポーネント / Razorページのみを共有ライブラリに配置して、
App.razor、_Imports.razor、MainLayout.razor、JsInterop.cs、jsInterop.js、app.cssは共有ライブラリに移動しない。
.csとindex.htmlを除く全てのファイルを共有ライブラリに移動することができる。
プラットフォーム固有の動作がある場合は、C#インターフェースで解決することができる。
全ての.cssと.jsファイルは共有ライブラリに格納することができ、
index.htmlの_content/OpenHabitTracker.Blazor/...のように、プラットフォーム固有のプロジェクトにインクルードすることができる。
フレームワークの選択
Windowsのみ
- WinForms
- WPF
Windows、Linux、MacOS
- Photino Blazor
- コンパイルや起動が速い。
- Electron.NET
- ElectronNET.APIで動作する。
- ただし、長いコンパイル時間、サイズの大きなビルドファイル、起動が遅い等のデメリットがある。
- Chromely
- ただし、長いコンパイル時間、起動が遅い等のデメリットがある。
- また、2023年1月16日に開発停止している。
WASM、Windows、Linux、MacOS、iOS、Androidをサポートするには、少なくとも以下に示すものが必要となる。
- Photino Blazor
- Blazor WASM
- Maui