[sword-devel] SWIG Bindings

Wade Maxfield wmaxfield at gmail.com
Mon Feb 6 16:54:48 MST 2006

  C# is an ECMA language.  Mono fully supports that language in version 1.1.
The version 2.0 is not there yet, if I remember correctly. (

  The key difference between mono and Microsoft's implementation is that
Microsoft supports Windows Forms.  Mono does not yet support Windows Forms.
They implemented a GTK situation, which is also available under Windows.

  Therefore, for now, an application that works with version 1.1 under XP,
if written to Windows Forms, does not work on Linux.

   However, that is changing.  Novell should have a Windows Forms
implementation working in the next few months.  They welcome developer help
with the project.

   It is my opinion that the Sword project can be implemented in Windows
Forms for now, using 1.1 (Not 2.0) and then, once Windows Forms work under
Linux, then port it to linux.  Some of your Assembly libraries will have to
be recompiled, and some controls might have to be re-written or

  2.0 introduces too many changes to be forward compatible back to 1.1 (I
know, weird terminology), even when being careful.  In addition, if you
compile to bytecode under 2.0, it will not work under the 1.1 CLR.  You have
to compile to the runtime version you need to work under, using the
1.1compiler for the
1.1 CLR (common language runtime).

  If you compile using the 1.1 mono compiler, the bytecode will work with
the .NET framework under Windows. It will also work with the CLR under
Linux, unless the library support is not there for the function you chose to
use in the code.  I haven't tried it, but I believe the reverse is true.  I
think that if you compile with the .NET compiler from Microsoft, you get
bytecode that works on Linux.

    2.0 CLR can execute 1.1 runtime in some cases, although I think you have
to have the 1.1 framework installed for that to happen. It may be the CLR
hands off to the older version.  Also, the 1.1 framework can co-exist on the
same machine the 2.0 framework is on (especially if you only install the
runtime .NET framework.)  There does not yet seem to be any downside to
writing to the 1.1 version for maximum portablility (except for the fact you
don't get some of the updated functionality from the 2.0 library.)

  In addition, Borland puts out the 1.0 version of their C# builder personal
for free.  You just have to download it. (
http://www.borland.com/downloads/download_csharpbuilder.html) and register
it. (get the "personal download edition") It can be used for non commercial
projects.  It works with the 1.1 framework, I've used it.  I recommend
getting it soon, it may go away.

  Also, you can get the free SharpDevelop IDE for Windows from (
http://icsharpcode.net).  It has some bugs, and CANNOT do step by step debug
(in version that was first written for 1.1).  Borland's IDE CAN do step by
step debug for .NET 1.1 in its IDE 1.0 version.  Version 2.0 of SharpDevelop
can do debug, but it's support of 1.1 is problematic.

  I have used the Free Visual Studio Express for C# on my system.  It is
available for free download. (

There are only 3 downsides:
     1) it won't do 1.1 development

     2)  I've had my Windows 2000 box spontaneously reboot while working in
the IDE.  Twice.  In one day.  I fixed this by bringing up an XP vmware box
and using it there.  No problems under XP that I've seen.

     3) installing it alongside Borland C# IDE 1.0 messes up Borland's IDE.
The help system changes significantly by installing .NET 2.0 and it craters
Borland.  I have not figured out how to fix that issue.  Some online
recommendations did not work for me.

  My recommendation for cross-compatibility (to WindowS, Mac OSX,  Linux) is
to do version 1.1 of .NET, and then port up to 2.0 some time in the future
(after Microsoft patches it a few times, and Linux supports it).  I backed
away from 2.0 down to 1.1 for all of the reasons aforementioned.

   God Bless you for your efforts.


On 2/6/06, Greg Hellings <greg.hellings at gmail.com> wrote:
> Working under mono/gcc would be a good goal for XP (as in cross-platform,
> not as in WinXP) programs.  However, since the goal of Mono (I think) is to
> be compatible with C# and not vice-versa, if you don't have Mono support you
> might not be too bad off, since Mono might come around closer to C#/.NET
> compatibility.
> --Greg
> On 2/6/06, Jason Turner <lefticus at gmail.com> wrote:
> >
> > I am curious who all out there is currently using the SWIG bindings
> > for sword, with which languages? I am also wondering what the current
> > need/desire is to have the CSharp version working with mono and gcc?
> >
> > God Bless,
> > Jason
> >
> > --
> > http://emptycrate.com Games, Programming, Travel & other stuff
> >
> > _______________________________________________
> > sword-devel mailing list: sword-devel at crosswire.org
> > http://www.crosswire.org/mailman/listinfo/sword-devel
> > Instructions to unsubscribe/change your settings at above page
> >
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.crosswire.org/pipermail/sword-devel/attachments/20060206/24f4a909/attachment-0001.html

More information about the sword-devel mailing list