Tôi đã lập trình Aqua, Macintosh Quick Draw, Windows GDI và GDI +, Qt và .NET Winforms và WPF là API phức tạp nhất mà tôi đã sử dụng. Mặc dù nó có một bộ tính năng khá có khả năng đó là tốt hơn so với các công nghệ trước như swing, nó không phù hợp cho WPF. Nó giải quyết một số vấn đề lớn đã cản trở lập trình đồ họa. Nếu bạn đến từ thế giới HTML/JS, thật dễ dàng để tìm hiểu, nhưng nếu bạn đến từ thế giới lập trình đồ họa truyền thống, đó là một sự thay đổi mô hình chính. Bất kể, nó dễ dàng hơn nhiều để tìm hiểu hơn CSS/HTML/JS. Đó là một break sạch từ các khái niệm di sản mà bệnh dịch hạch môi trường lập trình khác.
Sức mạnh lớn nhất của WPF là độ phân giải của nó độc lập. Nó có thể mở rộng trên các thiết bị với ít hoặc không có sửa đổi. Nó đòi hỏi ít công việc để có một phiên bản màn hình của một bản vẽ và xuất nó sang một máy in độ phân giải cao mà không mất độ phân giải.
Nó cũng hỗ trợ kích hoạt sự kiện. Các thành phần giao diện người dùng có thể phản hồi các sự kiện của các phần tử giao diện người dùng khác hoặc mã ứng dụng của bạn, làm cho các giao diện động có thể thực hiện được. Nó giúp bạn dễ dàng tách mã của mình khỏi giao diện người dùng theo cách mà thậm chí HTML/JS không thể đạt được. Các yếu tố có thể phát và nghe các sự kiện và phản hồi tương ứng.
Một cường độ khác là API có khả năng hướng đối tượng và khai báo cao của nó. Sử dụng XAML, bạn có thể dễ dàng xây dựng một giao diện làm việc một cách nhanh chóng và hiệu quả với một vài dòng. Không giống như HTML/JS, nó dễ học và đầu ra của nó dễ dự đoán và hiệu quả hơn nhiều. Bạn thậm chí có thể lập trình WPF hoàn toàn bằng mã, nhưng nó thường không đáng để đạt được hiệu suất nhỏ. Một phương pháp tốt hơn là biên dịch Xaml của bạn thành mã .NET.
Ngoài ra, công cụ có sẵn cho WPF là rất rộng lớn so với JavaFX. Có rất nhiều công cụ bao gồm Expression Blend có sẵn. Ngoài ra còn có rất nhiều công cụ để lấy các định dạng đồ họa vector như SVG và Adobe Illustrator và chuyển đổi chúng thành XAML.Giờ đây, các nhà thiết kế và lập trình viên có thể cộng tác trên xuất bản trên máy tính để bàn theo cách rất khó thực hiện trước đây.
Tóm lại, WPF quá toàn diện nên nhóm Mono đã chọn không chuyển nó sang cơ sở mã Mono. Họ tuyên bố sẽ mất nhiều năm để thực hiện đầy đủ một bộ tính năng hợp lý. Nếu một phiên bản WPF tương thích với Mono đã tồn tại, nó sẽ tạo ra .NET khung ứng dụng đa nền tảng thực tế. Trong thực tế, nó thậm chí có thể thay thế HTML/CSS, vì nó mạnh hơn và dễ dàng hơn để có được đầu của bạn xung quanh. Thật không may, Microsoft đã không nhìn thấy một trường hợp kinh doanh cho một nền tảng cho phép WPF. Đó là lý do tại sao SilverLight/WPF thua HTML5/JS. Nhờ sai lầm này, họ buộc phải bàn giao không chỉ trên web mà là một phần của máy tính để bàn của họ sang HTML 5/JS.
Nguồn
2013-01-16 19:08:02
JavaFX có vẻ đầy hứa hẹn. –
Không hỗ trợ 3D thực sự, đặc biệt cho ngôn ngữ đổ bóng được tìm thấy trong DirectX HLSL và OpenGL SL. Ngoài ra bất kỳ hỗ trợ IDE hiện tại cho JavaFX không thể phù hợp với sức mạnh của Expression Blend XAML thiết kế và Visual Studio 2008 và Visual Studio 2010 Cider (WPF thiết kế trong Visual Studio). –
Ứng dụng có xử lý dữ liệu trơn tru không? –