Câu hỏi Làm thế nào để viết các chương trình Ubuntu gốc với MonoDevelop?


Tôi đã viết vài chương trình điều khiển C # đơn giản trong Monodevelop nhưng có vẻ như chúng chạy trong môi trường mô phỏng trong khi gỡ lỗi. Kết quả cuối cùng là tệp .exe không chạy trên Ubuntu.

Những gì tôi cần biết là nếu Mono giống như Visual C # trên Windows? Chúng ta có thể tạo các ứng dụng GUI với Monodevelop giống như chúng ta có thể với QT Creator (Linux) / Visual Studio (Windows) không? Nếu có, làm thế nào? Nếu không, tại sao? Tại sao chúng ta cần Mono trên Linux?


1
2018-01-07 22:43


gốc


Đây không phải là (cụ thể) các ứng dụng Windows; C # là một ngôn ngữ .NET, và được thiết kế để tạo ra các thực thi đa nền tảng chạy trên thực thi .NET Common Language Runtime. Trên Ubuntu, việc thực hiện đó (thường là) Mono. Điều này, theo nghĩa đen, một môi trường mô phỏng, nhưng (đại đa số) các chương trình C # luôn chạy theo cách này, ngay cả trong sản xuất. Nếu bạn không một cách rõ ràng muốn điều này, bạn có thể muốn sử dụng một ngôn ngữ khác. Có vẻ như những gì bạn đang hỏi ở đây được trả lời đầy đủ câu hỏi này (chúng tôi có thể có thể lừa này). - Eliah Kagan
@EliahKagan mm ... câu hỏi đó có một phạm vi khác nhau của cái này. Có lẽ chúng ta cần giải thích hoàn toàn cách Mono làm việc (tôi tin nhận xét của bạn làm điều này). - Braiam
GunJack: Bạn có cảm thấy rằng những gì bạn đang yêu cầu không thực sự được trả lời bởi thông tin ở đó? Nếu có, thì có lẽ chúng ta không nên đóng (hoặc mở lại nếu nó bị đóng). Xin vui lòng cho chúng tôi biết! Bạn có thể làm điều này bằng cách bình luận hoặc bằng cách chỉnh sửa câu hỏi của bạn. @Braiam Hmm ... chúng ta đã có một câu hỏi giải thích Mono và cách các chương trình chạy trên Mono (như hầu hết các chương trình C #, ít nhất là hầu hết các chương trình được phát triển với MonoDevelop) khác với các bản thực thi Linux gốc? Tôi muốn sẵn sàng mở rộng nhận xét của tôi thành một câu trả lời đầy đủ ở đây nhưng có lẽ chúng tôi đã có nó? - Eliah Kagan
Tôi không nghĩ nếu câu hỏi khác là phù hợp với những gì tôi tìm kiếm. Tôi đã chỉnh sửa câu hỏi của mình để dễ hiểu hơn. Xin lỗi vì tiếng Anh xấu, tôi không phải là người bản xứ. - GunJack


Các câu trả lời:


C # và tất cả các ngôn ngữ khác thuộc .NET framework là các ngôn ngữ thông dịch. Chúng được biên dịch giả, không thực sự được biên dịch (như C). Bytecode của .NET framework được gọi -Ngôn ngữ trung gian chung.

Trình thông dịch (đôi khi được gọi là "máy ảo") cho Ngôn ngữ trung gian chung là Thời gian chạy ngôn ngữ chung .NET trên Windows và Mono trên Linux. Do đó, các ứng dụng C # sẽ không chạy "gốc" (nghĩa là không có thông dịch viên), thậm chí không có trên Windows.

Có lẽ những gì bạn ngạc nhiên là Mono không được cài đặt mặc định trên một số bản phân phối Linux, trong khi thời gian chạy .NET là.

Nhưng dù sao, bạn có thể viết các ứng dụng trong C # được tích hợp độc đáo với Ubuntu. Một ví dụ là Tomboy.

Ngoài ra còn có một ngôn ngữ khác, tương tự như C #, được phát triển bởi dự án GNOME, Vala. Vala được dịch sang C, bản thân nó được biên dịch, vì vậy nó sẽ chạy "bản địa". Vì Vala được xây dựng bởi các nhà phát triển GNOME cho các nhà phát triển GNOME, nên việc tích hợp với môi trường máy tính để bàn GNOME rất dễ dàng.


1
2018-01-09 13:38



Vậy làm cách nào để chúng tôi nhận được thông dịch viên đó trên Ubuntu / Linux, nghĩa là .NET thay thế cho Ubuntu / Linux là gì? - GunJack
@GunJack: đó là Mono. - Andrea Corbellini
Ok cảm ơn cho clarificaton. Bây giờ, Mono là thời gian chạy và MonoDevelop là một IDE như Visual Studio. - GunJack
@GunJack: chính xác. - Andrea Corbellini


Để phát triển cho Ubuntu, hãy sử dụng SDK QML:

Nhận SDK | Nhà phát triển Ubuntu


1
2018-01-09 13:41



Đây có phải là để phát triển điện thoại hay cho sự phát triển của máy tính để bàn - GunJack