Bir Linux sisteminde herhangi bir kullanımın C # bilgisi var mı?


44

C # 'yı biliyorum ve sistemler arasında geçiş yapmayı ve Linux kullanmayı seviyorum. Yerel olarak Linux üzerinde çalışacak uygulamalar oluşturmak için C # kullanabilir miyim? Bir Linux sistemindeki C # bilgimi kullanmak için ne yapmalıyım?

Unity3D konusunda uzman olduğumu, ancak hala C # kullanarak Linux uygulamaları oluşturmak istediğimi unutmayın.


1
KerbalSpaceProgram Unity dilinde yazılmıştır ve Win / Mac / Linux ile çalışır. KSP'ye Eklentiler / Modlar C # ile yazılmıştır ve Win, Mac veya Linux'ta geliştirilebilir. Öncelikle Mac yerine Linux yerine Mac kullanıyorum, ancak bu platformda KSP mod geliştirme yapıyorum, pencerede değil. Muhtemelen yakında KSP dışında xUnit testleri ile bir miktar C # kodu yazacağım ve bu diğer bir gelişme gibi olacak, ama bunu sadece mono altında çalıştırmam gerekecek. MechJeb, Mac + Linux üzerine kurulu bir Makefile örneğine sahiptir: github.com/MuMech/MechJeb2/blob/master/Makefile (bağlantı için KSP oyun ücretleri gerektirir).
lamont

3
C # uygulamaları genellikle yerel olarak hiçbir yerde çalışmaz .
Monica'ya Zarar Vermeyi Durdurun

@OrangeDog Biliyorum, Windows'ta bile .Net framework yüklemelisiniz. "Doğal" dersem, herhangi bir öykünme veya uyumluluk katmanı olmadan kastediyorum. Temel olarak Linux, desteklemeniz gereken kaç program veya paket olursa olsun, yani.
Jacob,

2
Bunların herhangi birinin Ubuntu ile ilgisi nedir?
underscore_d

2
@underscore_d Bunu nereden duyduğunuzu bilmiyorum ama doğru değil. Bkz Are konuyla “sadece Ubuntu özgü” soru var mı? Birçok, birçok Ask Ubuntu üzerine sorular GNU / Linux sistemlerinde büyük çoğunluğu için aynı ölçüde geçerlidir. Belki birileri bu soruyu konu dışı olarak düşünmek için makul bir sebep bulabilir, ancak öyle olmaz. (Btw, bu mu Ubuntu özel bilgilerle cevapları kendi yazının ikinci paragrafı Ubuntu paketleri hakkında değil, diğer dağıtımlar bazı devroldu, ama hepsi değil..)
Eliah Kagan

Yanıtlar:


55

Büyük olasılıkla http://www.mono-project.com/ adresinde karşılaşacaksınız

As Mono Hakkında sayfa diyor ki:

.NET Framework'ü temel alan açık kaynaklı geliştirme platformu olan Mono, geliştiricilerin daha gelişmiş üretkenliğe sahip platformlar arası uygulamalar oluşturmasını sağlar. Mono'nun .NET uygulaması, C # ve Ortak Dil Altyapısı için ECMA standartlarına dayanmaktadır .

Desteklenen platformlar Linux arasındadır.


2
Mono ... tanıdık geliyor ... Ah evet, bu birliği esas alan şey! Ayrı ayrı kullanabileceğimi bilmiyordum. Unity3d'nin bir parçası olduğunu düşündüm.
Jacob

41
Microsoft'un uygulamasının en yeni sürümü (.Net Core) ayrıca Linux'u da destekler.
BlueRaja - Danny Pflughoeft

6
Mono sadece çekirdek değil. Net standart 2.0 (iirc) uygular.
casey

13
Birkaç yıl önce bu güzel bir cevap olurdu. Şimdi oldukça eski.
Konrad Rudolph

1
@KonradRudolph eski mi? Fakat .NET çekirdeği temelde herhangi bir üretim düzeyi programı için NuGet bağımlılığı gerektirmez mi? veya başka alternatifler var mı
Biri

72

Evet, Ubuntu'da, kendisi de Ubuntu'da, C #'da çalışacak bir yazılım geliştirebilirsiniz. Hem Mono hem de .NET Core, Ubuntu gibi GNU / Linux sistemlerini destekler . (Bunları Debian, Raspbian, Fedora, CentOS, Arch, Gentoo ve diğerleri gibi diğer dağıtımlarda da kullanabilirsiniz .) Unity3D oyun motoru da muhtemelen bildiğiniz gibi Ubuntu'yu destekliyor. Unity3D, Mono'yu gömüyor .

Resmi topluluk destekli yazılım kaynaklarından Ubuntu'nun paket yöneticisi ile kurulabilen Ubuntu için bir dizi paket C # dilinde yazılmıştır ve Mono'yu kullanır. Bu müzik çalar Banshee , not alma uygulaması Tomboy , raster grafik editörü Pinta ve şifre yöneticisi KeePass'ı içeriyor (sürüm 2'den beri).

Gedit, Vim ve Emacs gibi çoğu metin editöründe C # ile ilgili söz dizimi vardır. MonoDevelop ve Visual Studio Code , Ubuntu'da çalışan ve C # gelişimini destekleyen iki popüler entegre geliştirme ortamıdır.


10
Belki de Visual Studio için ReSharper'ın tüm işlevselliğini içeren C # for intellij fikri tabanlı IDE Rider'dan da bahsedin.
Wilbert

Bu cevabı ayarlamak isteyebilirsiniz, böylece linux'un diğer dağıtımlarının var olduğu anlamına gelir. Mono da sağlayacakları veya destekleyecekleri için, biraz daha nötr ve kapsayıcı olmak isteyebilirsiniz.
user2066657

@ user2066657 Öneri için teşekkürler; Düzenledim. Mono ve .NET Core'un Ubuntu ile sınırlı olmadığını ("Ubuntu gibi GNU / Linux sistemleri") açıklamak istemiştim. Ancak daha da önemlisi, bunun ne söylemeye çalıştığımı bilmeyen okuyucular için net olamayabileceğini anlıyorum. Böylece o kısmı genişlettim. Ben seni tatmin olmayabilir bu düzenlemeyi gerçekleştirmek yapın: Ben daha kapsayıcı yapılmış, ancak ettik değil daha tarafsız. Bu sitedeki yayınların Ubuntu’ya vurgu yapması makul. Alt kısımda Ubuntu paketleri bulunan C # programlarına örnekler veren kasıtlı olarak Ubuntu'ya odaklanıldı.
Eliah Kagan,

OP, Ubuntu olmayan işletim sistemleri hakkında soru sormak isteseydi, muhtemelen Unix ve Linux'ta isterdi .
Bay Lister,

@ MrLister Evet, kabul etti. Ama eklediğim açıklama ile bir şeylerin kazanıldığını ve hiçbir şeyin kaybedilmediğini düşünüyorum. Yine de, görevi bir bütün olarak düzeltmeyi planlamıyorum. Örneğin, MonoDevelop ve Visual Studio Code'un hangi dağıtımları ile kurulumu ve kullanımı oldukça kolay olduğu, ancak biraz karmaşık olduğu ve tonu ve odağı değiştirecek (ve uzunluğunu değiştireceği) karar vermeyecek bir şeyi söylemeyi düşündüm. gönderinin).
Eliah Kagan,

20
  1. Artık Java veya Python kullanabildiğiniz gibi, C # ( .NET Core framework) kullanarak Linux'ta sunucu uygulamaları geliştirebilirsiniz . Sunucu uygulamaları ile daha çok web uygulamaları ve web servisi (REST) ​​uygulamaları kastediyorum. Bu Linux kapları ( Docker / K8s) ve bulutlar ile mükemmel bir uyum sağlar .
  2. Mono Framework (bir .NET uygulaması) ve GTK # (GtkSharp) araç setini (bir GTK sargısı) kullanarak C # ile masaüstü uygulamaları geliştirebilirsiniz. Üzerinde geliştirilen birçok proje var. Bu çerçeve geçmişte Linux topluluğunun bir kısmı tarafından bir miktar direnç gösterdi. Bazı dağıtımlar ve kullanıcılar Mono uygulamalarını istemiyorlardı.
  3. Unity Engine ile Linux'ta C # kullanarak oyun geliştirebilirsiniz. Birlik Editör henüz Linux'ta deneysel değil.

Yani evet. C # hakkında bilgi bugün Linux sistemlerinde çok yararlı olabilir.


4
Masaüstü uygulamalarını .NET Core'da da yapabilirsiniz.
PmanAce

2

Artık Net Core ve Avalonia adındaki yeni bir projeyi kullanarak XAML tabanlı ön uç çapraz platform (Linux, Mac, Windows, Android, iOS, UWP) uygulamalarını bile yapabilirsiniz. Avalonia Beta'da, ancak şimdi oldukça iyi çalışıyor. WPF'ye benzer, ancak stil oluşturmada bazı CSS geliştirmeleri gibi

Linux'ta Avalonia şu anda Gtk'yi hedef alıyor, ancak başka bir şeye geçmek istiyorlar. BT bu videoda belirtildi, ancak şahsen ne dediğini anlayamadım: https://www.youtube.com/watch?v=WESJUJWBLJ0

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.