Phát triển C # trên Linux


107

Tôi muốn biết liệu có các công cụ mã nguồn mở và hiệu quả để phát triển các ứng dụng C # trên Linux (Ubuntu) hay không. Đặc biệt, tôi phải phát triển các ứng dụng Windows Forms.

Tôi biết về dự án Mono , nhưng tôi chưa bao giờ sử dụng nó. Công cụ tốt nhất (IDE, trình biên dịch, v.v.) để thiết lập môi trường phát triển .NET trên Ubuntu là gì?

Phần mềm được phát triển trên Linux có chạy được trên Windows không? Có những hành vi khác nhau hoặc không tương thích?


Cũng vui lòng kiểm tra câu hỏi này stackoverflow.com/questions/151350/…
NlightNFotis,

Đây cũng có thể là bằng cách nào đó hữu ích stackoverflow.com/questions/716077/...
NlightNFotis

Điều này cũng có thể được quan tâm: mono-project.com/WinForms_Getting_Started_Guide
NlightNFotis

Câu trả lời:


69

MonoDevelop, IDE liên kết với Mono Project phải đủ để phát triển C # trên Linux. Bây giờ tôi không biết bất kỳ trình định cấu hình tốt và các công cụ khác để phát triển C # trên Linux. Nhưng một lần nữa xin lưu ý với bạn rằng C # là một ngôn ngữ có nguồn gốc từ windows nhiều hơn. Bạn đang phát triển ứng dụng C # cho windows tốt hơn cho linux.

CHỈNH SỬA: Khi bạn tải xuống MonoDevelop từ Trung tâm phần mềm Ubuntu, nó sẽ chứa khá nhiều thứ bạn cần để bắt đầu ngay lập tức (Trình biên dịch, Môi trường thời gian chạy, IDE). Nếu bạn muốn biết thêm thông tin, hãy xem các liên kết sau:


1
Nó có phải là phần mềm được phát triển trên linux chạy được trên windows không?
davioooh

2
Phần mềm được phát triển trên windows hoặc linux có thể chạy được trên .Net framework. Vì vậy, miễn là có thể cài đặt .Net framework trong hệ điều hành, nó có thể chạy ứng dụng. Tuy nhiên, bạn phải biết về phiên bản;)
Shiham

@nvrtheless Tôi đã wonderng nếu thực hiện khuôn khổ khác nhau có thể tạo incompatibilites
davioooh

4
Tính tương thích ngược luôn ở đó theo như tôi biết. Sự cố có thể xảy ra nếu bạn cố chạy một ứng dụng trên .Net 2.0 được phát triển với .Net 3.5 hoặc bất kỳ phiên bản nào mới hơn.
Shiham

Mặc dù bạn cần lưu ý rằng .Net luôn có nhiều khả năng hơn trên Windows. Mono là một dự án tương thích hơn là một triển khai bộ phát triển phần mềm thực tế. Đó là cách tôi thấy nó ít nhất.
NlightNFotis


9

Tôi sẽ đề nghị sử dụng MonoDevelop.

Nó được thiết kế khá rõ ràng để sử dụng với Mono và tất cả đều được thiết lập để phát triển trong C #.

Cách đơn giản nhất để cài đặt nó trên Ubuntu là cài đặt gói monodevelop trong Ubuntu. ( liên kết trên Mono trên ubuntu.com ) (Tuy nhiên, nếu bạn muốn cài đặt phiên bản mới hơn, tôi không chắc PPA nào sẽ phù hợp)

Tuy nhiên, tôi không khuyên bạn nên phát triển với bộ công cụ WinForms - Tôi không mong đợi nó có cùng hành vi trong Windows và Mono (cách triển khai khá khác nhau). Để biết tổng quan về các bộ công cụ UI hoạt động với Mono, bạn có thể truy cập trang thông tin về Mono-project .


8

Mono Develop là những gì bạn muốn, nếu bạn đã sử dụng visual studio, bạn sẽ thấy nó đủ đơn giản để bắt đầu.

Nếu tôi nhớ chính xác, bạn sẽ có thể cài đặt với sudo apt-get install monodevelop


Lệnh cài đặt là đúng, tuy nhiên bạn cần đảm bảo rằng bạn đã thêm kho lưu trữ monodevelop vào hệ thống của mình trước khi thực hiện việc này. Đây là một liên kết hiện đang hoạt động: monodevelop.com/download Và đây là cách để thêm kho lưu trữ: `` sudo apt install apt-transport-https dirmngr sudo apt-key adv --keyserver hkp: //keyserver.ubuntu. com: 80 --recv-key 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb download.mono-project.com/repo/ubuntu vs-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-vs.list sudo apt update ''
FreedomInChaos

6

Mono là một môi trường thời gian chạy có thể chạy các ứng dụng .NET và hoạt động trên cả Windows và Linux. Nó bao gồm một trình biên dịch C #.

Là một IDE, bạn có thể sử dụng MonoDevelop và tôi cho rằng cũng có thứ gì đó có sẵn cho Eclipse.

Lưu ý rằng hỗ trợ WinForms trên Mono là có, nhưng hơi thiếu. Nói chung, các nhà phát triển Mono dường như thích các bộ công cụ GUI khác nhau như Gtk #.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.