Mengembangkan C # di Linux

107

Saya ingin tahu apakah ada alat yang efektif dan sumber terbuka untuk mengembangkan aplikasi C # di Linux (Ubuntu). Secara khusus, saya harus mengembangkan aplikasi Windows Forms.

Saya tahu tentang proyek Mono , tetapi saya belum pernah menggunakannya. Apa alat terbaik (IDE, kompiler, dll.) Untuk menyiapkan lingkungan pengembangan .NET di Ubuntu?

Apakah perangkat lunak yang dikembangkan di Linux dapat dijalankan di Windows? Adakah perbedaan perilaku atau ketidakcocokan?

davioooh
sumber
Juga jangan ragu untuk memeriksa pertanyaan ini stackoverflow.com/questions/151350/…
NlightNFotis
Ini mungkin juga berguna stackoverflow.com/questions/716077/…
NlightNFotis
Ini mungkin juga menarik: mono-project.com/WinForms_Getting_Started_Guide
NlightNFotis

Jawaban:

69

MonoDevelop, IDE yang terkait dengan Mono Project seharusnya cukup untuk pengembangan C # di Linux. Sekarang saya tidak tahu profiler yang bagus dan alat lain untuk pengembangan C # di Linux. Tapi sekali lagi ingat, bahwa C # adalah bahasa yang lebih asli untuk windows. Anda lebih baik mengembangkan aplikasi C # untuk windows daripada untuk linux.

EDIT: Saat Anda mengunduh MonoDevelop dari Ubuntu Software Center, itu akan berisi hampir semua yang Anda butuhkan untuk segera memulai (Compiler, Runtime Environment, IDE). Jika Anda ingin informasi lebih lanjut, lihat tautan berikut:

NlightNFotis
sumber
1
Apakah perangkat lunak yang dikembangkan di linux dapat dijalankan di windows?
davioooh
2
Perangkat lunak yang dikembangkan di windows atau linux dapat dijalankan di atas kerangka .Net. Jadi selama mungkin untuk menginstal .NET framework di OS itu dapat menjalankan aplikasi. Anda harus mengetahui versinya;)
Shiham
@nvr Namun saya bertanya-tanya apakah implementasi kerangka kerja yang berbeda dapat membuat tidak kompatibel
davioooh
4
Sejauh yang saya tahu, kompatibilitas mundur selalu ada. Masalah dapat terjadi jika Anda mencoba menjalankan aplikasi di atas .Net 2.0 yang dikembangkan dengan .Net 3.5 atau versi yang lebih baru.
Shiham
Meskipun Anda harus perhatikan, bahwa .Net selalu mampu lebih banyak di Windows. Mono lebih merupakan proyek kompatibilitas, daripada implementasi kit pengembangan perangkat lunak yang sebenarnya. Setidaknya begitulah cara saya melihatnya.
NlightNFotis
28

Sekarang Microsoft bermigrasi ke open-source - lihat CoreFX (GitHub).

Henry H.
sumber
9

Saya akan menyarankan menggunakan MonoDevelop.

Ini cukup banyak secara eksplisit dirancang untuk digunakan dengan Mono, dan semuanya diatur untuk dikembangkan di C #.

Cara termudah untuk menginstalnya di Ubuntu adalah menginstal paket monodevelop di Ubuntu. ( tautan di Mono di ubuntu.com ) (Namun, jika Anda ingin menginstal versi yang lebih baru, saya tidak yakin PPA mana yang sesuai)

Namun, saya tidak akan merekomendasikan pengembangan dengan WinForms toolkit - Saya tidak berharap itu memiliki perilaku yang sama di Windows dan Mono (implementasinya sangat berbeda). Untuk gambaran umum dari toolkit UI yang bekerja dengan Mono, Anda dapat pergi ke halaman informasi tentang Mono-project .

Jean Hominal
sumber
8

Mono Develop adalah yang Anda inginkan, jika Anda telah menggunakan studio visual, Anda akan merasa cukup sederhana untuk memulai.

Jika saya ingat dengan benar, Anda harus dapat menginstal dengan sudo apt-get install monodevelop

Chris Diver
sumber
Perintah instalasi benar namun Anda perlu memastikan bahwa Anda telah menambahkan repositori monodevelop ke sistem Anda sebelum Anda melakukan ini. Berikut ini tautan yang saat ini berfungsi: monodevelop.com/download Dan berikut adalah cara untuk menambahkan repositori: `` sudo apt install apt-transport-https dirmngr sudo apt-key adv --keyserver hkp: //keyserver.ubuntu. com: 80 --recv-keys 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 adalah lingkungan runtime yang dapat menjalankan aplikasi .NET dan bekerja di Windows dan Linux. Ini termasuk kompiler C #.

Sebagai IDE, Anda bisa menggunakan MonoDevelop , dan saya rasa ada sesuatu yang tersedia untuk Eclipse juga.

Perhatikan bahwa dukungan WinForms di Mono ada, tetapi agak kurang. Secara umum, pengembang Mono tampaknya lebih menyukai perangkat GUI yang berbeda seperti Gtk #.

ATAU Pembuat Peta
sumber