2008-11-12 27 views
43

Tôi chủ yếu là một người .Net vào lúc này, nhưng tôi đã chơi với Java một thời gian gần đây-- khám phá những gì ngoài kia.Câu trả lời của Java cho WPF là gì?

Bây giờ tôi đang tìm Java tương đương với WPF. Tôi biết tôi có thể tìm thấy một thư viện OpenGL hoặc hai trong số đó, nhưng điều đó không thực sự phong phú hay đơn giản như hệ thống WPF.

Trả lời

35

Tôi nghĩ rằng một sự kết hợp của JavaFX, Swing, Java2D và JRE dựa trên trình duyệt Java bao gồm các giải pháp mà WPF cung cấp:

  • ứng dụng JavaFX (trên thực tế, bất kỳ ứng dụng Java) có thể chạy trong trình duyệt hoặc trên một máy tính để bàn
  • JavaFX cung cấp hỗ trợ video cao cấp
  • JavaFX cung cấp cho hình ảnh động kịch bản và hiệu ứng đặc biệt thị giác
  • Swing cung cấp khả năng giao diện người dùng, và có thể được sử dụng trong cả Java và JavaFX
  • Java2D, cung cấp nền tảng cho tất cả các nhiệm vụ vẽ (bao gồm Swing), tận dụng khả năng tăng tốc phần cứng và hỗ trợ DirectX
  • JRE trên máy tính để bàn hoặc trình duyệt cho phép ứng dụng Java được triển khai tới nhiều môi trường (bao gồm cả màn hình khác, như hộp set-top hoặc điện thoại)
+3

JavaFX có vẻ đầy hứa hẹn. –

+1

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). –

+3

Ứng dụng có xử lý dữ liệu trơn tru không? –

17

WPF tính năng toàn diện hơn bất kỳ JavaFX, Swing, AWT hoặc Java2D nào. Đó là mục tiêu thiết kế sau khi tất cả, để mang lại tất cả mọi thứ liên quan đến việc trình bày trong một thư viện duy nhất. Hiệu suất khôn ngoan, chúng giống nhau ngoại trừ việc sử dụng bộ nhớ mà Java là hungry hog

17

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.

+0

Cảm ơn bạn đã phản hồi chi tiết! – Vova

+0

Sai lầm lớn của Microsoft. – TheMentor

+1

WPF chỉ dành cho masterminds, không phải cho những người IQ trung bình như tôi. Thời gian để chuyển sang nguồn mở. – AnjumSKhan

Các vấn đề liên quan