Virtual Machines - X# and related VS & SQL stuff ...
Posted: Wed May 10, 2017 4:15 am
Hi Michael,
even if I'm not Phil, and not one of the VO or X# "gurus", I'll try to answer your questions from the standpoint of a longtime VO developer.
1) There is nothing like a unique DBServer object that takes care of all. In fact, SLQ database servers are much more powerful and at the same time much more complex than a simple DBF table. So be prepared to work with several classes that have different functions. For example, there are ConnectionStringBuilder classes that help you to construct a connection string, and you are not forced anymore to write it by hand like in the VO SQL classes.
2) I don't know the possibilities of Visual Studio to design your SQL database structure, but of course there are visual tools to build your databases, and for some you can spend a lot of money. Personally I'm using Navicat Premium Essentials as I have several SQL databases to maintain (from MySQL to MS SQL, Oracle to SQLite)
3) X# is a new language built on the Vulcan syntax and Vulcan was built on the VO syntax - like VO was built on the Clipper syntax. VO has introduced a lot of new language features over Clipper, and so Vulcan has added new language elements over VO, and X# has added even more. You don't need to use them all, but the more you explore the possibilities of the language, the more you will need (and understand) them.
"local implied" is a local variable which type is "implied", i.e. the compiler knows what type it is and so you can save time to write the "as" clause. Personally I have decided to not use it as I feel code is harder to read.
4) If you have decided for WPF, you have decided for a lot of frustrations and really a lot of fun. The concept of WPF is more like HTML and less than Windows API/GUI. Is is very dynamic, and IMHO a graphical editor will never been able to accomplish what you can do (the same is true for HTML). So if you decide to use WPF, most likely you have to learn also XAML (I have decided to write my WPF code by hand, but I think it is the harder way). Any way, WPF takes the binding concept we know from VO's DataWindow much, much further.
In your message, I'm missing a 5) point: MVVM. If you use WPF without MVVM, you will miss a lot.
When it comes to MVVM, personally I have found only a few books that really helped me. Some time ago, I have tried to build a list of books that helped me:
https://www.riedmann.it/blog/?p=168
It took me more than two years to understand the most important concepts of this entire new world, and I have to confess that I'm far from understanding it all. My first WPF/MVVM software is about to go in production next week - it took months more than planned.
But if you are willing to take this adventure, you will discover a new fun of programming!
Wolfgang
even if I'm not Phil, and not one of the VO or X# "gurus", I'll try to answer your questions from the standpoint of a longtime VO developer.
1) There is nothing like a unique DBServer object that takes care of all. In fact, SLQ database servers are much more powerful and at the same time much more complex than a simple DBF table. So be prepared to work with several classes that have different functions. For example, there are ConnectionStringBuilder classes that help you to construct a connection string, and you are not forced anymore to write it by hand like in the VO SQL classes.
2) I don't know the possibilities of Visual Studio to design your SQL database structure, but of course there are visual tools to build your databases, and for some you can spend a lot of money. Personally I'm using Navicat Premium Essentials as I have several SQL databases to maintain (from MySQL to MS SQL, Oracle to SQLite)
3) X# is a new language built on the Vulcan syntax and Vulcan was built on the VO syntax - like VO was built on the Clipper syntax. VO has introduced a lot of new language features over Clipper, and so Vulcan has added new language elements over VO, and X# has added even more. You don't need to use them all, but the more you explore the possibilities of the language, the more you will need (and understand) them.
"local implied" is a local variable which type is "implied", i.e. the compiler knows what type it is and so you can save time to write the "as" clause. Personally I have decided to not use it as I feel code is harder to read.
4) If you have decided for WPF, you have decided for a lot of frustrations and really a lot of fun. The concept of WPF is more like HTML and less than Windows API/GUI. Is is very dynamic, and IMHO a graphical editor will never been able to accomplish what you can do (the same is true for HTML). So if you decide to use WPF, most likely you have to learn also XAML (I have decided to write my WPF code by hand, but I think it is the harder way). Any way, WPF takes the binding concept we know from VO's DataWindow much, much further.
In your message, I'm missing a 5) point: MVVM. If you use WPF without MVVM, you will miss a lot.
When it comes to MVVM, personally I have found only a few books that really helped me. Some time ago, I have tried to build a list of books that helped me:
https://www.riedmann.it/blog/?p=168
It took me more than two years to understand the most important concepts of this entire new world, and I have to confess that I'm far from understanding it all. My first WPF/MVVM software is about to go in production next week - it took months more than planned.
But if you are willing to take this adventure, you will discover a new fun of programming!
Wolfgang