Winforms đang chết dần và việc sử dụng XAML cũng như các nhà thiết kế cho nó giống như việc nhổ răng. Gì bây giờ?

lập trình


Tôi đã quen với việc có thể tạo ra một ứng dụng Windows từ đơn giản đến phức tạp vừa phải bằng Windows Forms và có thể bố trí mọi thứ mà không cần quá phức tạp. Tôi có thể dành phần lớn thời gian của mình cho logic. Điều này tốt.

Giờ đây, với XAML, UWP, v.v., việc sử dụng các nhà thiết kế cũng giống như đến gặp nha sĩ – nhưng điều đó có cần thiết không?

Tôi không chắc phải đi đâu từ đây, bởi vì trừ khi tôi làm sai, những nhà thiết kế này sẽ không tăng tốc độ cho tôi chút nào. Chúng vô dụng. Họ không RADworthy.

Tôi thà viết mã bằng C# còn hơn.

Bạn làm tất cả những gì? Tôi không thể là người duy nhất.

Những gì tôi đã thử:

Tính kiên nhẫn. Chất giải trí. Từ bỏ mọi hy vọng.

Các nhà thiết kế thật là khủng khiếp. Khủng khiếp khủng khiếp khủng khiếp. Chúng khó sử dụng hơn so với việc gõ XML bằng tay và điều đó thật tệ.

Giải pháp 5

Thêm vào những giải pháp đã có sẵn, gần đây tôi đã tự hỏi mình câu hỏi này.
Đối với một khách hàng, tôi cần thay thế các ứng dụng VB6 cũ trong toàn bộ nhà máy.
Web không phải là một lựa chọn vì tôi cần giao tiếp với phần cứng trên máy (mặc dù hiện tại điều đó hầu như không còn là vấn đề khi chúng tôi đang nghiên cứu nó…).

Dù sao đi nữa, một đối thủ rõ ràng sẽ là WinFormsnhưng như bạn đã nói, nó sắp chết.
Microsoft đã chuyển WinForms sang .NET nên nó vẫn chưa thực sự lỗi thời nhưng tôi muốn phần mềm mới phải hiện đại.

Vậy thì WPF (Nền tảng trình bày Windows) có thể là phiên bản kế thừa hợp lý vì nó cũng được chuyển sang .NET.
Tuy nhiên, WPF là XAML và như bạn đã nói, điều đó giống như nhổ răng.
Vì vậy, chúng tôi sẽ sử dụng một khung công tác cũ mới được chuyển sang gần đây để khiến một số nhà phát triển cũ khó tính hài lòng (tôi đoán vậy).

tôi đã nhìn thấy UWP (Nền tảng Windows phổ quát) được đề cập ở đây, nhưng Microsoft đã chính thức ngừng hỗ trợ cho nó nên đây thậm chí không còn là một lựa chọn nữa!

Tuy nhiên, UWP đã sử dụng WinUI 2 dưới vỏ bọc và WinUI 3 là người kế nhiệm chính thức vẫn được hỗ trợ.
Đó là XAML, nhưng ít nhất nó hiện đại!

Nhìn ra bên ngoài hệ thống Microsoft, chúng tôi có nhiều giải pháp dựa trên web hơn, như Chớp cánhNền tảng Uno.
Hai cái nổi bật đối với tôi, thực sự là những lựa chọn thay thế cho Flutter và Uno, điện tửGiao diện người dùng Avalonia.
Visual Studio Code được xây dựng bằng Electron, vì vậy bạn sẽ biết nó có thể làm gì và trông như thế nào.
Nó sử dụng các công nghệ dựa trên web, như HTML, CSS và JavaScript và bằng cách nào đó biên dịch (?) chúng thành các ứng dụng máy tính để bàn đa nền tảng.
Giao diện người dùng Avalonia sử dụng XAML (trên thực tế, nó được coi là người kế thừa tinh thần cho WPF), nhưng cũng tạo ra các ứng dụng máy tính để bàn đa nền tảng.
Nếu lựa chọn của bạn thuộc về Avalonia UI hoặc Uno, Avalonia rõ ràng là người chiến thắng với cộng đồng lớn hơn trên GitHub.
Ngoài ra, nhóm Avalonia còn có (cựu) nhà phát triển từ nhóm WPF!
Vấn đề của tôi với những công nghệ này, mặc dù chúng có vẻ hoạt động và trông đẹp mắt, nhưng chúng không phải là ứng dụng gốc, nghĩa là chúng tự vẽ thay vì để việc đó cho hệ điều hành.
Kết quả là chúng có thể trông giống như chúng không phải là ứng dụng dành cho máy tính để bàn/Windows/Apple.

Cuối cùng, tôi đã đi cho .NET CỐ ĐỊNH.
.NET MAUI là sự kế thừa của Xamarin, tất nhiên là một framework di động.
Tuy nhiên, .NET MAUI có thể tạo các ứng dụng đa nền tảng hoạt động trên thiết bị di động và máy tính để bàn!
Ít nhất là về mặt lý thuyết, vì trên thực tế, bạn sẽ phải đối mặt với rất nhiều thử thách.
.NET MAUI, như Xamarin, cũng sử dụng XAML.
Vậy tại sao tôi lại chọn .NET MAUI?
Hiện tại, chúng tôi chỉ nhắm mục tiêu đến Windows và đối với Windows, nó sẽ biên dịch thành WinUI 3, là các ứng dụng Windows gốc.
WinUI 3 có nhiều tùy chọn hơn vì nó không nhất thiết phải hoạt động cho thiết bị di động, nhưng .NET MAUI là phiên bản mới nhất tuyệt vời nhất và tôi cũng đã thấy trước một số công việc dành cho thiết bị di động trong tương lai.
Điều đó nói lên rằng, .NET MAUI cũng giống như một canh bạc, vì Microsoft dường như không cập nhật nó đầy đủ và đối với một số lỗi nghiêm trọng trong .NET 7, họ chỉ nói đơn giản là “bạn sẽ phải đợi đến .NET 8 vì chúng tôi sẽ không vá .NET MAUI cho .NET 7.”
Kết quả là rất nhiều nhà phát triển Xamarin chưa chấp nhận .NET MAUI và đang tìm kiếm giải pháp thay thế.
Tuy nhiên, cho đến nay nó có vẻ khá tốt đối với chúng tôi, tôi chỉ hy vọng cả Microsoft và cộng đồng sẽ đón nhận nó nhiều hơn một chút.

Cuối cùng nhưng không kém phần quan trọng, bạn có thể sử dụng .NET MAUI với Blazorcho phép bạn chạy một ứng dụng web (HTML, CSS và JavaScript kết hợp với .NET) trên máy tính để bàn của bạn trong ứng dụng shell .NET MAUI.
Đó là một sự cân nhắc nghiêm túc, nhưng thật lòng mà nói, tôi cũng không muốn bị làm phiền bởi các công nghệ web và nó cũng sẽ không được biên dịch thành một ứng dụng Windows gốc.

Đã tìm ra tất cả vào đầu năm nay, vì vậy hãy coi đây là bản tóm tắt nghiên cứu của tôi.

[Add]

Để trả lời câu hỏi xử lý XAML như thế nào, nó không khác gì HTML phải không?
Tôi đoán là chỉ cần hút nó lên.
[/Add]

Giải pháp 2

Roger Deutsch đã viết một loạt bài về chủ đề này: Lập trình Windows 10: UWP Focus (1 trên N)[^]. Tôi đã làm việc thông qua tất cả và xây dựng các ví dụ thành công. Nhưng vì tất cả chương trình của tôi chỉ để giải trí nên tôi không nghĩ mình sẽ sử dụng nó nhiều trong tương lai.

Giải pháp 3

Câu trả lời của tôi, đăng chéo từ phòng chờ[^].

Nếu tôi vẫn đang sử dụng XAML, tôi sẽ sử dụng Blend cùng với nó. Phải mất một chút thời gian để làm quen nhưng nó tốt hơn nhiều so với việc làm việc với các nhà thiết kế bố cục trong VS. Khi tôi phải viết một ứng dụng dành cho máy tính để bàn thuần túy, tôi sử dụng AvaloniaUI. Nó tốt hơn Maui. Hầu hết thời gian, tôi đang sử dụng Blazor. Khả năng chạy cả trong trình duyệt và dưới dạng PWA dành cho những ai muốn chạy nó trên máy tính để bàn.

Giải pháp 4

Hãy thử Flutter, bạn sẽ không thất vọng
Tôi đã gặp phải tình huống khó xử tương tự như bạn – chọn khuôn khổ phù hợp cho dự án tiếp theo của mình.
Tôi đã đánh giá nhiều lựa chọn, cuối cùng quyết định chọn Flutter: nó là một yếu tố thay đổi cuộc chơi!
Tốc độ phát triển và hình ảnh tuyệt đẹp mà nó cung cấp cho cả ứng dụng máy tính để bàn và thiết bị di động thực sự đáng chú ý.
Ngay cả đối với một lập trình viên dày dạn kinh nghiệm như tôi (người yêu thích C/C++!), quá trình học Flutter nhanh chóng một cách đáng ngạc nhiên.

Giải pháp 1

Nếu bạn muốn chửi bới, chém gió, v.v. thì hãy sử dụng Phòng chờ[^] diễn đàn. Điều này dành cho những người đang gặp khó khăn hoặc bối rối và cần trợ giúp về mã.

コメント

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