Clarion 12 is released

Details, details, details. Very much appreciated.

The 11.1 settings are “Stored” in the Configuration directory. That’s normally C:\Users\YourUserName\AppData\Roaming\SoftVelocity\Clarion\11.1 but that folder can be set by a command line parameter. I do that so 11.1 is separate from 11.0.

What Bruce suggests is to open on 11 and 12 the Tools menu “Options…” and “Application Options…” windows, then to visually compare the settings and edit. That is what I did.

Doing a comparison of ClarionProperties.XML and other XML files between the 11 and 12 Configuration folders will likely highlight some differences missed, so a good idea … to compare.

They don’t all line up well. Maybe there is an XML compare tool that would sort them for a perfect compare. I would never simply copy the XML files over from 11 to 12. I might edit or move single parameters in the XML. If you do edit the XML make sure the IDE is closed and have a backup copy.

2 Likes

I bought Clarion 12 Anyscreen and many templates. As promised, I did not receive any updates. C12 has been a complete disappointment for me. If Unicode support is not enabled for font and charset: Cyrillic, Charset: Turkish, it does not work correctly. In other words, within the same table, while one record in a column can be written in Russian, I cannot write another record in Turkish. Therefore, instead of Unicode, Monocode support has been added. I purchased Anyscreen twice, hoping there would be an update. I paid 800$ for the first purchase and 1,000$ for the update. However, for the past year, I have not received a single update. I wrote an email to Softvelocity saying, ‘How will you remedy our grievance? You have unjustly charged for updates but did not deliver what was promised.’ But they didn’t even bother to respond to that. The most important problem with Anyscreen is that I cannot run my applications independently nor can I integrate them into my website. There is a taskbar and a settings button at the top that I just cannot remove. There is also the ‘start app’ screen that opens up if the application is accidentally closed instead of pressing the exit button, which I have to use to log back in. Why am I not allowed to use Anyscreen freely when I bought it twice? Why can’t I choose what should be visible and what shouldn’t? Why can’t thousands of people access and use my applications at the same time, just like on normal websites? On a server with 16GB of RAM, a maximum of only 300 users can log in.

Hi Akin,

At the moment it’s not clear what is required to enable Unicode in Clarion 12. We are awaiting more information on that. I presume there is a way, I’m just not clear on what it is yet.

For most of your AnyScreen questions I recommend contacting Marco directly, or using the AnyScreen forum on the News groups. There don’t seem to be too many Anyscreen users here. I suspect most of your questions can be answered there though.

This is fundamental to the way Anyscreen works. Broadly speaking, you can have “1 click desktop to web app” or you can have scalability, but not both. To get the “one click desktop to web” solution, the application server has to fire up an instance of the desktop application for each user. This consumes some number of resources, which remain in use as long as the user is connected. This approach gives you massive convenience (desktop app to web app) but since each user is “hardware heavy” there’s always a finite limit on how many users any single server can tolerate.
You can of course roll it out o multiple servers.

The second approach to web apps is more scalable, but requires a lot more work to convert your app to the web. This was the approach NetTalk took. It’s a lot more work to make an app work under NetTalk, but because there’s no need to make an instance of the program per user, the resources are a lot lighter, which in turn means thousands of simultaneous users are possible on very modest hardware.

Cheers
Bruce

1 Like

I am skipping the topics related to Anyscreen. In the attached photo, you can see a simple program I created with C12. When I select CHARSET:Turkish in the font I use on the screen, Russian characters are not displayed correctly. When I select CHARSET:Cyrillic, Turkish characters appear as question marks. What I understand by Unicode is that, regardless of the font, I can write Russian text in cell A1 and Turkish text in cell B1 in an Excel sheet. If C12 has Unicode support, can you please explain the attached image to me?

Unicode is a mapping, not an encoding. So when we talk about strings, we need to know what encoding they are using. At the moment this program is using ANSI encoding with a code page.

As I said earlier we do not yet know how to make the program use a different encoding in a string, or on a window. We don’t know what encodings are supported. At this stage we don’t know if it’s possible or not. We are all waiting for more information.

1 Like

Here at work we adopted TS Plus as a way to have our apps in the web.
It’s better than MS Terminal Services in needed resources and you can have a farm of Windows servers with load balancing.
Just install TS Plus on a Windows server, configure it, copy you app into the server, and your users will use your app into a browser.
We don’t have so much users as you, but it works very well.

3 Likes

In the entire world of programming options that a developer may have to consider there are a few possibilities… UTF 8, 16 or 32 … LE BE

For Clarion 12 its pretty simple, just ONE. It must support Windows flavor Wide Strings that are Little Endian UTF-16. The word “Unicode” in Windows dev has an implied meaning of UTF-16.

These W strings are at the core of the Windows OS. They are seen in W API calls as WCHAR PWSTR PCWSTR types. All the GUI controls use them. In .Net languages (C# VB etc) all use the same UTF-16 wide strings as their base STRING type. COM strings are the same. Everything is UTF-16 inside the Windows OS. All the ANSI “A” functions are wrappers that convert to Wide strings, then call the “W” functions.

We need it to easy in 12 to define Wide Strings, assign UTF-16 or ANSI values, then call a “W” function like

MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType)

This was shown in the 2017 blog post about Unicode that used the USTRING type.

None of this is in the Clarion 12 first release. It’s really 11.1+ or 11.2 and we’re waiting for Check for Update to deliver.

2 Likes

I wish it were that simple. :slight_smile: And I’ll preface this rebuttal by pointing out that there is really no “one right way” for clarion users. Different encodings exist for different use cases (for a reason) and we need to be familiar with all of them.

Yes, All the Windows API’s use utf-16 as their encoding. But of course we don’t (tend) to use API’s directly. They’re mostly in the RTL, or some class etc.

Outside of Windows though, the world mostly runs on utf-8. Web pages, JSON, XML, databases, Excel and so on, all favour utf-8 as the preferred encoding. Mostly because it is more compact (lower storage and memory needs) and also because it is backwards compatible with 7 bit ASCII.

So programmers need to be comfortable converting from one encoding to the other. And ideally the language facilitates that. One of the benefits of using a StringTheory object is that it can be any encoding you want. So you can easily use them as the source (or destination) to Windows API calls, or as the recipient of data from a database, or for parsing say JSON.

Direct Windows API calls are really the least of our worries. As are external things like JSON etc. The only thing we really care about are the things inside the RTL. (everything outside the RTL can be solved externally.) The RTL however controls the WINDOW and REPORT structures, and the critical issue right now is in being able to use any encoding at all on those. Frankly at this point I really don’t care which encoding it is.

When discussing data or strings I prefer not to use the term “unicode”. It introduces ambiguity, and that seldom ends well, and is the source of many bugs. It’s better to talk in terms of utf-16 or utf-8 because ultimately we will need to deal with both of them, and being able to understand they are different will reduce the opportunities for confusion.

1 Like

Well…

  1. I try to install C12 on new pc but it wouldn’t work, had to install C11 first
  2. uh, this looks like bigger issue, it compiles apps but none of my mayor app (bigger ones) won’t finish compile, sometimes it just stucks in process, sometimes looks like it will finish (generation stops, writes eventually warnings, 0 errors) but exe is not generated

Your issue #1:

The SoftVelocity C12 installer appears to be missing a redistributable component. As a result, C12 fails with a “System.IO.FileNotFoundException” error on a clean Windows machine. I have created a quick fix for this issue. Simply download and run it on affected machines.

https://www.setupbuilder.com/downloads/C12_redist.exe

3 Likes

What about issue #2, stuck in compile, has enyone experience this problem? So now on clean brand new laptop fresh C12 install and seems that bigger apps won’t compile. I try with C11 on same pc, it works. C11 also sometimes (on different pc, rearly) used to stuck while compile but then i try to close clarion and it would immediately continue (then click on cancel closing), yeah it worked. I thought it was some compatibility problem pc vs clarion, now with completely different cpu, hdd, windows version… same thing but it’s way worse on C12.

EDIT: now i see it actually generates exe but it can’t run it “The Application has failed to start because its side to side configuration is incorrect…”

… that works like a charm! Ran it before 12 and the install was flawless.
Thanks, Friedrich!!!

2 Likes