2011-02-01 23 views
13

Các bạn ơi, tôi đang viết một ứng dụng mà tôi muốn làm nền tảng. Cho đến gần đây tôi đã cố gắng làm điều này trong Silverlight với C# bởi vì nó cũng chạy trên OS X, nhưng với tôi là khá gỉ với C# ngoài việc mới để Silverlight tôi đã chạy vào đau đầu sau khi nhức đầu. Hầu hết điều này xuất phát từ các hạn chế đi kèm với một ứng dụng được dự định chạy trong trình duyệt, các vấn đề với ứng dụng chạy khác nhau khi chạy từ máy chủ phát triển của tôi so với trực tiếp từ tệp: //, v.v.Sử dụng Mono để chuyển một ứng dụng C# .NET sang OS X?

Tôi muốn thay vì hoàn toàn từ bỏ toàn bộ ý tưởng hỗ trợ OS X hơn là phải viết lại hoàn toàn ứng dụng cho OS X, đặc biệt là vì tôi đã hoàn toàn KHÔNG có kinh nghiệm viết cho nó. Những gì tôi hy vọng để có thể làm là viết một ứng dụng thường xuyên trong C# .NET với Visual Studio cho Windows và sau đó dễ dàng chuyển nó sang OS X với Mono.

Làm cách nào để đưa ứng dụng .NET lên OS X bằng Mono? Ứng dụng của tôi khá đơn giản, không có gì kỳ lạ xảy ra với các biểu mẫu hoặc bất kỳ thứ gì, vì vậy tôi phải giả định rằng nó sẽ được hỗ trợ trong triển khai WinForms của Mono.

Có bất kỳ tài nguyên nào tốt ngoài đó về cách chuyển một ứng dụng bằng Mono không? Hoặc, có lẽ, tôi đang thiếu toàn bộ điểm và nó chỉ đơn giản cho phép bạn chạy các ứng dụng .NET trên OS X và tôi không cần phải bận tâm với porting?

Tha thứ cho sự thiếu hiểu biết hoàn toàn về chủ đề này, tôi chỉ bắt đầu xem xét việc đi tuyến đường này như 10 phút trước sau khi chạy vào một hạn chế gây phiền nhiễu khác trong Silverlight.

Tôi sẽ là người đầu tiên phải thừa nhận rằng tôi không biết đầu tôi từ ass của tôi về chủ đề này, vì vậy hãy nhẹ nhàng .. :)

+1

Điều này có thể giúp: http://www.mono-project.com/MoMA – Nick

+0

Nếu bạn muốn viết chương trình có giao diện Ca cao phù hợp, bạn cũng có thể xem trong MonoMac http: //www.mono-project. com/MonoMac – Luke

Trả lời

5

Appart từ MoMA như đã đề cập trong các câu trả lời khác mà bạn có thể quan tâm MonoMac. Với sự thành công của MonoTouch (viết C# cho iPhone), bây giờ cũng có một dự án được gọi là MonoMac để tạo giao diện người dùng gốc cho OSX trong khi sử dụng .net/mono trong nền. Có thể thú vị cho bạn http://www.mono-project.com/MonoMac, bài viết trên blog của Miguel de Icaza: http://tirania.org/blog/archive/2010/Apr-19.html

1

Có một vài điều bạn nên ghi nhớ.

  1. bạn sẽ phải cổng bất kỳ việc sử dụng nền tảng depedendent mã UI
  2. không sử dụng các cuộc gọi hệ điều hành nền tảng dependentent (win32 api)
  3. không sử dụng thư viện "kỳ lạ" (như quy trình làm việc, thật đáng buồn ef)
  4. Nói chung: phụ thuộc trừu tượng cho mã như vậy, vì vậy bạn có thể dễ dàng thay thế chúng bằng các thư viện đơn nhất. (một mẫu được khuyến nghị sẽ là MVVM).

Có một công cụ gọi là MoMA sẽ giúp bạn với tất cả những điều đó. Tuy nhiên, lấy kết quả bằng một hạt muối. Trong mọi trường hợp, chỉ cần thử nó.

+0

Hai câu cuối cùng không hợp lệ trong hầu hết các trường hợp :) Bạn không bao giờ biết một số vấn đề trừ khi bạn chạy ứng dụng trên Mono. MoMA là một công cụ tốt, nhưng nó không phải là viên đạn bạc. –

1

dự án Mono có một trang dành riêng cho làm thế nào để chuyển các ứng dụng,

http://mono-project.com/Guidelines:Application_Portability

Tuy nhiên, nó không bao giờ là đủ như ứng dụng của bạn có thể là duy nhất trong rất nhiều cách khác nhau.

Cố gắng chuyển cổng và báo cáo sự cố cho những người Mono bất cứ khi nào cần thiết. Bên cạnh đó, nếu bạn làm việc cho một công ty, hãy xem xét dịch vụ hỗ trợ thương mại Mono của,

http://mono-project.com/Support

2

Ngoài những gì đã được nói, xem Mono hỗ trợ một tập con của chức năng .NET đầy đủ, tôi có thể muốn phát triển trên Mono, sau đó thử nghiệm với thời gian chạy của Microsoft, nếu mục tiêu là chạy trên cả hai. Nếu không, bạn có nguy cơ vô tình sử dụng một số chức năng không có sẵn trong Mono, và phải ném một đoạn mã lớn ra ngoài cửa sổ vào lúc bạn làm việc xung quanh để thực hiện việc xây dựng và thử nghiệm đa nền tảng.

+0

Trang so sánh của họ ở đây và có thể hữu ích: http://go-mono.com/status/ –

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