Skip to content

MS_UnoPlatform

nishi_74322014 edited this page Sep 11, 2026 · 3 revisions

Uno Platform

概要

詳細

流行

  • 流行ってない(バズってない)。2020年3月でようやく存在を認知した。

  • UWP, Xamarin, WebAssembly(Blazor)の
    どれも流行ってないのに、
    コレらにクロスコンパイルできるようにすれば流行るのだろうか?

  • 流行らない気が...何と言うか、流行らないモノに機能追加を重ねて、
    後々、気が付くんじゃないだろうか?「...出だしから間違っている。」って。

  • 最近、基本的に染め手は悪手だと思っている
    (スタックを絞る場合を除いて、スタック&コラボレーション的な文脈で)。

    • ...と云うのも、エコシステムの時代、コラボレーションの芽を摘むから。
    • そもそもプラットフォーム / 言語 云々、言うのが駄目よね。

移行メモ(誤字): 元ページの「バスってない」は「バズってない」の誤記である。

方式

  • React と React Native 辺りにインスパイアされている気もする。

    • 画面定義の JSX 部分が XAMLで、
      コードビハインドの JavaScript 部分が C#
    • でも、よくよく考えると、XAMLと比べたら、React の方が後発ですね。
  • クロスコンパイルは、Cordova や Flutter の方式がデファクト

    • ...と思うが、何故、Xamarinを挟んでしまったのだろうか?
    • ...と言うか、スマホの範囲だったら、Xamarin単体で良くない?
  • あと、IDE が Visual Studioにロックインされてしまっている。
    (Cordova や Flutter は CUI なので、
    Visual Studio Codeで開発可能)

  • 一方で、マイクロソフトは React Native for Windows
    ってのもやってる。

補足(最新化:評価を修正すべき点がある): 「流行らない」という予測は
全体としては当たっている(メジャーな選択肢にはなっていない)。
ただし、本ページ執筆後に前提が 2 つ変わったので補っておく。

元ページの記述 現在
Visual Studio にロックイン 解消dotnet new unoapp の CLI と VS Code 拡張(Uno Platform Studio)がある
UWP / Xamarin に依存 解消.NET 8 以降は Uno 自身のランタイム/WinUI 3 の XAML 方言に移行し、Xamarin 依存は無くなった

また、Uno は Microsoft 純正が届かない領域を埋めているという点は
評価してよい。

Windows Android/iOS macOS Linux WebAssembly
.NET MAUI × ×
Uno Platform
Avalonia UI

「[Linux デスクトップ + WebAssembly まで 1 コードで」という要件に対して、
Microsoft 純正には答えが無い(.NETのクロスプラットフォーム対応を参照)。
ただし同じ領域には Avalonia UI があり、
XAML 方言の独自性が低いぶん Avalonia の方が採用例は多い。

余談

  • 一応、断っておきますが、嫌がらせで言ってんじゃないですから。
    真摯に予想してるんです(嫌がらせできる程、影響力も無いですからw)。

  • M 某社、色々な(、流行らない)、UI サブシステムと、
    その開発技術を投入してきて開発者を疲弊させるの止めて欲しい。

補足(この不満は共有されている): この「UI サブシステム乱立への疲弊」は
筆者個人の感想にとどまらず、.NET コミュニティで広く共有された不満である。
実際、Microsoft は Windows App SDK(Project Reunion)で
分断の解消を掲げるに至った。
デスクトップ・アプリの一覧が示すとおり、
2012〜2016年に投入された系統はほぼ全滅しており、
本ページの見立ては結果的に妥当であった。

参考

Qiita

開発基盤部会 Wiki


Tags: 移行, .NET開発, UIサブシステム, WPF/Silverlight, XAML

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally