xsharp.eu • Porting VO Code - Page 3
Page 3 of 4

Porting VO Code

Posted: Fri Jul 21, 2017 8:47 pm
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 76 times

Porting VO Code

Posted: Fri Jul 21, 2017 10:31 pm
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

Porting VO Code

Posted: Sat Jul 22, 2017 5:57 am
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

Porting VO Code

Posted: Sat Jul 22, 2017 7:44 am
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

Porting VO Code

Posted: Sat Jul 22, 2017 7:48 am
by markus.lorenzi@dvbern.ch
Hi Karl

yes of Course, it would be very helpful.

Markus

Porting VO Code

Posted: Sat Jul 22, 2017 7:49 am
by markus.lorenzi@dvbern.ch
Hi Chris

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

Markus

Porting VO Code

Posted: Sat Jul 22, 2017 7:56 am
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

Porting VO Code

Posted: Sat Jul 22, 2017 8:11 am
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

Porting VO Code

Posted: Sat Jul 22, 2017 9:18 am
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

Porting VO Code

Posted: Sat Jul 22, 2017 10:38 am
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