Welcome, Guest
Username: Password: Remember me
Please use this forum for suggestions to the XSharp Development Team
  • Page:
  • 1

TOPIC:

VO app is converted. Now what? 12 Jun 2020 14:38 #14943

  • OhioJoe
  • OhioJoe's Avatar
  • Topic Author


  • Posts: 102
  • 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 ( 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

    Please Log in or Create an account to join the conversation.

    VO app is converted. Now what? 12 Jun 2020 15:16 #14944

    • wriedmann
    • wriedmann's Avatar


  • Posts: 2785
  • 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

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    VO app is converted. Now what? 12 Jun 2020 17:16 #14948

    • Chris
    • Chris's Avatar


  • Posts: 2742
  • 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 www.xsharp.eu/examples section of the website? As another "proof of concept" for X# and maybe as an advertisement for your work, too.
    XSharp Development Team
    chris(at)xsharp.eu

    Please Log in or Create an account to join the conversation.

    VO app is converted. Now what? 12 Jun 2020 18:14 #14951

    • robert
    • robert's Avatar


  • Posts: 2371
  • 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

    Please Log in or Create an account to join the conversation.

    VO app is converted. Now what? 12 Jun 2020 19:16 #14954

    • kevclark64
    • kevclark64's Avatar


  • Posts: 94
  • 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.

    Please Log in or Create an account to join the conversation.

    VO app is converted. Now what? 12 Jun 2020 19:33 #14955

    • OhioJoe
    • OhioJoe's Avatar
    • Topic Author


  • Posts: 102
  • 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

    Please Log in or Create an account to join the conversation.

    VO app is converted. Now what? 12 Jun 2020 19:42 #14956

    • wriedmann
    • wriedmann's Avatar


  • Posts: 2785
  • 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

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    • Page:
    • 1