Winforms sedang sekarat dan menggunakan XAML dan para desainernya seperti mencabut gigi. Apa sekarang?

pemrograman


Saya terbiasa membuat aplikasi windows yang sederhana hingga cukup rumit menggunakan Windows Forms, dan dapat mengatur semuanya tanpa terlalu banyak keributan. Saya dapat menghabiskan sebagian besar waktu saya pada logika. Ini bagus.

Sekarang, dengan XAML, UWP, dll, menggunakan desainer itu seperti mengunjungi dokter gigi – tetapi apakah itu perlu?

Saya tidak yakin harus melanjutkan ke mana setelah ini, karena kecuali saya melakukan kesalahan, para desainer ini tidak akan mempercepat saya sama sekali. Mereka tidak berguna. Mereka tidak layak untuk RAD.

Saya lebih suka mengkodekannya dalam C#.

Apa yang kalian semua lakukan? Saya tidak bisa menjadi satu-satunya.

Apa yang saya coba:

Kesabaran. Zat rekreasional. Menyerahkan semua harapan.

Para desainernya sangat buruk. Mengerikan, sangat mengerikan. Mereka lebih sulit digunakan daripada mengetik XML dengan tangan dan itu juga sangat buruk.

Solusi 2

Roger Deutsch menulis serangkaian artikel tentang masalah ini: Pemrograman Windows 10: Fokus UWP (1 dari N)[^]. Saya mengerjakan semuanya dan membuat contoh dengan sukses. Tapi karena semua program saya hanya untuk bersenang-senang, saya rasa saya tidak akan sering menggunakannya di masa depan.

Solusi 3

Jawabanku, diposting silang dari ruang tunggu[^].

Jika saya masih menggunakan XAML, saya akan menggunakan Blend dengannya. Dibutuhkan sedikit waktu untuk membiasakan diri, tetapi jauh lebih baik daripada bekerja dengan desainer tata letak di VS. Ketika saya harus menulis aplikasi desktop murni, saya menggunakan AvaloniaUI. Ini jauh lebih baik daripada Maui. Saat ini, sebagian besar waktu saya menggunakan Blazor. Kemampuan untuk dijalankan baik di browser maupun sebagai PWA bagi yang ingin menjalankannya di desktop.

Solusi 4

Coba Flutter, Anda Tidak Akan Kecewa
Saya menghadapi dilema yang sama seperti Anda – memilih kerangka kerja yang tepat untuk proyek saya berikutnya.
Saya mengevaluasi berbagai opsi, dan akhirnya memutuskan untuk memilih Flutter: ini adalah terobosan baru!
Kecepatan pengembangan dan visual menakjubkan yang ditawarkannya untuk aplikasi desktop dan seluler sungguh luar biasa.
Bahkan bagi programmer berpengalaman seperti saya (yang menyukai C/C++!), kurva pembelajaran Flutter ternyata sangat cepat.

Solusi 5

Menambah banyak solusi, saya bertanya pada diri sendiri pertanyaan ini baru-baru ini.
Untuk pelanggan, saya perlu mengganti aplikasi VB6 lama di seluruh pabrik.
Web bukanlah suatu pilihan karena saya perlu berkomunikasi dengan perangkat keras di mesin (meskipun hal itu sepertinya tidak menjadi masalah sekarang karena kami sedang mengerjakannya…).

Bagaimanapun, pesaing yang jelas adalah dia Formulir Menangtapi seperti yang Anda katakan, itu sekarat.
Microsoft mem-porting WinForms ke .NET, jadi sebenarnya belum mati, tapi saya ingin perangkat lunak barunya modern.

Sehingga kemudian WPF (Yayasan Presentasi Windows) bisa menjadi penerus yang logis, karena itu juga di-porting ke .NET.
Namun, WPF adalah XAML, dan seperti yang Anda katakan, itu seperti mencabut gigi.
Jadi kami akan menggunakan kerangka kerja lama yang baru saja di-porting untuk membuat beberapa pengembang lama yang pemarah senang (saya kira).

Saya telah melihat UWP (Platform Windows Universal) disebutkan di sini, namun Microsoft telah secara resmi menghentikan dukungannya sehingga ini bahkan bukan suatu pilihan lagi!

Namun, UWP menggunakan WinUI 2 secara terselubung dan WinUI 3 adalah penerus resmi yang juga masih didukung.
Ini XAML, tapi setidaknya modern!

Melihat ke luar tumpukan Microsoft, kami memiliki lebih banyak solusi berbasis web, seperti Berdebar Dan Platform Uno.
Ada dua hal yang menonjol bagi saya, yang masing-masing merupakan alternatif dari Flutter dan Uno, Elektron Dan UI Avalonia.
Visual Studio Code dibuat menggunakan Electron, sehingga Anda mendapatkan gambaran tentang apa yang dapat dilakukannya dan tampilannya.
Ia menggunakan teknologi berbasis web, seperti HTML, CSS dan JavaScript dan entah bagaimana mengkompilasinya (?) Sebagai aplikasi desktop lintas platform.
Avalonia UI menggunakan XAML (pada kenyataannya, ini dianggap sebagai penerus spiritual WPF), tetapi juga menghasilkan aplikasi desktop lintas platform.
Jika pilihan Anda ada pada Avalonia UI atau Uno, Avalonia adalah pemenangnya dengan komunitas yang lebih besar di GitHub.
Nilai plusnya, tim Avalonia memiliki (mantan) pengembang dari tim WPF!
Masalah saya dengan teknologi ini, meskipun terlihat berfungsi dan tampak hebat, adalah bahwa teknologi tersebut bukanlah aplikasi asli, artinya teknologi tersebut membuat gambarnya sendiri dan bukan menyerahkannya pada sistem operasi.
Hasilnya adalah tampilan dan nuansanya seperti bukan aplikasi desktop/Windows/Apple sama sekali.

Pada akhirnya, saya memilih .NET TETAP.
.NET MAUI merupakan penerus Xamarin yang tentunya merupakan mobile framework.
Namun, .NET MAUI dapat membuat aplikasi lintas platform yang berfungsi di seluler dan desktop!
Setidaknya secara teori, karena dalam praktiknya Anda akan menghadapi banyak tantangan.
.NET MAUI, seperti Xamarin, juga menggunakan XAML.
Jadi mengapa saya memilih .NET MAUI?
Kami hanya menargetkan Windows untuk saat ini dan untuk Windows dikompilasi ke WinUI 3, yang merupakan aplikasi windows asli.
WinUI 3 memiliki lebih banyak opsi karena tidak harus berfungsi untuk seluler juga, tetapi .NET MAUI adalah yang terbaru dan saya sudah memperkirakan beberapa pekerjaan seluler di masa depan juga.
Meskipun demikian, .NET MAUI juga merupakan sebuah pertaruhan, karena Microsoft tampaknya tidak memperbarui semuanya dengan baik dan untuk beberapa bug serius di .NET 7 hanya mengatakan “Anda harus menunggu hingga .NET 8 karena kami tidak menambal .NET MAUI untuk .NET 7.”
Akibatnya, banyak pengembang Xamarin belum menggunakan .NET MAUI dan mencari alternatif.
Sejauh ini tampaknya cukup baik bagi kami, saya hanya berharap Microsoft dan komunitas akan lebih menerimanya.

Yang terakhir, namun tidak kalah pentingnya, dapat Anda gunakan .NET MAUI dengan Blazoryang memungkinkan Anda menjalankan aplikasi web (HTML, CSS, dan JavaScript yang dicampur dengan .NET) di desktop Anda dalam aplikasi shell .NET MAUI.
Ini adalah pertimbangan yang serius, tapi sejujurnya saya juga tidak ingin diganggu dengan teknologi web, dan itu juga tidak dapat dikompilasi sebagai aplikasi Windows asli.

Saya sudah mengetahui semuanya awal tahun ini, jadi pertimbangkan ini sebagai ringkasan penelitian saya.

[Add]

Untuk menjawab pertanyaan bagaimana cara mengatasi XAML tidak jauh berbeda dengan HTML bukan?
Kurasa isap saja.
[/Add]

Solusi 6

Sudah lama sekali sejak saya memposting di sini tetapi saya datang ke sini karena iseng pagi ini dan melihat pertanyaan ini & itu menarik perhatian saya

Seperti yang dikatakan orang lain di atas, Avalonia, .NET MAUI, dan WinUI 3 adalah opsi yang layak. Saya juga menemukan (ditemukan?) Menulis XAML seperti perjalanan ke dokter gigi. Banyaknya kerusakan dalam ekosistem sejak masa kejayaan WinForms adalah bukti betapa sulitnya (menurut saya) untuk menciptakan kembali UX pengembang superiornya. Saya berharap WinForms ditingkatkan secara bertahap, bukan diganti dengan solusi berbasis XAML.

Saya akan memberikan opsi lain ke dalam ring: GitHub – picoe/Eto: Kerangka kerja GUI lintas platform untuk aplikasi desktop dan seluler di .NET[^]

Saya membangun beberapa proyek hobi dengannya beberapa tahun yang lalu dan ternyata itu adalah pengalaman yang sangat menyenangkan.

コメント

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