Porting VO Code

This forum is meant for questions and discussions about the X# language and tools
markus.lorenzi@dvbern.ch
Posts: 114
Joined: Mon May 02, 2016 9:10 am
Location: Schweiz

Porting VO Code

Post by markus.lorenzi@dvbern.ch »

Hi Chris

thanks a lot for your explanations and your help.
I just finished the first Version of the PDF. I would be glad if you guys could have a look at it and tell me if I wrote some rubish :-)

Have a nice Weekend
Markus
Project FeserExplorer.zip
(470.23 KiB) Downloaded 79 times
User avatar
Chris
Posts: 4953
Joined: Thu Oct 08, 2015 7:48 am
Location: Greece

Porting VO Code

Post by Chris »

Hi Markus,

That's great!!! I didn't expect you would write this so quickly...

It is very nice because it shows that even though the process to port an app to X# is not a 10 minute job, at the same time with enough effort and after gaining some experience on it, it starts to become much easier and the end results really works. I think we probably need to create a section in the website for showing apps that have been ported to X# and for holding documents like that.

Just a small correction, in VO it is actually legal to use the syntax i = 1, when the compiler option "Old Style Assignments" is enabled. We just do not support this in X#, vulcan did not support it either.

Chris
Chris Pyrgas

XSharp Development Team
chris(at)xsharp.eu
User avatar
wriedmann
Posts: 3773
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Porting VO Code

Post by wriedmann »

Hi Markus,
Great to see that you had finished it!
Unfortunately in my wLib2 migration I had much more and issues, some of them also harder to explain. So it will take a week until I have finished my document.
But after seeing yours, I have decided to change the source code representation: yours is much better.
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
FFF
Posts: 1589
Joined: Fri Sep 25, 2015 4:52 pm
Location: Germany

Porting VO Code

Post by FFF »

Markus,
* are you interested in correction of typos, or is your plan to do final lectorate?
* i would refrain from repetitions, e.g. the "Assign must have parameter...", showing ONE sample is enough
* as the code parts are colored, you might change the color of corrected parts to make them more obvious
* the assign error in the registry access: you show the reason for the code - adding the parameter removes the error, but kills the idea ;)

BTW, great work!

@Chris, some wishes for xporter:
* if one copies a path into the sourcefile sle and then hits the [...] the dialog starts with current dir, i.e. ignores the path input, which is a pita...
* some option to "generally" set the path for Catoxxx files would be nice
* "sometimes" the generated proj files contain images like icons, sometimes not, didn't find a rule, but might need a look
* for folks like Wolfgang, who plan to sync Vo and X# side for longer time, it would be great, if xporter could be called e.g. from Xide, _remembering settings_, so the sync could be a one click experience ;)

Karl
Regards
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
markus.lorenzi@dvbern.ch
Posts: 114
Joined: Mon May 02, 2016 9:10 am
Location: Schweiz

Porting VO Code

Post by markus.lorenzi@dvbern.ch »

Hi Karl

yes of Course, it would be very helpful.

Markus
markus.lorenzi@dvbern.ch
Posts: 114
Joined: Mon May 02, 2016 9:10 am
Location: Schweiz

Porting VO Code

Post by markus.lorenzi@dvbern.ch »

Hi Chris

I was surprised too, when I finished the last page ... ;-)

Markus
markus.lorenzi@dvbern.ch
Posts: 114
Joined: Mon May 02, 2016 9:10 am
Location: Schweiz

Porting VO Code

Post by markus.lorenzi@dvbern.ch »

Hi Chris

just forgot this: a separate section for These ported examples would be very helpful.
An other Thing would be a section for already ported libraries which we all uf us used for decades and in my opinion it dos not make sense that everyone does the same conversions. There might only be the Copyright stuff with the paied libraries.

Markus
FFF
Posts: 1589
Joined: Fri Sep 25, 2015 4:52 pm
Location: Germany

Porting VO Code

Post by FFF »

Markus Lorenzi wrote:There might only be the Copyright stuff with the paied libraries.
Good idea! @Robert: couldn't we add our Vo/VN serial# to our accounts and control access to "special" download area by this? Maybe bound to Fox, possibly motivates the lurkers to subscribe <vbg>...

Karl
Regards
Karl
(on Win8.1/64, Xide32 2.20, X#2.20.0.3)
User avatar
robert
Posts: 4553
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Porting VO Code

Post by robert »

Markus,
Thanks for the excellent document.
A few suggestions:
  • The FONT property was renamed because there is also a Font method. Dotnet does not allow a property and method with the same name. I think it is worth mentioning this because this might happen in the users code as well
  • The error message about the DWORD(_CAST, LVSCW_AUTOSIZE) indicates that there is a conversion problem converting from DWORD to SHORT. I would change the code to cast to SHORT, and not to LONG, but in this case (the values are -1 and -2) there is no cast or conversion needed at all. So ListView_SetColumnWidth(...., LVSW_AUTOSIZE) should work as well and is much cleaner and easier to understand. In general in cases like this I would recommend to remove the CAST completely and only add a new one when absolutely necessary. The _CAST operator tells the compiler "I am smarter than you and I know what I am doing, so please treat the following value differently than you would normally do". In many cases people are not THAT smart.
  • In your code there are GUI classes that you are subclassing because you wanted to add a method. In your small app it is not a problem to rename the classes. That is not always the case. So when you are adding a new method to an existing class (so not overwriting an existing method) I would recommend using an Extension method. Only when you need to access PROTECTED instance variables then a subclass is needed.
Finally, I think it is a great idea to add a section with ported examples. We have talked about this in the devteam as well.
I am also thinking about posting videos in which we show how apps are being converted and the changes that had to be made. The video files would be shared through Youtube with links on the website. What do you think of that?

We will also add a section for upload an download of converted libraries such as the FAB tools, RightSLE and others. Sharing converted code that has a copyright is more complicated. We are thinking about either uploading "patch" instructions or even patch files.
The problem of course is that automated patch files will only work for code of a specific version. So when you already made some changes than the patch will fail.

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
User avatar
robert
Posts: 4553
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Porting VO Code

Post by robert »

Karl,

I really do not want to register VO and VN serial numbers.
But maybe you are right that we should limit the access to FOX subscribers. Let me think about this and discuss it with the guys.

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
Post Reply