Reputation: 12044
I have a project that is an open source application for a specific type of scientific calculation that uses c++ for the backend, and C# for the front end. I'm not doing anything windows specific in the c++ portion, so I'm hoping for a relatively small learning curve there. I have a few specific questions, and I would appreciate any advice in general about this type of transition. Please keep in mind that I know absolutely nothing about Linux, but I am willing to learn.
I know that I don't need to support Linux technically, as almost everyone in my field uses Windows, or has easy access to a Windows box, but I thought this might be interesting from a technical standpoint.
Upvotes: 1
Views: 243
Reputation: 499382
There is a IDE you can use for C# on linux - it is Mono Develop. The current version will open visual studio project and solution files, so zero knowledge is needed to migrate to it.
It uses the Mono project, which is an implementation of C# for linux.
They have created a migration tool (MoMa) so you can test your C# code and see if it will work on linux - it will provide you with hints and explanations of what isn't portable and why.
I know this isn't the c++ route you are asking about, but it is probably going to be the easiest and quickest way to make your application platform independent.
Upvotes: 8
Reputation: 17341
Everyone else has already mentioned MonoDevelope. But there is also MoMA which can scan a .NET application and look for commands like pInvoke that will not be portable.
Upvotes: 1
Reputation: 57187
The answer to nr 1 is: MonoDevelop. Which also comes with Mono, the .NET version that's platform independent. It's a must-use when you do this transition. It runs also on Windows, which makes the learning curve less steep.
The answer to nr 2 is: I don't know..., but running your program compiled for Mono should give you a fair idea of platform specific issues you have in your code.
The answer to nr 3 is: try that as a specific question, that will give that rather complex issue the right attention and support.
The answer to nr X is: use an automatic build (NAnt or similar) to automatically build your code for several target platforms. However, it is possible that your .NET code runs unmodified for either platform (ideally it should) and only your C++ part needs special attention.
Upvotes: 2