ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I attended a an introduction to Mono presentation a couple of months ago. I was left with the impression that applications developed on Mono should run fine on Windows XP since XP has the .Net framework installed.
Now I'm totally stumped and feel I must have misunderstood.
Let me give you an example.
Here is a nice article Seven Cool Mono Apps that introduced me to an interesting application called Tomboy.
It's interesting because I wanted to run it on my Windows XP computer at work in addition to running it at home on Linux. However, the Tomboy site doesn't discuss the possibility of running the application on .Net. Am I completely wrong to assume it could? How would I go about installing and running Tomboy on a Windows computer (assuming it has the .Net framework installed)?
If it won't run on Windows, then I'm going to get depressed. Because it was my understanding that you could do cross-platform development.
I haven't used Mono, but I have used DotGNU a bit. With that, you can compile a C# app in Windows, and run it in Linux with the DotGNU runtime, and vice versa.
But, not everything supported by VS.Net is implemented in DotGNU. There are quite a few things that are implemented, such as Windows forms, etc. but every once in awhile you will run into something that isn't.
The same is probably true the other way. If Mono uses assemblies that don't come with the MS .Net implementation, it would run into problems that way too.
Originally posted by Kdr Kane Now I'm totally stumped and feel I must have misunderstood.
I believe, you can run Mono applications under Windows XP when you install the Mono framework for Windows.
As far as I understood, it works this way:
Code:
Mono app -> runs on -> Mono framework -> runs on -> Windows
or
Code:
Mono app -> runs on -> Mono framework -> runs on -> Linux
in contrast to:
Code:
.NET app -> runs on -> .NET framework -> runs on Windows only.
You probably thought:
Code:
Mono app -> runs on -> .NET framework -> runs on Windows.
This may work when the app is small, but in most cases an advanced application will use libraries that don't run on the .NET framework. For example, I'm not sure if you can use the GTK# libraries within .NET but these are needed by Tomboy. There is probably a way to set this up, but it's easier to install Mono besides .NET.
Mono app -> runs on -> .NET framework -> runs on Windows.
And I guess I'll look into it further.
I know that Mono developers are courting .Net developers to do their .Net development on Mono. It really doesn't make sense if their applications won't run on .Net if it's developed on Mono.
I'll also look at Tomboy a bit closer. If it does require GTK+, then you are absolutely correct. It won't run on .Net. Now why would somebody do that?
Maybe I wasn't as clear, but I thought I addressed the possibility that Tomboy was using libraries not supported by the .NET framework with the following statement:
Quote:
The same is probably true the other way. If Mono uses assemblies that don't come with the MS .Net implementation, it would run into problems that way too.
Anyway, DotGNU apps can run on the .NET Framework in Windows, and .NET apps run on the DotGNU framework in Linux, so long as you are using libraries common to both.
Basically, the .NET framework defines a binary standard much like the Java byte-code, and DotGNU compiles to that standard. I assumed Mono would also compile to that same standard, but I could be wrong.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.