[sword-devel] NetSword -- Take 2

Jason Turner lefticus at gmail.com
Sat Aug 19 06:18:50 MST 2006

I have a few things to add to this conversation. First, the sharpsword
project mentioned in the other thread never really got anywhere, but I
believe it was meant to be a complete reimplementation of sword in c#.
But you probably already knew that (I just woke up :) ).

There is a good possiblity that you could quite literally just
recompile JSword using Microsoft's free Java compiler. I started down
that road personally just for the fun of it. It would be less than
ideal, however, because Microsoft makes use of a rather extensive
java/.net compatibility layer, and even tho you would be able to use
JSword from a .net app it would not look and feel like a regular .net

Thirdly, my project that Troy has already mentioned, (which I am
calling swigsword for lack of a better name) is a rewrite of the sword
- swig bindings. The "recommended" way of creating swig bindings is to
write your own header files that call out the bits that you do want,
and this is what the current sword swig bindings do. As I started to
work with sword via swig through c#, I realized that it is difficult
to maintain a reimplementation of the header files. So, instead, I am
including the original sword header files and specifically disabling
the bits that don't work, or don't work well.

I'm currently (very slowly) working on some proof of concept .net
apps, to make sure everything is working as needed. Then I really,
really need to get it submitted to the main sword subversion so that I
don't get to far out of date with the rest of sword.

As Troy has already pointed out, my sandbox for this work is here:
http://source.emptycrate.com/projects/swigsword/ fortunately, someone
else has recently gotten involved and it is becoming much more usable.

So, my point is, there is already a set of .net bindings that work
quite well. They do have the disadvantage that Sword has to be
recompiled for each platform you want to support, as well as the
library that wraps up sword and exposes it to .NET. However, both of
those are trivial under windows and gcc/mono based platforms, which is
just about everything out there.

So, feel free to join in on that effort to make the swig bindings better.

God Bless,

On 8/18/06, Troy A. Griffitts <scribe at crosswire.org> wrote:
> Hey (not sure your name),
>     I can't stress enough how much I appreciate your ambition but would
> discourage your efforts in this direction.  We have spent quite a bit of
> time developing a tuned crossplatform framework with bindings for other
> languages.  If you would like to work in the .net world, the officially
> sanctioned route is to use the .net bindings to the C++ library or the
> more general CORBA bindings.
>     Our hope is to encourage collaboration.  Other frontend and tool
> projects are underway for the .net platform using the .net swig bindings
> to the C++ library (as Jonathan Morgan mentioned previously).
>     We do not standardize on sword module formats.  They change without
> notice.  We supports many subsets of markup formats including OSIS,
> ThML, WEB, and custom extensions on many of these.  The supported tags
> in modules may change at any time.
>     We expose an extremely static (many say way too static) API with the
> C++ engine.  It doesn't change very often, and even then, not very
> much.  This is where we try to focus on ease of use for the developers
> of Bible software.  When we come out with new modules and new features,
> usually a frontend developer merely has to update to the latest sword
> engine, recompile, and they provide the benefit of all supported new
> features and modules to their audience.
>     The end result of your hard work would be an ever behind, effort to
> merely provide the same functionality as any tool developer could get
> with the .net bindings to the authentic native sword engine.
>     If you would like to provide a more .net friendly interface, maybe
> you might consider developing your own .net API design which uses the
> .net bindings to the native engine for doing the sword work.
>     Looking forward to working together,
>        -Troy A. Griffitts
> veritosproject at gmail.com wrote:
> > I started to implement NetSword from scratch again, but this time I'm
> > using the real Sword library instead of JSword.  Based on the
> > limitations of C#, I'm taking quite a few liberties with the code
> > (using properties instead of get* and set* functions, removing unused
> > stuff, no operator overloading for operator=, etc.), but it's coming
> > along.  I've got about 5 classes converted so far, and I hope to get
> > about 5-10 a day.  I should have enough to write a small reader in
> > about a month.
> >
> > _______________________________________________
> > 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

http://emptycrate.com Games, Programming, Travel & other stuff

More information about the sword-devel mailing list