Do linux users need an emulator to run .NET applications? like WINE?
Printable View
Do linux users need an emulator to run .NET applications? like WINE?
I think you are suposed to use Mono.
Ps, we do have a Linux forum.
Yea, just this isn't really for development atleast not yet ;)
I was just wondering i have been doing some googling and it says some stuff about using the terminal but thats about all. But i also discovered it is distributed with a CLR which i am not sure if its based off WINE or the .NET CLR.
Yes, I was correct:
http://www.mono-project.com/Main_Page
http://en.wikipedia.org/wiki/Mono_(software)
Yea i know that linux users need mono, but i have heard that you need an emulator like 1) WINE to run the application 2) or it needs to be recompiled, 3) or you just tell mono to run it via the terminal.
sorry for the misunderstanding i am just trying to get my head around this .NET, mono, Linux stuff it all intrigues me :)
I tried the MonoDevelop IDE with some project I've done on VS. I don't know why but it had a problem with my resource files and the GUI kept crashing when using the System.Windows.Forms assembly.
Maybe there are somethings that need to be changed in order to run on Mono. but for console applications I didn't have any problems.
Oh and the IDE is a mess.
I cant understand why you would need an emulator. If you use mono you are developing a linux app not a windows one. The idea of the framework is to abstract away from the OS is it not?
Not really CodeFire, you are actually building a .NET app that will run on Linux as well as other OS'.
Quote:
Originally Posted by Mono Site
@RD: I know, shame on me, hell i even contradicted myself in my post by saying that and then saying it abstracts away from the OS. God im a dope! Fact of the matter is you would not need an emulator!
It doesn't need to be recompiled though does it? And CodedFire all managed code uses an emulator (CLR in .NET's case) but i am just wondering if...
1) It needs to be recompiled for linux? Or you can just tell the mono framework to run it, and it will do the rest for you.
2) I know the mono comes with an emulator but i was just wondering if it is an almost carbon copy of the Microsoft one or if its based off WINE?
3) Or do you need to use WINE or some other emulator regardless of the emulator that comes with mono.
Mono is not very reliable. If you are going to try using it I recommend you develop and test your applications on Linux before testing them on Windows. That way you are less likely to use anything that can't be ported.
Recompilation is not necessary. The mono compilers will produce a Windows PE file which can be run through
Is the CLR not an interpretor. An emulator (like wine) emulates the windows system where as the CLR compiles your code via JIT from CIL to Machine code as it needs to?
1. WINE can run the .Net framework and .Net applications I believe but it's an extra layer of abstraction that isn't needed if you're going to use Mono. You don't need WINE if you compile with Mono.Quote:
Originally Posted by Paul M
2. Yes, a .Net application has to be recompiled into a Mono application before it can use the Mono framework instead.
3. I believe you, by default, have to run all Mono applications from a command line (though I could be wrong).
Erm, you contradicted yourself there. At first you say the mono app you're creating is a Linux app but then you say the idea of the framework is to be abstract from the OS.Quote:
Originally Posted by CodedFire
Mono is an open-source version of the .Net framework. Applications compiled in Mono can run on any system that has the Mono framework installed (so you can compile a mono application in Windows and run it in OS X or Linux).
First, WINE Is Not an Emulator (heh). Secondly, take a look at this: http://en.wikipedia.org/wiki/Common_Language_RuntimeQuote:
Originally Posted by CodedFire
Are you sure? While it creates something similar to a Windows PE file (much like a regular .Net application, I don't believe it's exactly the same but I don't really know), last I used the Mono framework I had to re-compile my applications so it would reference them and not the .Net framework. I'm not entirely sure what a Windows PE file has anything to do with Mono or .Net since both require the framework to be present to even run.Quote:
Originally Posted by penagate
My post appears to have been cut off. I meant to say "which can be run through either mono or the .NET Framework CLR."
.NET binaries contain a PE header and a stub which invokes the CLR, which makes them technically PE files even if the executable code they contain is not native.