Page 1 of 5
Transferring large VO project to X#
Posted: Wed May 05, 2021 12:24 am
by GlenT
I am inspired by Chris's videos on migrating VO projects to X# and have tentatively dipped my toe in the X# world. At this stage, I am trying to prove that it can be done and done in a reasonable time frame ( < 6 months).
I admit to being .net novice and that I have much to learn. I've tried a few times but have always found something that needs to be done in VO and lost any knowledge that I gained.
So, I exported the application and imported the aefs into Xide. I think that will be easier than added the Visual Studio's learning curve to that of .net.
Apart from VO, I have used a number of external libraries over the years (the application is 20+ years old) such as:
SEmenuXP
ReportPro 2
RightSLE
PPP (a copy protection library) - already compiling
MDI Taskbar from James-Donald Carslaw
Funcky - already compiling
Fab Zip
Fab Tools
Fab Thread
Fab Paint
bBrowser
G2antt (from Excontrol) - an ocx
Flipper Graph - an ocx
So the question is, do I need X# versions of these libraries or do I just plough through them correcting errors as I find them?
Transferring large VO project to X#
Posted: Wed May 05, 2021 8:35 am
by Chris
Hi Glen,
Very glad to hear that those sessions were helpful for that!
About 3rd party libraries, fortunately most of them have been ported already to X#. You can find them:
- bBrowser:
https://www.bbrowser.net/index.php/en/
- Fab libraries:
http://www.fabtoys.net/
- ReportPro2:
https://www.xsharp.eu/store/shop/
- SEmenuXP and RightSLE: Those should not be very difficult to compile in X#, but I am pretty sure others have already done it, so no point reinventing the wheel. So can somebody step in please about that?
- OCX controls: If those have equivalent .Net libraries available, it's best to use those. If not, it's not a problem either, please read the complete topic "Migrating apps from VO to X#" to see what you need to do about them (among much other very helpful information).
- I am not familiar with the rest, need to try them and see if it's easy to port them to X#. Remember that compiling them is one step, but there's another one, making sure they work correctly at runtime, and doing that might require more work, if they are doing low lever tricks and stuff like that.
In any case, please do ask here about any issues you are getting or for suggestions on what to do with any aspect of the porting process. Here's also a list of tips Wolfgang has collected over the last few years:
https://docs.xsharp.it/doku.php
Transferring large VO project to X#
Posted: Wed May 05, 2021 9:49 am
by jonhn
Hi Glen,
Welcome! I am also working slowly on a 20+ year old VO app to bring to .NET and you'll find a lot of extremely helpful and knowledgeable people here to help.
Attached you will find Willies' RightSLE for X#. (thank you Willie)
I have made a couple of false starts and for me a lot of the problem is errors and warnings in my VO program that the compiler ignored pretty much and tolerated in the final .exe.
My tip is to go into the VO compiler properties, and under Clipper compatibility untick the "Undeclared Variables" option and start fixing as many errors as possible.
The VO compiler is very forgiving with that option ticked, and since fixing most of the errors in the list my app has a lot less "undocumented features". The DBServer errors (I have a lot) can be ignored as the XIDE will take care of them in the conversion.
hopefully that helps - I'm nearly ready to try converting again.
Good luck,
Jonathan
Transferring large VO project to X#
Posted: Wed May 05, 2021 10:23 am
by Chris
Thanks for stepping in Jonathan!
Just a comment though, even though I agree it is a very good idea to untick "Undeclared Variables", this is not mandatory for porting to X# anymore. Since some builds ago, MEMVARs should be working in X# more or less the same way as in VO, so you should not need to change your code anymore if you do not want to.
As I said, I agree it's better to do it anyway and use normal vars instead of publics and privates so that the compiler generates better and type checked code, but if you do not want to do it, in order to avoid modifying too much existing code, you should be able to leave it as it is, too. If you are still getting problems with compiling existing code that uses memvars, then this is porbably a bug in X# or something we have overlooked.
Transferring large VO project to X#
Posted: Wed May 05, 2021 5:15 pm
by stecosta66
Chris,
FabTools is not complete. I've downloaded source from GitHub (only FabTools, not the other libs) with relative .xsproj file and this gives error when importing in VS2019.
I'm missing something?
Transferring large VO project to X#
Posted: Wed May 05, 2021 7:55 pm
by jonhn
Try this version of FAB tools attached.
Transferring large VO project to X#
Posted: Wed May 05, 2021 7:58 pm
by jonhn
Yes, you are quite right. I was, however, surprised by the dozens of relatively serious other errors the VO compiler let through to my .exe that X# will not. All kinds of warnings I had ignored for years, sorry to say, but they are all listed there.
Transferring large VO project to X#
Posted: Wed May 05, 2021 8:48 pm
by ic2
Hello John,
jonhn wrote:I was, however, surprised by the dozens of relatively serious other errors the VO compiler let through to my .exe that X# will not. All kinds of warnings I had ignored for years, sorry to say, but they are all listed there.
I think that is one of the advantages of X#. IT can even be used to make your VO code better. I have done a couple of Transporter sessions and try to solve the errors in VO. That makes a full transitions (if ever...) to X# a lot less time consuming, but in the meantime the VO code is also better.
Dick
Transferring large VO project to X#
Posted: Thu May 06, 2021 12:22 am
by GlenT
Thanks Chris. I'll have a look at the links for the 3rd party stuff. No doubt I'll have many questions over the next few months.
Cheers
Glen
Transferring large VO project to X#
Posted: Thu May 06, 2021 12:27 am
by GlenT
Jonathan,
Thanks for the copy of RightSLE.
I already have "Undeclared Variables" unticked so maybe I will have few less problems.
Cheers
Glen
jonhn wrote:Hi Glen,
Welcome! I am also working slowly on a 20+ year old VO app to bring to .NET and you'll find a lot of extremely helpful and knowledgeable people here to help.
Attached you will find Willies' RightSLE for X#. (thank you Willie)
I have made a couple of false starts and for me a lot of the problem is errors and warnings in my VO program that the compiler ignored pretty much and tolerated in the final .exe.
My tip is to go into the VO compiler properties, and under Clipper compatibility untick the "Undeclared Variables" option and start fixing as many errors as possible.
The VO compiler is very forgiving with that option ticked, and since fixing most of the errors in the list my app has a lot less "undocumented features". The DBServer errors (I have a lot) can be ignored as the XIDE will take care of them in the conversion.
hopefully that helps - I'm nearly ready to try converting again.
Good luck,
Jonathan