Tworzenie języka C # w systemie Linux

107

Chciałbym wiedzieć, czy istnieją skuteczne i otwarte narzędzia do tworzenia aplikacji C # w systemie Linux (Ubuntu). W szczególności muszę tworzyć aplikacje Windows Forms.

Wiem o projekcie Mono , ale nigdy z niego nie korzystałem. Jakie są najlepsze narzędzia (IDE, kompilator itp.) Do skonfigurowania środowiska programistycznego .NET w systemie Ubuntu?

Czy oprogramowanie opracowane w systemie Linux działa w systemie Windows? Czy istnieją różne zachowania lub niezgodności?

davioooh
źródło
Zapraszam
Może to być również przydatne stackoverflow.com/questions/716077/ ...
NlightNFotis
To również może być interesujące: mono-project.com/WinForms_Getting_Started_Guide
NlightNFotis

Odpowiedzi:

69

MonoDevelop, IDE związane z Mono Project powinno wystarczyć do programowania C # w systemie Linux. Teraz nie znam żadnych dobrych programistów ani innych narzędzi do programowania w języku C # w systemie Linux. Ale z drugiej strony pamiętaj, że C # jest językiem bardziej natywnym dla systemu Windows. Lepiej tworzysz aplikacje C # dla systemu Windows niż dla systemu Linux.

EDYCJA: Kiedy pobierzesz MonoDevelop z Centrum oprogramowania Ubuntu, będzie zawierał prawie wszystko, czego potrzebujesz, aby zacząć od razu (kompilator, środowisko wykonawcze, IDE). Jeśli chcesz uzyskać więcej informacji, skorzystaj z poniższych linków:

NlightNFotis
źródło
1
Czy jest to oprogramowanie opracowane na Linuksie, które można uruchomić w systemie Windows?
davioooh
2
Oprogramowanie opracowane w systemie Windows lub Linux można uruchomić na platformie .Net. Tak długo, jak jest możliwe zainstalowanie frameworka .Net w systemie operacyjnym, może on uruchamiać aplikację. Musisz jednak wiedzieć o wersji;)
Shiham
@nvrt mimo to zastanawiałem się, czy inna implementacja frameworka może powodować niezgodności
davioooh
4
O ile wiem, kompatybilność wsteczna jest zawsze dostępna. Mogą wystąpić problemy, jeśli spróbujesz uruchomić aplikację na platformie .Net 2.0, która została opracowana z .Net 3.5 lub nowszymi wersjami.
Shiham
Chociaż należy zauważyć, że .Net zawsze jest w stanie zrobić więcej w systemie Windows. Mono jest bardziej projektem zgodności niż rzeczywistą implementacją zestawu programistycznego. Tak to przynajmniej widzę.
NlightNFotis
28

Teraz Microsoft przeprowadza migrację do oprogramowania typu open source - zobacz CoreFX (GitHub).

Henry H.
źródło
9

Sugerowałbym użycie MonoDevelop.

Jest dość wyraźnie zaprojektowany do użytku z Mono i wszystko skonfigurowane do programowania w C #.

Najprostszym sposobem zainstalowania go na Ubuntu byłoby zainstalowanie pakietu monodevelop w Ubuntu. ( link do Mono na ubuntu.com ) (Jeśli jednak chcesz zainstalować nowszą wersję, nie jestem pewien, który PPA byłby odpowiedni)

Jednak nie polecałbym programowania przy użyciu zestawu narzędzi WinForms - nie spodziewam się, że będzie miał takie samo zachowanie w Windows i Mono (implementacje są całkiem inne). Aby zapoznać się z przeglądami zestawów narzędzi interfejsu użytkownika, które współpracują z Mono, przejdź do strony informacyjnej w Mono-project .

Jean Hominal
źródło
8

Mono Develop jest tym, czego potrzebujesz, jeśli korzystałeś z Visual Studio, powinieneś zacząć od niego.

Jeśli dobrze pamiętam, powinieneś móc zainstalować z sudo apt-get install monodevelop

Chris Diver
źródło
Polecenie instalacji jest poprawne, jednak zanim to zrobisz, musisz upewnić się, że dodałeś repozytorium monodevelop do swojego systemu. Oto aktualnie działający link: monodevelop.com/download A oto sposób na dodanie repozytorium: `` 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 to środowisko wykonawcze, w którym można uruchamiać aplikacje .NET, i które działa zarówno w systemie Windows, jak i Linux. Zawiera kompilator C #.

Jako IDE możesz użyć MonoDevelop i przypuszczam, że jest też coś dostępnego dla Eclipse.

Zauważ, że obsługa WinForms w Mono jest dostępna, ale jej brakuje. Ogólnie rzecz biorąc, programiści Mono wydają się preferować różne zestawy narzędzi GUI, takie jak Gtk #.

LUB Mapper
źródło