What are the benefits and limitations of using a monoproject to run C # code on Linux?

If someone has a solution to the benefits and limitations of using a monoproject to run C # code on Linux, please tell me your thoughts ...

+6
c # linux mono
source share
3 answers

There is a huge advantage - it works. You can use C #, develop and run on Linux (and other platforms, including Windows).

The disadvantage is that everything does not always work the same way as in MS.NET, and there are some functions that are not implemented at all, such as WPF.

+10
source share

<strong> Benefits

  • Investment - when choosing the right software, you do not need to pay for software licenses when working with Mono on Linux (this does not mean that it is free - Linux is free if your time does not matter).
  • No vendor lock - you have more options for other Linux software (such as DB or web servers) compared to MS solutions that work best with other MS materials.
  • Mono-specific libraries (e.g. Mono.Simd or REPL).
  • Open source (you or others, you can fix errors / provide corrections / improve the code yourself).

Limitations

  • Incompatibility with MS.NET card.
  • In general, you are likely to spend more time with certain things (for example, doing incompatibilities or studying Linux administration, etc.).
  • Mono has not been updated with new APIs and features for some time when the new version of the .NET framework is released.
+4
source share

I developed several applications in C # and tried to run Linux a bit through Mono. Getting console applications is pretty simple. In most cases, there is no need to replace the code for these types of applications to work under Mono. However, graphical applications are always more complex. The first thing you should know is that your user interface will not be combined with the user theme. The application will always look like a Windows 98 application if you use Microsoft System.Windows.Forms.

If you plan to write and run the application only on Linux, you can use Mono Gtk # to create a user interface. It integrates with Linux desktops much better than System.Windows.Forms. This page gives a good description of the various GUI tools, their pros and their shortcomings.

If you stick with System.Windows.Forms for a GUI toolkit to run your application on Windows and Linux, keep in mind that although Mono supports C # 4.0, you better not limit yourself to C # 2.0, as some of the features of 3.0 and above are not implemented or not working well on Linux.

+3
source share

All Articles