xsharp.eu • Clipper Summer'87
Page 1 of 3

Clipper Summer'87

Posted: Fri Jul 09, 2021 6:46 pm
by Clipper
Hello, I am 59 years old now. Between 1990 and 1995 I was Clipper & dBase IV programmer. Since then did not programmed anymore. Now I would like to remember the young years and would like to start educate myself again but I am not sure where to start - x Sharp, xBase++ (Alaska), FoxPro, Visual Object, etc. Can somebody help me to decide what is actual and in question and where I can earn some money and at the same time have some fun programming again? Thank you in advance for your feedback!

Clipper Summer'87

Posted: Sat Jul 10, 2021 3:42 am
by wriedmann
Hi Michaylov,
welcome here!
First of all: times have changed, and MS-DOS is gone. If I speak for myself (currently I'm 58 years old and make my living programming in VO and X#), in this time I have made two big steps: first from Clipper 5.x to Visual Objects, learning object orientation, Windows and event driven programming, and then the step to the .NET Framework, MVVM and WPF.
About the choices you have: today I would not start again with Win32, but use the .NET Framework.
So X# is the only choice. Then neither Visual Objects nor VFP is available officially, (if you don't search for used licenses), and X# is free too.
X# has another advantage: it is very well supported by the development team here and some forum members.
So I would start with X#, install XIDE and start to play a bit.
IMHO XIDE is better suited for a beginner than Visual Studio, but you can try also Visual Studio.
X# has some examples, and maybe you can find some code samples also on https://docs.xsharp.it
And then: happy programming!
Wolfgang

Clipper Summer'87

Posted: Wed Jul 14, 2021 7:21 pm
by Clipper
Thank you Wolfgang for the quick and detailed answer!
I did not understand a lot of abbreviations in your answer, but in general your suggestion is to start learning x#, using the XIDA editor. I suggest that .NET is 64 bit library, that's why you are suggesting to use this instead of Win32. I also found a tutorial about how to create Windows Presentation Foundation, using Visual Studio:
https://docs.microsoft.com/en-us/dotnet ... %20More%20

I am still not sure what is the purpose of X# - is this a front end programming language or more database handling language?

Clipper was a programming language for manipulation dBASE tables from the monitor, but I am not sure where is the area of application of X#?
In addition there are different modifications like xHarbour, xBase++ from Alaska, Visual FoxPro, which are concurrence for X# I guess.

The statement on the following link is confusing me even more:
https://www.xsharp.eu/help/index.html

it states:
"
X# is an open source development language for .NET, based on the xBase language.
It comes in different flavors, such as Core, Visual Objects, Vulcan.NET, xBase++, Harbour, Foxpro and more.
The current version of X# supports the Core dialect as well as the VO, Vulcan and Harbour dialect
"

I guess I have to orient myself on Core version, or?

Here is the link to Wikipedia description of X#:
https://en.wikipedia.org/wiki/XSharp#:~ ... 0compilers.

However, where on the internet can I find examples and tutorials for creating X# applications?

Thank you in advance for your answer!

Clipper Summer'87

Posted: Wed Jul 14, 2021 8:52 pm
by ic2
Hello Michaylov.

Let me try to give you a few answers, otherwise Wolfgang all has to do it :)

Visual Objects could be called the Windows version of Clipper. Originally you could even run your Clipper programs in it unmodified, although it didn't look as a Windows program at all. You needed to learn object oriented programming and you could use the built in Windows options, like windows and it's controls, menu's, printer drivers and much more. But the syntax of the Clipper commands and functions remained more or less the same.

When .Net became "the future", Grafx sofwware, the product owner of VO at that time, started to develop a .Net version of VO, allowing direct use of everything available in .Net. A clever program, called the Vulcan Transporter, created Vulcan programs from VO programs. Like in VO using Clipper code, you were still using VO forms and menu's but this is less different than the .Net flavours Winforms and WPF. Furthermore, these could be mixed. And the language could still look very much the same, too.

Despite its huge merits to the continuity of the VO language, Grafx failed in the end to deliver as promised. Paid describers, promised multiple new versions, got these less and less. Robert v.d. Hulst, one of the external subcontractors for Vulcan, eventually tried to take over Vulcan and when the product owner did not react with a reasonable offer, he decided to create X#. The other team members quickly joined him and Grafx finally went out of business.

It started by using the Vulcan DLL's, for those who owned it but nowadays you can use X# without Vulcan, the Core version. Part of X# is still the DBF system and of course all the DBF manipulating commands, and there's also an X# native DLL which directly connects to ADS. And there's a much more elaborate converter, here called th XPorter or VOPorter, which can convert VO and Vulcan code. Besides the Clipper/VO/Vulcan users, (Microsoft) Fox users also have a migration path, after all FoxPro was just another XBase language using DBF databases.

X# is built around the Rosalyn compiler, which means that many of the high end .Net functions like those present in C#, can be used about the same in X#. So your project can contain code which still looks not too different from Clipper and at the same time code which more looks like a modern C# program. And you can mix any language by using Visual Studio and creating a project for each language in 1 solution. So you basically have a front end language and a database handling language in one. You might want to skip DBF completely and use SQL, PostgreSQL is recommended and a few regular contributors here like Johan Nel have a lot of knowledge being shared here.

Here's a 32 page paper with much more detail, also the history: https://saltydogllc.com/wp-content/uplo ... -Sharp.pdf

.Net Core is indeed your choice if you do not have VO or Vulcan.
If you choose WPF you may want to use Visual Studio (free for smaller companies in the Community version) as there's no WPF editor in Xide (written by XSharp Development Team member Chris Pyrgas) . You will see that you can design there a window in WPF by dragging controls, like buttons etc to a screen, but in the background XAML code describing the screen is used. It is very powerful and flexible (you can create elaborate animated windows with most code in XAML instead of X# or C# code) but often more difficult to handle than Winforms or VO compatible forms). If you are fine with writing your screens and menus etc in XAML without having a design screen, XIDE will do and is more friendly than Visual Studio. Personally I use VS but I dislike it as I consider it far less usable than VO. Others completely disagree with me for incomprehensible reasons :P

Note that the latest programming techniques look very different than you are used to from Clipper but not all are necessarily better. For example:

In Clipper, you describe in a program where in the text based screens your screen content had to appear, and improvised some menu, usually by entering a number of choice to continue with the next screen.
In VO, you would drag controls on a screen and the actual size of the window could move or resize the content, for exampling enlarging a box while keeping other controls the same size. If the user presses a button, or some Windows event is called (like a timer, or when the user leaves a field), a method programmed behind that Pushbutton or for such an event, is executed.
In .Net, you might want to separate your program logic from the window design. MVVM is such a design pattern, where you assign values to properties which will "find their way" to those parts of the window designed to collect changes in these properties "themselves". Drawback is that it's more code to write and less insight in what is actually happening but you might want to consider using that. I would certainly not begin with it however (and personally I use it only in some specific situation). Look for posts of Nick Friend who is an absolute expert in applying MVVM "by the book".

I would start with choosing XIDE or VS and just create some windows and try to program some actual functionality. Also read Getting Started on https://www.xsharp.eu/help/introduction.html . There are some nice free conferences on the YouTube Channel X# Academy which you can watch. See https://www.xsharp.eu/itm-downloads?fol ... sentations. You can find examples on https://www.xsharp.eu/examples.

Indeed you can use X# for free. The development is financed by users who pay a yearly for Fox (Friends of X#). I've personally experienced more than once that e..g. Chris has checked a mailed solution with an issue I had worked on for hours where he could find the cause in a much more acceptable time. Sometimes it was an X# issue, followed by a workaround and, later, a fix in the new version, but not always. Fox is much more than this and if you are really working in X# I'd say you should consider joining.

Lots of visitors here like to help so this is a much more concerned user group than of most of other languages.

I hope I have given some replies. Please keep asking!

Dick

Clipper Summer'87

Posted: Thu Jul 15, 2021 4:20 am
by wriedmann
Hi Michaylov,
a part from the long answer by Dick I'll try to give you a short answer:
- Clipper was a compiler and a set of libraries that let you create database applications out of the box, without needing other tools (but there were many 3rd party tools you could use)
- X# is a compiler and a set of libraries that let you create database application out of the box, without needing other tools other than the .NET Framework that is delivered with the Windows operating system and its updates.

But the programming world has changed a lot since the times of Clipper where the DOS operating system does not delivered many functionality other than access to the disk and a 80x25 characters screen.
These days we have SQL and non SQL databases, webservices, components, web applications and many other things a business application may need to connect and/or interact.
Also the expectations of the users have changed a lot, we have to deal with small screens (from 10") to large high-DPI screens (34") and multiple monitor setups, so the increased complexity needs more evolved principles like object orientation (introduced also by Clipper 5.x), MVVM (model-view-view model), and the concept of frameworks (think of it as large component libraries that need much more time to learn than to learn a programming language).
My personal opinion is that you can start programming with any language you like - but what you have learned many years ago will not help you much as the programming world has changed a lot.
Wolfgang

Clipper Summer'87

Posted: Thu Jul 15, 2021 4:54 am
by Sherlock
Hopefully shorter still, Clipper Vo, X#.. I assume at 59 you are not going to enter the commercial market and be a full time developer and a web developer. A tough journey against the competition that exists. The answer what are you aiming to build and is it just educational and fun. Clipper is dead and VO for some still good but Web and .NET is where it is all at these days.

Clipper Summer'87

Posted: Thu Jul 15, 2021 5:38 am
by wriedmann
Hi Phil,
short and precise... but it is what I think also.
My .NET learning process took years, was hard and sometimes I felt really stupid, but I think I made it (I'm 58 now).
Wolfgang

Clipper Summer'87

Posted: Thu Jul 15, 2021 3:10 pm
by Clipper
Thank you all for the answers!

@dick,
just to summarize: as I have no code written in VO or Vulkan, I do not need to take care of any elaborate converter, right?
However, here is the first sentence in the document provided by you:
"Would you be interested in a product that compiles your existing Visual FoxPro projects into .NET code?"
This is not my case.
I just search for a clean start in programing language and I started by investigating the successors of Clipper.

@Wolfgang, do I understand you right - beside x# I need to invest a lot of time examining and learning .NET libraries?
How to do this? What to begin with - learning theory of .NET or start writing code or join and supporting some project teams, already working on such a projects?

What is confusing me generally is where to start?
I already have installed visual studio code and tried some html and css codes only to learn the syntax of HTML 5.

What am I asking myself is - where is the application area of x# and who are the competitors of this programming language? Is there a documentation, a user manual which to follow in order to become a x# developer?

Clipper Summer'87

Posted: Thu Jul 15, 2021 3:12 pm
by Clipper
If you choose WPF you may want to use Visual Studio (free for smaller companies in the Community version) as there's no WPF editor in Xide (written by XSharp Development Team member Chris Pyrgas)

I do not when and how to use WPF and what is the difference in code with WPF and without?

Clipper Summer'87

Posted: Thu Jul 15, 2021 3:59 pm
by ic2
Hello Michaylov,
I just search for a clean start in programing language and I started by investigating the successors of Clipper.
Correct; converters or Fox are basically not interesting for you then. But I provided the info so you have an idea how elaborate the X# project became.

About WPF: see my long reply, it's one of the 2 UI (Windows) flavours of .Net besides Winforms, while X# also offers the native (VO based) windows, which are, in the background, converted to Winforms.

It's up to you to decide which form to choose, provided that your application needs forms on a desktop/server at all .

If you are trying html+css, are you aiming web programs? Because that is a whole different story. Depending on what you want to do with it, you will probably want to use script based languages like PHP or Javascript. On a Windows server you can also use ASP; the "code behind" can be a .Net language like C# and no doubt X# will work too.

Dick