Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to write programs in C# .NET, to run them on Linux/Wine/Mono?

Tags:

In this particular case I need to run .complicated NET application for Linux. By complicated i mean - that project was developed for 3 years and i don't want to write it again in java or something else and develop and support both, .NET and Java version later.

Application is generating mouse and keyboard events (by winapi/dll import) and uses serial port. I have also few timers for delays - for serial port communication (10-20ms, i dont need big precision here).

The rest is just a lot of simple code, nothing special, no weird controls, no directx etc.

What should i expect? Will this work?

If some part of code will fail - i can change it a little, make network connection between .net app and mini-application on linux that i can write for sending mouse and keyboard events, or RS232 communication.

Additionally i want to ask about Wine and .NET in general:

How to write .NET applications that should run on Linux/Wine/Mono?

  • which version of framework? (1.x, 2.0 or can i use 3.5?)
  • what should i avoid (imports from windows dll? timers?)

Edit/moved from comment:

I saw mono few years ago, but it was terrible. Now i see it growed up, supports LINQ, Threading and other complicated features. In addition now help looks really serious. Im not accepting answer yet, because i see that people still posting very useful links. If this question gets many +1 i will rewrite it and maybe this will help others.

I hope someone here have some practical experience with .NET on linux here...

like image 200
Kamil Avatar asked Oct 27 '12 19:10

Kamil


People also ask

Where can I write C programs?

Two options. Great, now that Visual Studio Community is installed, you have two options for developing and running C programs on Windows. The first option involves using any text editor you like to write your source code, and using the "cl" command within the Developer Command Prompt to compile your code.

How do you write to a file in C?

For reading and writing to a text file, we use the functions fprintf() and fscanf(). They are just the file versions of printf() and scanf() . The only difference is that fprintf() and fscanf() expects a pointer to the structure FILE.


1 Answers

Have you read about Mono.NET on http://www.mono-project.com?

It allows you to write .NET apps for Linux with minor differences over the Microsoft implementation. I don't think wine will cope with any of the .NET components.

Just read the documentation before and you have a go.

PS: This also gives you the compatibility list between mono and .NET. http://www.mono-project.com/Compatibility and MoMA(mono migration analyzer) is a tool that will scan any .NET app already created to see if its compatible to deploy on linux.

like image 107
Freeman Avatar answered Oct 02 '22 19:10

Freeman