【解決方法】 Winforms は死につつあり、XAML とそのデザイナーを使用するのは歯を抜くようなものです。 今は何ですか?


私は、Windows フォームを使用して単純な Windows アプリケーションから中程度に複雑な Windows アプリケーションを作成し、あまり手間をかけずにすべてをレイアウトできることに慣れています。 ほとんどの時間をロジックに費やすことができます。 これはいい。

XAML、UWP などでは、デザイナーを使用することは歯医者に行くようなものですが、必要に応じて必要なのでしょうか?

ここからどこへ行けばよいのか分かりません。やり方が間違っている場合を除き、これらのデザイナーは私のスピードをまったく上げてくれないからです。 それらは役に立たないのです。 彼らはRAD価値がありません。

むしろC#でコーディングしたいと思います。

皆さんは何をしますか? 私だけではないはずです。

私が試したこと:

忍耐。 レクリエーション用物質。 すべての希望を放棄します。

デザイナーは本当にひどいです。 ひどいひどいひどい。 XML を手で入力するよりも使いにくく、それもひどいものです。

解決策 2

Roger Deutsch は、こ​​のテーマに関する一連の記事を書きました。 Windows 10 のプログラミング: UWP フォーカス (1/N)[^]。 私はそれをすべて実行し、サンプルを正常に構築しました。 しかし、私のプログラミングはすべて趣味のためのものなので、将来的にはあまり使用しないと思います。

解決策 3

私の答え、 ラウンジから投稿されたクロス[^]。

まだ XAML を使用していれば、Blend を使用するでしょう。 慣れるまでに少し時間がかかりますが、VS のレイアウト デザイナーと協力して作業するよりもはるかに優れています。 純粋なデスクトップ アプリを作成する必要がある場合は、AvaloniaUI を使用します。 マウイよりずっといいよ。 今ではほとんどの場合、Blazor を使用しています。 ブラウザー内で実行する機能と、デスクトップ上で実行したい人向けの PWA として実行する機能。

解決策 4

Flutter を試してみてください。がっかりすることはありません
私もあなたと同じジレンマに直面しました。次のプロジェクトに適切なフレームワークを選択するということです。
数多くのオプションを検討し、最終的に Flutter に決定しました。これはゲームチェンジャーでした。
デスクトップとモバイルの両方のアプリケーションで提供される開発スピードと見事なビジュアルは、本当に驚くべきものです。
私のような経験豊富なプログラマー (C/C++ が大好き!) でさえ、Flutter の学習曲線は驚くほど早かったです。

解決策 5

すでにたくさんある解決策に加えて、私は最近この質問を自分自身に問いました。
顧客のために、工場全体の古い VB6 アプリケーションを置き換える必要があります。
マシン上のハードウェアと通信する必要があるため、Web はオプションではありません (ただし、現在取り組んでいるので、それはほとんど問題ではないようです…)。

とにかく、明らかな競争相手は WinForms、しかしあなたが言ったように、それは死ぬことです。
Microsoft は WinForms を .NET に移植したため、実際にはまだ死んでいませんが、新しいソフトウェアを最新のものにしたかったのです。

それで WPF (Windows プレゼンテーション ファウンデーション) これも .NET に移植されているため、論理的な後継となる可能性があります。
ただし、WPF は XAML であり、あなたが言ったように、それは歯を抜くようなものです。
そのため、気難しい古い開発者を満足させるために最近移植されたばかりの古いフレームワークに歯を抜くことになるでしょう (おそらく)。

私は見た UWP (ユニバーサル Windows プラットフォーム) ここで言及されていますが、Microsoft はすでに正式にサポートを終了しているため、これはもはやオプションですらないのです。

ただし、UWP は内部で WinUI 2 を使用しており、 WinUI3 は正式な後継版であり、現在もサポートされています。
これは XAML ですが、少なくとも最新のものです。

Microsoft スタック以外にも、次のような Web ベースの解決策があります。 フラッター そして 宇野プラットフォーム
私にとって印象に残った 2 つは、それぞれ Flutter と Uno の代替品です。 電子 そして アバロニアUI
Visual Studio Code は Electron を使用して構築されているため、何ができるか、どのように見えるかがわかります。
HTML、CSS、JavaScript などの Web ベースのテクノロジーを使用し、何らかの方法でクロスプラットフォームのデスクトップ アプリケーションとしてコンパイル (?) します。
Avalonia UI は XAML (実際、WPF の精神的な後継者と考えられています) を使用しますが、クロスプラットフォームのデスクトップ アプリケーションも生成します。
Avalonia UI か Uno のどちらを選択するかということになると、GitHub 上に大きなコミュニティがある Avalonia が明らかに勝者です。
さらに、Avalonia チームには WPF チームの (元) 開発者がいます。
これらのテクノロジに関する私の問題は、機能し、見た目も優れているように見えますが、ネイティブ アプリケーションではないことです。つまり、オペレーティング システムに任せるのではなく、独自の描画を行うことになります。
その結果、見た目も操作感も、まったくデスクトップ/Windows/Apple アプリケーションではないように感じられます。

最終的に私が行ったのは、 .NET修正済み
.NET MAUI は Xamarin の後継であり、もちろんモバイル フレームワークです。
ただし、.NET MAUI では、モバイルとデスクトップで動作するクロスプラットフォーム アプリを作成できます。
少なくとも理論上はそうですが、実際には多くの課題に直面することになるからです。
.NET MAUI は、Xamarin と同様に XAML を使用します。
では、なぜ .NET MAUI を選んだのでしょうか?
現時点では Windows のみをターゲットにしており、Windows の場合はネイティブ Windows アプリである WinUI 3 にコンパイルされます。
WinUI 3 には、モバイルでも機能する必要がないため、より多くのオプションがありますが、.NET MAUI は最新のものであり、将来的にはモバイルでも機能することがすでに予測されています。
とはいえ、.NET MAUI もちょっとした賭けです。Microsoft はあまりうまくアップデートしていないようで、.NET 7 のいくつかの重大なバグについては単に「.NET 8 まで待つ必要があります。 .NET 7 用の .NET MAUI にはパッチを適用していません。」
その結果、多くの Xamarin 開発者は .NET MAUI を採用しておらず、代替手段を探しています。
今のところ、それは私たちにとってかなり良いように見えますが、マイクロソフトとコミュニティの両方がそれをもう少し受け入れてくれることを願っています。

最後になりましたが、次のこともできます。 Blazor を使用した .NET MAUIこれにより、デスクトップ上の .NET MAUI シェル アプリで Web アプリ (.NET と混合した HTML、CSS、および JavaScript) を実行できるようになります。
これは真剣に検討したものでしたが、率直に言って、Web テクノロジに煩わされることも望んでいませんでした。また、ネイティブ Windows アプリとしてコンパイルすることもできませんでした。

今年の初めにすべてを解明したので、これが私の研究の要約であると考えてください。

[Add]

XAML をどう扱うかという質問に答えると、HTML とそれほど変わりませんね。
それを吸い込むだけだと思います。
[/Add]

解決策 6

ここに投稿してからかなり時間が経ちましたが、今朝気まぐれにここに来て、この質問を見て注意を引きました

上記の他の人が述べているように、Avalonia、.NET MAUI、および WinUI 3 はすべて適切な選択肢です。 また、XAML を書くのは歯医者に行くのと似ていると思います (気づいた?)。 WinForms の全盛期以来のエコシステムの崩壊の度合いは、その優れた開発者 UX を再構築することが (私の意見では) いかに難しいかを証明しています。 WinForms が XAML ベースの解決策に置き換えられるのではなく、段階的に改善されていたらよかったのにと思います。

別のオプションをリングに投げ込みます。 GitHub – picoe/Eto: .NET のデスクトップおよびモバイル アプリケーション用のクロスプラットフォーム GUI フレームワーク[^]

数年前にこれを使っていくつかの趣味のプロジェクトを構築しましたが、驚くほど楽しい経験であることがわかりました。

コメント

タイトルとURLをコピーしました