VO app is converted. Now what?

Have some feedback and input to share?
Don't be shy and drop us a note. We want to hear from you and strive to make our site better and more user friendly for our guests and members a like.
Post Reply
User avatar
OhioJoe
Posts: 131
Joined: Wed Nov 22, 2017 12:51 pm
Location: United States

VO app is converted. Now what?

Post by OhioJoe »

I recently converted two applications, each with about 50 users, from VO to X# using VOXporter and XIDE. if you take away the old coding errors, the entire process took only about a week. 500 .prg files. So X# has met the "proof of concept" challenge. (Well done!)

Now I'm wondering: "Where do I go from here?" I'm in the .Net world but with a legacy GUI and DBFs. So here two important questions:

1) WinForms or WPF?

I see much on this site about converting old apps from VO GUI to WinForms but not to WPF. Isn't WinForms pixel-based? Which means that our customers with high-resolution screens will still complain about the tiny windows and form labels? Seems to me the solution is to avoid WinForms and move directly to WPF, which is described as vector-based. (Whatever that means.)

2) Which SQL ?

My personal preference would be SQLite because it's server-less, thus making it much easier to install and support. Based on my experience it's multi-user although I haven't tested it situations with more than 10 simultaneous users.
I once wrote a VO SQLite function library ( https://www.joecurran.net/advice/vo_sqlite.htm ) so I know it can work.

I'd be happy to hear from those with greater knowledge than me (which would include just about anyone reading this).
Joe Curran
Ohio USA
User avatar
wriedmann
Posts: 3668
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

VO app is converted. Now what?

Post by wriedmann »

Hi Joe,

1) WinForms or WPF:
WPF is a totally different beast than WinForms: you have to rethink your complete GUI, so I would not go to WPF for a migrated application.
WinForms in its latest version seems to work better on highDPI screens. (please don't understand me wrongly: I have several WPF applications in production and they work very well. But WPF has different user concepts as you don't work anymore with dimensions but with containers and dynamic positioning).
2) Which SQL:
Please forget SQLite for multiuser applications! SQLite is well suited for document based applications (like a document is corresponding to a SQLite database), but it does not works well in multiuser environments.
Our internal decision is PosgreSQL for both web applications (written in PHP) and Windows applications (X#). PostgreSQL is free, fast, powerful and stable and works on both Windows and Linux platforms.
The best Visual Studio support has Microsoft SQL Server, so this could be an option for you.
(in my projects I'm using nearly all major SQL engines: Oracle, MySQL, PostgreSQL, MS SQL Server, SQLite)
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
User avatar
Chris
Posts: 4599
Joined: Thu Oct 08, 2015 7:48 am
Location: Greece

VO app is converted. Now what?

Post by Chris »

Hi Joe,

Very nice to here that the process was smooth to you! Would you be interested to share some short info about the app(s) and send a few screenshots, which we can include in the https://www.xsharp.eu/examples section of the website? As another "proof of concept" for X# and maybe as an advertisement for your work, too.
Chris Pyrgas

XSharp Development Team test
chris(at)xsharp.eu
User avatar
robert
Posts: 4290
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

VO app is converted. Now what?

Post by robert »

Joe,

What I would do first:
- Add strong typing where possible. You will be rewarded with a better speed and the compiler will find some errors for you.
- Check how you are using arrays. Many people have used arrays everywhere and in .Net there may be a better alternative, such as a list<T>
Especially if you have lots of loops like
FOR i := 1 to Alen(somearray)
somearray:DoSomething() // this will be a late bound call !
NEXT

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
User avatar
kevclark64
Posts: 127
Joined: Thu Aug 15, 2019 7:30 pm
Location: USA

VO app is converted. Now what?

Post by kevclark64 »

In reply to your "Which SQL?" question -- we have been using Foxpro and Postgres for several years now and it has worked extremely well. We've found that doing a SELECT from Postgres is almost always faster than doing the same SELECT from FoxPro data.
User avatar
OhioJoe
Posts: 131
Joined: Wed Nov 22, 2017 12:51 pm
Location: United States

VO app is converted. Now what?

Post by OhioJoe »

Thank you, Wolfgang, Chris, Robert and Kevin.

Robert, regarding arrays: I did a search in the main application for the phrase "AS ARRAY"

1,139 occurrences

This should be interesting. :dry:
Joe Curran
Ohio USA
User avatar
wriedmann
Posts: 3668
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

VO app is converted. Now what?

Post by wriedmann »

Hi Joe,
I'm doing that also in VO: changing multidimensional arrays to arrays of objects. This makes the code faster and easier to read.
And in X# you have a fantastic feature: classes that are defined in other classes - ideal for such purposes.
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Post Reply