Getting a program written on Windows to Run on a Mac or .NET portability

Started by
2 comments, last by Permafried- 19 years, 8 months ago
Till now I have stood at the edge of the roaring tide of bustle and religious like proclamations and wars that has surrounded .NET. I am however, curious about this matter and have a couple quick questions that I hope anyone with a spare moment could elucidate for me. From what I understand .NET is a virtual machine that can be implemented on most any machine allowing that if someone were to write a .NET program in Visual Studio .NET on Windows it could run on a Mac or any OS with the proper .NET VM? That would mean microsoft has extended its reach to other platforms... irrelevant... Also, the DirectX .NET framework, is it an interface that allows .NET applications to communicate/work with DirectX, a replacement of the COM model with .NET allowing perhaps that it also be portable? Those are the two or three questions that I am curious about, I would be thankful to anyone who could clear this up for me.
Advertisement
Hey,

Quote:
From what I understand .NET is a virtual machine that can be implemented on most any machine allowing that if someone were to write a .NET program in Visual Studio .NET on Windows it could run on a Mac or any OS with the proper .NET VM?


The VM you refer to is called the CLR, or, Common Language Runtime. Basically you could look at this, as you have, like the Java VM which uses JIT compiling. I'm not 100% sure on the differences between the two, but the CLR will compile (I THINK it's the CLR that does this, haven't covered this for 4 semesters @_@) to the machine's native code prior to executing it. So in this case, yes it could run on a Mac or Linux, but this would require the release of a CLR specific to this machine type. There are currenty none that I am aware of, nor enough documentation for anyone to set out designing and releasing their own CLR for the respective O/S.

Quote:
the DirectX .NET framework, is it an interface that allows .NET applications to communicate/work with DirectX, a replacement of the COM model with .NET allowing perhaps that it also be portable?


Long story short here, Microsoft is going to discontinue all support of VS6 products in order to make the transition over to .NET. Longhorn will be designed 100% using the .NET framework, and I think for the sake of consistency they have decided to port DirectX over to this as well to ensure that all games developed on DX9.0C and above are compatible with Longhorn come it's release.

There are not the 100% definitive answers and are open for interpretation, but it should give you hopefully a clearer understanding of what's going on under the hood.

Permafried-
Hi

Quote:Original post by Permafried-
Hey,

Quote:
From what I understand .NET is a virtual machine that can be implemented on most any machine allowing that if someone were to write a .NET program in Visual Studio .NET on Windows it could run on a Mac or any OS with the proper .NET VM?


The VM you refer to is called the CLR, or, Common Language Runtime. Basically you could look at this, as you have, like the Java VM which uses JIT compiling. I'm not 100% sure on the differences between the two, but the CLR will compile (I THINK it's the CLR that does this, haven't covered this for 4 semesters @_@) to the machine's native code prior to executing it. So in this case, yes it could run on a Mac or Linux, but this would require the release of a CLR specific to this machine type. There are currenty none that I am aware of, nor enough documentation for anyone to set out designing and releasing their own CLR for the respective O/S.



Mono is a project that aims to bring .NET to Unix, Linux, Mac, Windows, and more. You can find it at its homepage.

Quote:
the DirectX .NET framework, is it an interface that allows .NET applications to communicate/work with DirectX, a replacement of the COM model with .NET allowing perhaps that it also be portable?


.NET replaces the COM model, as far as I know.
Quote:
.NET replaces the COM model, as far as I know


This is in part correct, .NET has something new called Interop Assemblies, which function similar to COM but not 100%. Due to the nature of COM it will always be around, at least until all development shifts away from COM and over to Interop Assemblies, but for now it'll be here to stay.

Permafried-

This topic is closed to new replies.

Advertisement