Best solutions for converting known/often used VO libs to X#?

This forum is meant for questions and discussions about the X# language and tools
User avatar
wriedmann
Posts: 3757
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Best solutions for converting known/often used VO libs to X#?

Post by wriedmann »

Hi Karl,
the new GUI classes are not more Windows API based, but Windows Forms based, so I cannot think they are 100% compatible when there are massive enhancements using the Windows API (like bBrowser).
Try to play a bit with the current version....
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
FFF
Posts: 1581
Joined: Fri Sep 25, 2015 4:52 pm
Location: Germany

Best solutions for converting known/often used VO libs to X#?

Post by FFF »

Ahem, "try"? Is there already something available?
Regards
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
ic2
Posts: 1858
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Best solutions for converting known/often used VO libs to X#?

Post by ic2 »

Hello,
FFF wrote:as we hope to see sometime now the new VoGUI, may i suggest not wasting time to migrate an outdated lib, but only steal the goodies from it to enhance the VoButton?
I am not against Karl's idea unless Fabrice would be able to get a a HoverButton conversion pretty quick. But it's a lot of low level Win32 stuff. This is what I can set which is impossible in a PushButton:
Hover.jpg
Hover.jpg (45.56 KiB) Viewed 663 times
What you can see is that an icon is added to the button (this icon has been set in the previous tab (General), Inherit From hPBOk, a pushbutton with a green tick on it) and also that if you hover above a pushbutton it gets a different colour.

I think if there's a way to do this in the X# VO screen pushbuttons then this would be great an we can dump Hoverbutton. But remember that we can not use Winforms goodies as Winforms won't work with bBrowser. It should be possible in VO style forms.

Nevertheless, I'll resend the AEF to you Fabrice in case you may be able to convert this faster than I can..

Dick
User avatar
wriedmann
Posts: 3757
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Best solutions for converting known/often used VO libs to X#?

Post by wriedmann »

Hi Karl,
you can download the source project from Github and build the DLL yourself - I have done that several months ago when I played with it.
And I can say that I was really impressed how complete this library already was - I was able to build several VO samples including the Pizza sample with it.
I was really curios because I had tried to build a subclass of the System.Windows.Forms.Form class with a similar functionality as the VO GUI classes, but my approach don't worked, so I spent about a day playing with the new GUI classes.
The development speed with the VO GUI classes is so terribly better than with Windows Forms or WPF, so the VO compatible GUI classes will have a long live (we have already developed two new custom applications using X# and the VO GUI classes, both in production).
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
ic2
Posts: 1858
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Best solutions for converting known/often used VO libs to X#?

Post by ic2 »

Hello Wolfgang,

I think I check this forum about daily, but I can't remember having seen anything about a completely new VO GUI class except the 2019 announcement of a Unicode SQL/VOGui class for August 2019, now planned in "What's cooking" for the longer term. I can't find it explicitly in GitHub either. What do I miss or where? So I have lots of questions, like:

1) I can imagine that VO forms are easier than WPF but I would say that Winforms and VO forms are about the same to create?

2) What is this new GUI class supposed to do (differently)?

3) I thought it was already possible to export VO forms as Winforms. That would make sense to me and I would do that if we didn't have so much specific code for bBrowser, or if bBrowser would work on Winforms. But what is the use for an update VO Forms GUI which is not compatible with widely used tools like bBrowser?

4) And speaking about converting to Winforms: how it that supposed to work? I XPorted the South Sea Adventures sample with Generate Windows.Forms.. .on. I then get a separate directory with .prg & resx files which seem to duplicate the same VO forms higher up in the solution tree. But I can edit them as I can do Winforms, but e.g. adding an icon to a pushbutton (Properties, at Image click the ... button, and then I get a Value can not be null. Parameter name:docData error while this works for a freshly added Winforms form. And

5) when I change something on the Winforms and save it is not changed in the same VO form. What is the use of 2 different kind of forms for the same form in 1 program?

So I am totally confused now about what is working now (apart from full VO forms) and what will change and what will and what won't be compatible (read: bBrowser)!

Dick
User avatar
wriedmann
Posts: 3757
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Best solutions for converting known/often used VO libs to X#?

Post by wriedmann »

Hi Dick,
I have heard about this library, I don't remember exactly when, and about a year ago I was searching for the source code, and found it on GitHub:
https://github.com/X-Sharp/XSharpPublic ... lasses_SDK
After that, I have played about a day with these sources, and was very impressed what I found.
If I remember it correctly, Robert also showed a sample in one of his online sessions.
And in my current X# redist folder there is a DLL named "XSharp.VOGUIClasses.dll".
And please let me answer now your single questions:
1) I can imagine that VO forms are easier than WPF but I would say that Winforms and VO forms are about the same to create?
creating a form may be some work, and at least in my experience creating a VO form or a Windows Forms form is the same work, whereas WPF takes much longer because it is more flexible. But the development speed is not about designing forms - that is the part that takes less time. It is about input control, data validation and linking, and there the VO GUI classes deliver a lot of things that need to be written also for other GUI classes.
2) What is this new GUI class supposed to do (differently)?
the new GUI classes are not using the Windows API to build windows and controls, but are based on Windows forms, so they are Unicode and AnyCPU per default (impossible for the VO GUI classes that are full with pointers and more low level code).
3) I thought it was already possible to export VO forms as Winforms.
let me answer your questions from 3 to 5 in one: as I wrote before, programming a business application is not only designing a form, but all the logic that makes it work.
Writing a converter for VO windows is not a hard job, it has been done by Paul Piko several years ago for its FaceLift tool for with both WPF and Windows Forms targets, and I think that I would be able to to write such a thing in a few days (for my own purposes).
But the real work cames after: move all the logic, validation and business logic to the new GUI.
We are used to put validations rules and business logic in the windows code, (far away from the principles like MVVM or even a clear separation between a data, a presentation and a business logic layer), and we are able to build well working applications in short times, many of them in production for more than 20 years.
Moving these constructs to Windows Forms or WPF is an effective rewrite of the applications, and I cannot afford that.
Writing applications with the VO GUI classes is terribly efficient for both us (we are able to earn money because of low development times) and the customer (he receives working applications for relatively low prices).

The new GUI classes are supposed to replace the VO GUI classes by simply replacing the GUI classes library in your application (and of course some tests and adaptions), but the entire process should be ages faster than rewriting the application, and after that you have really a Windows Forms based application and can also use one of the controls collection that you can buy for a lot of money.

Wolfgang
P.S. in the next days I will put things together and post a sample somewhere.
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
ic2
Posts: 1858
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Best solutions for converting known/often used VO libs to X#?

Post by ic2 »

Hello Wolfgang,

Thanks for the extensive reply. Main remaining question is: is this renewed VOForms lib able to use bBrowser? I understood you wrote it does not in which case most X# users will be stuck in the future with an outdated X# version because, as I understand, many VO users use bBrowsers and hence an X# conversion keeping VOForms & bBrowsers seems a logical way.

Dick
User avatar
wriedmann
Posts: 3757
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Best solutions for converting known/often used VO libs to X#?

Post by wriedmann »

Hi Dick,
of course bBrowser need to be adapted to these classes to work.
If this adaption is made, does not depends on me, but on Joachim Bieler and the X# development team.
Of course as bBrowser user I'm highly interested in this project (but I have to confess that I'm using more and more ListViews instead of the bBrowser, specially with SQL data sources).
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
ic2
Posts: 1858
Joined: Sun Feb 28, 2016 11:30 pm
Location: Holland

Best solutions for converting known/often used VO libs to X#?

Post by ic2 »

Hello Fabrice,

A month ago you have put HoverButtons again on your ToDo list.

Can you let me know the status?

Basically we are very close with one project to either change 120 HoverButtons to PushButtons but preferably to use a converted class.....


Dick
leon-ts
Posts: 435
Joined: Fri Feb 03, 2017 1:43 pm

Best solutions for converting known/often used VO libs to X#?

Post by leon-ts »

Hi Dick,

I can only say for DotNetZip. We even use it in VO. To do this, we wrote a wrapper for it in the form of COM interop. When we moved the code from VO to X#, the COM layer is no longer required. Thus, DotNetZip is a proven option.

We do not use the rest of the set of third-party components popular in the VO community (bBrowser, ReportPro, etc.). For all these purposes, we have developed our own components long ago, including the entire graphical user interface (via ownerdraw). And they have been successfully transported to X# as well.

Best regards,
Leonid
Best regards,
Leonid
Post Reply