Joined: 02 Jun 2007
|Posted: Fri Sep 07, 2007 5:51 am Post subject: Linux Version
|A good number of weeks ago I asked about Linux support under Wine, but got no significant replies.
According to my research to use .net enabled programs under Runtime Library emulation in Linux you currently need a library-set that isn't included in the current install. The package isn't available.
However, I did find it is possible to modify a standard Windows program with .net to compile under Linux using the same library set used by the emulation with little more work than modifying the compile for a new Windows development kit.
While doing this, one can also go through and comment out and make roadmaps for eliminating said platform-specific code, without modifying too much.
Here is the "generic" first-level roadmap for such a project:
1. Determine all Mono packages needed for development. (Microsoft throws them all together in a bloated package including stuff you don't need, when it comes to .net)
2. Find and comment-mark all code depending on Windows-Specific items, not in standard .Net/Mono/CLI distributions, including lightweight distributions for low-power platforms like PDAs (Find and mark any PC-specific code as well, if existent.)
3. Find drop in replacement for all windows-specific items, and create a make-file to do the needed substitutions. Insert pre-processor macros if needed.
4. Make successful version, and publish as "Linux Port Pre-Release Milestone 1" Making sure default version includes all internal and external debug features enabled so people willing to help by submitting their problems find it easy, even if their skills aren't up to par. Make sure people know that this release isn't considered "works for sure"
5. Separate sections commented above into linked "arch" branch in tree, and sub-divide any hardware-specific code, if existent, including code that may interfere with. Create script to do this again automatically to newer versions of the original programming, to aid in porting bug-fixes.
6. Create Pre-Release for Milestone 2 with resulting code.
7. See if main project wants to utilize current changes, otherwise branch project
8. Compile Milestone 3
9. Appraise and write Plan for eliminating "drop in replacement clone" libraries for multi-platform developed ones. If cloned libraries don't seem to be creating excessive quirks, memory leaks or performance impact, focus on making a release stable version first.
I will now go appraise the source code in my MonoDevel IDE and fill in this list. If anyone wants to assist both reply here, and send me a PM to let other people know. Send me an email and/or personal message if needed.
I'll see how long until I can get back to everyone on this new "feature" development.
I would already like to request if I succeed in this port, or someone beats me too it, that the project gets integrated.
---Update 2007.09.07 08:30GMT---
I have successfully loaded the code in my IDE, but I seem to be missing a few libraries:
Here is the log
WARNING: Assembly reference could not be imported: stdole
WARNING: Assembly reference could not be imported: SHDocVw
WARNING: Assembly reference could not be imported: AxSHDocVw
WARNING: Assembly reference could not be imported: MSHTML
WARNING: Assembly reference could not be imported: MagicLibrary
Obviously I need MagicLibrary and a replacements for stdole, SHDocVw and MSHTML .
I know stdole is covered by libwine. I'm not sure about SHDocVw, or MSHTML.