2009-08-04 46 views
8

Tôi đang nghĩ đến việc phát triển ứng dụng dành cho máy tính để bàn trong C#. Mặc dù các cửa sổ sẽ là mục tiêu chính của tôi, sau này tôi sẽ thử và chạy ứng dụng trong MacOS X và linux. Tôi có thể làm điều này ngày hôm nay, một cách đơn giản? Tôi biết về dự án mono, nhưng không rõ ràng với tôi nếu tôi có thể làm điều này một cách đơn giản.Ứng dụng nền tảng chéo với WPF

Ngoài ra, mối quan hệ giữa WPF và Silverlight là gì? AFAIK Silverlight tuân theo một mô hình plugin giống như Flash hoặc Java. Tôi có thể phát triển ứng dụng máy tính để bàn của mình với Silverlight và triển khai nó trên các cửa sổ, linux và os x mà không có nhiều thay đổi không?

Mọi con trỏ sẽ được đánh giá cao.

+0

Silverlight không thực sự có nhiều điểm chung với WPF. WPF là một khuôn khổ để xây dựng các ứng dụng máy tính để bàn, Silverlight là một plugin trình duyệt, giống như Flash. Các ứng dụng Silverlight có thể chạy trên Windows và Mac OS X một cách tự nhiên, và thông qua dự án Moonlight của Mono trên Linux. –

+4

"Silverlight không thực sự có nhiều điểm chung với WPF": Tôi sẽ không nói rằng ... chúng có nhiều điểm chung! ngôn ngữ XAML, mô hình DependencyObject, hầu hết các điều khiển ... Có một vài tính năng WPF không có trong Silverlight, và một vài tính năng Silverlight không có sẵn trong WPF, nhưng khoảng cách ngày càng nhỏ hơn với phiên bản mới nhất của cả hai sản phẩm –

+0

Thomas đúng. Hơn nữa, Microsoft rõ ràng hướng đến * hội tụ * các khung công tác WPF/Silverlight để trong thời gian đó chúng sẽ hầu như hoàn toàn có khả năng tương thích. – Noldorin

Trả lời

7

Dự án Mono không hỗ trợ .Net 3 và WPF, và có thể sẽ mất một thời gian trước khi điều đó xảy ra.

Bạc có thể đủ cho nhu cầu của bạn. Kể từ Silverlight 3.0, bạn có thể chạy Silverlight bên ngoài trình duyệt, thậm chí tạo lối tắt cho nó trên màn hình nền.

+2

NB: Moonlight hiện chỉ hỗ trợ ổn định Silverlight 1.0 và chỉ có bản phát hành trước alpha 2.0. – supercheetah

+0

Vì vậy, tôi không thể triển khai các ứng dụng Silverlight 3 trên Linux, phải không? –

+1

Mono hỗ trợ một số khả năng .net 3.x, nhưng không hỗ trợ WPF. – kenny

1

WPF được sử dụng để tạo ứng dụng dành cho máy tính để bàn cho Chỉ dành cho Windows. Hiện tại không có nền tảng nào khác được hỗ trợ. Nếu hỗ trợ đa nền tảng là phải, bạn có thể tạo một ứng dụng dựa trên trình duyệt và sử dụng Silverlight. Tuy nhiên, Silverlight chạy các ứng dụng trong trình duyệt, do đó bạn không thể tạo một ứng dụng "máy tính để bàn" bằng cách sử dụng nó.

+1

Bạn có thể tạo các ứng dụng chạy bên ngoài trình duyệt bằng Silverlight 3. Tuy nhiên, chúng vẫn bị giới hạn bởi hộp cát Silverlight. –

1

Mono đang nỗ lực để đảm bảo Silverlight chạy nền tảng chéo (như đã đề cập trên một trong các podcast tràn ngăn xếp). Vì vậy, đó có vẻ là một cách tốt để đi.

2

Cuối cùng tôi nghe nói, dự án Mono không có kế hoạch triển khai WPF, tuy nhiên họ đang làm việc trên các tính năng .NET 3.5 khác, đặc biệt là LINQ và ASP.NET MVC. Vấn đề với việc thực hiện WPF trong Mono (vượt quá kích thước và độ phức tạp của API) là trên Windows, nó sử dụng DirectX để dựng hình, do đó, việc triển khai Mono sẽ cần phải sử dụng OpenGL. Chắc chắn không phải là một công việc tầm thường.

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