Hi Scott,
> I need to move a Clipper 5.3 application to Harbour. Are there any
> resources available that can help me with this project? At this point
> I have a lot more questions than I do answers. My background is *not*
> Clipper. I'm an independent RPG programmer on the AS/400 platform. My
> main client has a Clipper-based POS application that I have learned
> enough about to maintain, but that's about it. I have zero experience
> in developing Windows-based applications, so I figure I'm going to
> need a lot of hand holding.
>
> - Harbour or xHarbour?
Harbour users will say Harbour. xHarbour users will say xHarbour. Of
course :-). I will say that I used xHarbour for a pretty long time and
moved to Harbour two years ago, Generally, that seems to be the
direction people migrate these days. Harbour has a file that explains
the main differences between the design philosophies and the internals
of the two projects:
http://harbour-project.svn.sourceforge.net/viewvc/harbour-project/trunk/harbour/doc/xhb-diff.txt
If you want your project to still be a console application, both camps
have gtwin (the default) and gtwvt font ends. Gtwin looks and feels just
like Clipper but is Win32, definitely not DOS. Gtwvt looks and feels
almost like Clipper too but is really GUI with controls that emulate the
console look and feel. Gtwvt and GUI can be combined, so that can be a
good start if you want to move on to Windows GUI in a second step. And I
believe it could be a good idea to start by converting what you already
have as "straight" as possible and then move on to whatever you really
want to do after the first step works.
If you want to switch to Windows GUI entirely, xHarbour has the
commercial fork (
xharbour.com) and Harbour has HBQT, which is a wrapper
package for Trolltech/Nokia's QT. Other GUIs exist too.
You have already found the xHarbour newsgrop (but I am not cross posting
this reply there due to limitations in the news server I use). Harbour's
peer support group is at
http://groups.google.com/group/harbour-users
but newsgroup messages can be redirected to email if you prefer that.
xHarbour.com has as closed newsgroup for paying customers.
> - What tools will I need? If I need a compiler, which one and where
> do I get it?
You will need a C compiler. xHarbour.com has one included (XCC), Harbour
has one included too (MinGw). The complete Harbour package can be found
at
www.harbour-project.org, both the stable 3.0 version and the nightly,
which of course is not entirely stable every single day. xHarbour for
some reason still recommends BCC, which is old. I am not sure if Mel
includes it in his "private" distro or not. Some other C compilers can
be used as well.
GIUs other than the one included in xHarbour.com will have to be
downloaded and installed separately.
Harbour is under development just about every day, so if you want to use
the nightly you should watch very closely what happens in the developer
newsgroup from day to day and pick the version(s) you use very
carefully. xHarbour.org has stagnated, and what happens there these days
is mostly bug fixes. xHarbour.com is built on top of the xHarbour org
core. Other than that, I know very little about it.
You can use Pritpal Bedi's HBIDE for editing your source code and
building your app, or you can use any editor you like and invoke the
compiler from the commandline, or, depending on the editor, from "Run
external application" or similar. xHarbour.org has the hbmake project
manager (build tool). Harbour has hbmk2, which is a complete rewrite
from scratch and is being improved continuously for use on many
different platforms. xHarbour.com has everything included, as I
understand it.
Not about tools ... but if you use any characters other than 7-bit US
ASCII then you need to consider which codepage to use internally in the
application (and in the front end) and which codepage to use in your dbf
files and make sure you do not corrupt your data by using a codepage
that does not match the data you already have. Especially if you run
your new (x)Harbour app and the old Clipper app in parallell using the
same data files.
> I'm willing to pay for initial support, if there is such a thing.
xHarbour.com offers paid support with a few months of free support
included in your purchase. Other than that, there are lots of friendly
people in the newsgroups of both open source projects who will try to
help as best they/we can. xHarbour.com has a reference manual, which is
excellent according to those who have seen it. And a "getting started"
too for the .com version, I believe. The reference manual can be
purchased by anyone who needs it, not just .com users. On the Harbour
side there is less documentation. The Clipper docs still apply, of
course. And there is a tutorial for HBQT. And most of xHarbour.com's
reference manual can be used too.
> The only 3rd party libraries I'm using are NANFOR (I'm not even sure
> this is considered third party) and the LFN library for long filename
> support which was basically needed to retrieve the creation date of a
> file. Outside of that, everything is vanilla Clipper. I do make
> extensive use of Blinker 7.0's SWPRUNCMD command.
Most of Nanfor is supported in both camps. Some parts of it do not apply
at all when you leave DOS behind. The LFN library was written by yours
truly to overcome some of the limits of the NTVDM. It does not apply at
all in your new environment, and you will have to replace all LFN calls
with standard Clipper/(x)Harbour calls. Harbour has a Blinker lib that
emulates the most important Blinker features, including SwpRunCmd(). I
believe someone said that xHarbour also has SwpRunCmd(). Or, if that is
the only Blinker function you use, you can use RUN instead. There is no
need to swap out the application any more to free memory.
Regards,
Klas