「C Sharpの基礎 - Blazorデスクトップ」の版間の差分

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動
(ページの作成:「== 概要 == <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


以下に示すように分割することにより、ロジックは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