Is it true that...
C# isn't compiled that it is run on a vm to create the exe, C# apps can only be run with .net installed, C# is a lot like java.
If any of those things are true then I don't know if I am going to be looking into C# as being my primary way to develop win32. The winapi is pretty cool, but I want somethign easier likke vb to develop win32. If those things about C# are true then I am going to stick to winapi w/MFC (So far I think MFC is the best approach to win32 programming)
C# is compiled to MSIL code.
When you click on the .exe, it gets compiled by a JIT compiler into machine code of the current machine and is run.
To do this, you need the .NET Framework on every machine that needs to run the .exe file.
C# is a lot like Java in the same way that an apple is a lot like a basketball. Both are objects in our world and thats about it. They look similar. C# is a lot like C++, C# is a lot like VB, C# is a lot like Java. Test it if you want to know if it fits your style of programming.
What is MSIL?
The purpose of me asking is whether or not I want to stick with MFC or turn to C# for windows programming. Because of the fact that .NET needs to be installed on the machine running the program I think I will stick to MFC for windows programming with C++. Now, the .NET mainframe (or whatever you call it) is cross platform correct? Also what is the difference between Just In Time compiling and an interpreted language? (assuming I am correct in my assumption that an interpreted language is more or less JIT compiling).
I hope my questions make sense because the whole .NET thing is just a big silly gimmick to me and I am trying to figure things out.
Here are some similarities between Java and .net.
They are both middleware components and frameworks. They both employ a namespace hierarchy and compile to some form of intermediate language. Java is capable of using a JIT compiler, so it can be very similar to .net in that regard as well. The Java virtual machine is run in user mode and it simulates multiprocessing with a virtual monitor mode and a virtual user mode. The implimentation of the host is adapted into the virtual machine whos interface is the same across all platforms (the implementation is of the host, but the interface is the same). This is the same type of stragety .net would employ, or else very similar in order to make it cross platform compatible..
I'm not saying that there isn't differences but I would like to hear about them. I did some reading about virtual machines yesterday. Okay so state the differences in detail, thanks.