2009-06-04 36 views

Trả lời

28

Bạn đang tìm kiếm Mono Project - triển khai đa nền tảng (nhưng được nhắm mục tiêu chủ yếu ở Linux) của .NET Framework và CLR. Nó có khả năng chạy các tệp nhị phân được biên dịch cho CLR (MS .NET) hoặc tạo các tệp nhị phân Linux riêng của nó.

Dự án đã diễn ra trong một thời gian và phiên bản hiện tại (2.4) rất hữu dụng, ngay cả đối với production purposes. Xem project roadmap để biết chi tiết về các tính năng chính và các mốc quan trọng của các bản phát hành hiện tại và tương lai.

chi tiết về tình trạng hiện tại:

Phần lớn các BCL (Base Class Library) có sẵn trên Mono, với ngoại lệ của một số công cụ .NET 3.0/3.5, chẳng hạn như WPF (hiện có hỗ trợ tối thiểu) và WCF (hầu như không hỗ trợ). Silverlight 2.0 tuy nhiên được hỗ trợ thông qua dự án Moonlight và tiến trình đang diễn ra tốt đẹp. Chức năng WinForms (sử dụng GTK # như một phụ trợ) tuy nhiên khá hoàn chỉnh, theo như tôi biết.

Thực hiện các ngôn ngữ C# 3.0 là một cách hiệu quả hoàn chỉnh, bao gồm các tính năng C# 3.0 như lambda biểu thức, LINQ, và thuộc tính tự động. Tôi tin rằng các C# compiler là trưởng thành đến mức hiệu quả của nó là ít nhất là so sánh với của trình biên dịch MS, mặc dù chưa phù hợp với nó trong một số khía cạnh. Điều khá thú vị (và duy nhất) về trình biên dịch Mono C# là bây giờ cung cấp dịch vụ biên dịch - nói cách khác là biên dịch động thực từ mã (không sử dụng CodeDOM). Đây là một cái gì đó mà MS có lẽ sẽ chỉ thêm trong NET 5.0.

+0

+1 - Bạn có biết các máy chủ sản xuất thực tế đang chạy Mono không? – Dror

+0

@Dror: Bạn có ý nghĩa gì đó như không? – Noldorin

+1

@Dror http://www.mono-project.com/Companies_Using_Mono Kiểm tra điều này cho các ví dụ – prestomation

4

Giống như những người khác đã nói, bạn có thể chạy các ứng dụng .NET trên Mono. Nếu các ứng dụng của bạn sử dụng Platform Invocation (P/Invoke) để gọi mã nguồn gốc, bạn có thể gặp phải một số rắc rối nếu không có triển khai Mono nào của thư viện gốc. Để kiểm tra xem ứng dụng của bạn có thực hiện điều đó hay không (hoặc sử dụng các API chưa được triển khai trong Mono), bạn có thể sử dụng Mono Migration Analyzer (MoMA).

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