GNU/Linux >> Znalost Linux >  >> Linux

Jak psát programy v C# .NET, spouštět je na Linuxu/Wine/Mono?

Četli jste o Mono.NET na http://www.mono-project.com?

Umožňuje vám psát aplikace .NET pro Linux s drobnými rozdíly oproti implementaci Microsoftu. Nemyslím si, že si víno poradí s žádnou z komponent .NET.

Stačí si předtím přečíst dokumentaci a můžete začít.

PS:Tím získáte také seznam kompatibility mezi mono a .NET. http://www.mono-project.com/Compatibility and MoMA (monomigrační analyzátor) je nástroj, který prohledá jakoukoli již vytvořenou aplikaci .NET, aby zjistil, zda je kompatibilní s nasazením na linuxu.


V tomto příspěvku jsem zkrátil a spojil všechny informace, které jsem se dozvěděl od ostatních v tomto vláknu.

  1. Open source implementace .NET pro Linux se nazývá Mono .

  2. Kompatibilita je dobře zdokumentována (viz odkazy níže). Mono podporuje LINQ, vlákno a některé další složité funkce.

  3. Podporuje dokonce i InteropServices. Je možné použít DllImport na linuxové knihovně (!), například libc.so například.

  4. Mono může podporovat Android a iOS (jsou založeny na Linuxu, že?)

  5. Existuje nástroj pro analýzu Mono kompatibility s názvem MoMA (Mono Migration Analyzer)

Nástroj Mono Migration Analyzer (MoMA) vám pomůže identifikovat problémy, které můžete mít při portování vaší .Net aplikace do Mono. Pomáhá určit konkrétní volání platforem (P/Invoke) a oblasti, které zatím nejsou podporovány projektem Mono.

Užitečné odkazy:

Mono – domovská stránka

Mono - stránka s dokumentací

Mono – stránka kompatibility

MoMA – stránka Mono Migration Analysis


Máme několik .net aplikací, které běží na Windows nebo Linux s Mono.

Pokud chcete, můžete vyvíjet ve VisualStudio, není nutné používat vývojové prostředí Mono. Ke spouštění aplikací .net na Linuxu jsou vyžadovány pouze runtime mono knihovny.

Ke kompilaci těchto aplikací ve VisualStudio používáme cíl net 2.0, protože mono je téměř 100% kompatibilní s .net 2.0. Mono také implementuje APIS z pozdějších verzí .net, ale ne všechny a ne tak úplné. Pokud používáte funkce novějších verzí než 2.0, měli byste zkontrolovat, zda jsou podporovány, nebo použít nástroj pro analýzu kompatibility Mono. Můžete také použít Mono development místo Visual Studia, dělal to můj předchůdce; výsledek je v podstatě stejný a místo toho raději používám Visual Studio.

Nenašli jsme žádný zásadní problém a aplikace jsou poměrně složité, silně vícevláknové, asynchronní I/O, WinForms, sockety, sériové porty atd.

Některé aplikace používaly .net knihovny, které nejsou dostupné v MS .net, ale všechny tyto lze nainstalovat i na Windows, takže není problém tyto aplikace spouštět ve Windows.

Doufám, že to pomůže,


Linux
  1. Jak ladit programy C v Linuxu pomocí gdb

  2. Jak nainstalovat Wine a spouštět aplikace pro Windows v Linuxu

  3. Linux – Jak spustit bootloader z Linuxu?

  1. Jak nainstalovat Wine na Linux

  2. Linux – jak je Mono magické?

  3. C# v prostředí linuxu

  1. Jak spouštět aplikace Windows v systému Linux [Příručka pro začátečníky]

  2. Jak napsat linuxového démona s .Net Core

  3. Jak spustit linux na PS3?