Category Archives: Clarion News

Clarion.Net update

The AppGen for Clarion.Net is making steady progress (despite a few wild rumors to the contrary).  It’s a given that the progress is much slower than we would like, and in moment I’ll explain why that is the case. The core of Clarion.Net just like Clarion Win32, is not the AppGen, but is the Clarion language and Clarion runtime function library.  For those who are willing and capable of writing their own code (as opposed to generating it), Clarion.Net has long been both productive and complete. Let’s take stock on what we have now.

Well first and foremost we have the Clarion language, extended to be able to take full advantage of the .Net Framework while maintaining compatibility with Clarion syntax and language features. Let’s not underestimate the importance of this. I know there are those developers who claim they don’t care what the language is, but they are the minority. For most of us, the language we read and write to build our applications has great significance.

Next we have the Clarion Runtime, every function we have in Clarion Win32 we also have in Clarion.Net. The entire runtime has been ported to 100% verifiable .Net code with the exception being Window structures and the corresponding Accept loop and its related functions. So we lost Window structures, but did we gain anything in the trade? Yes we did, we gained the ability to seamlessly work with any add-on UI component library available. As you know Window structures are constrained to the core set of controls that we have had since the introduction of the Clarion for Windows product. Not so for Clarion.Net, the world of add-on controls is now wide open. And when we talk about the Clarion runtime let’s not overlook that this support encompasses the Clarion Driver technology. Driver support is bread and butter for most of us.

Is there anything else? Can we ignore what might well be the most important reason for some? Clarion.Net enables you to use you existing Clarion knowledge to build and deploy .Net applications for all of the platforms supported by .Net (Desktop, Web, and Mobile). Of course you could pick up a new language, and in a few years be a master of it. But your knowledge of the Clarion language shouldn’t be taken lightly, it’s a valuable asset.

Is that all? You have access to the entire.NET Framework and all of its classes and methods, including XML Web service classes. You have painless interoperation with both COM and native code Libraries. Clarion.Net programs and code can be integrated seamlessly with any other .Net languages; inheriting from classes created in other languages, invoking and being invoked by methods written in other languages, in other words you can use any library written in any .Net language, the same as if it were written in Clarion.Net. And the reverse is true.

So that’s what we have now, but what we’re missing is the code generation that separates Clarion from all competitors. As you may know the template language used in the new AppGen.Net is a complete departure from the syntax used by the templates in our Win32 Application Generator.  In place of the Clarion template language we use an extended set of T4 template directives. The extended set of T4 template directives include equivalents for our #PROCEDURE, #CODE, #GROUP, #CONTROL, #EMBED and #AT and #EXTENSION directives as found in our Win32 template system. And there is the root cause of the delay. The T4 engine has many advantages for generation of .Net code – but it’s primarily capability by design is for generation of individual classes and code snippets. The base premise of Clarion code generation is one of round-trip code generation, embedded code within the generated code block, generation of entire applications, and at the core, an Application tree that represents the structure and relationships of procedures within the application.  We very badly underestimated the complexities of imposing this required functionality onto the T4 engine, and it cost many more man-hours than we projected in our most generous estimations. We apologize for that, as we know a lot of Clarion users are purely AppGen developers, and are not going to be productive without the code generation functionality. But on the plus side, we now have the prerequisite functionality working, almost completely. And our stated plan to make the templates available on a public subversion repository so that users have instant access to updates and fixes, and have the ability to contribute new features and fixes (or even new templates and template sets) remains central to our plans (both for .Net and Win32).

The long-term goals remain unchanged; to create a code generation environment that opens the doors to WinForms, WebForms. Compact Forms, WPF and Silverlight. And in fact beyond those platforms, the new AppGen will open a path to Android and iOS. In order to get it into your hands faster, the initial templates will scale back on some of the optional features like the option to generate test cases (nUnit) for aspects of the APP. That can added later, by us, or by the community.

In the interim before the release of the AppGen for .Net we’ll be releasing an update to Clarion.Net that has a number of fixes and delivers the new technology that allows you to easily expose Clarion.Net methods to your Win32 Clarion applications.


Clarion 8 – New UI features

Clarion 8 has a number of very important enhancements to the IDE, those have been talked about before, and shown on ClarionLive. Version 8 also has a number of new UI features introduced into the RTL. In no particular order here they are:

Three-state Checkbox controls

Checkbox controls now provide an optional third state.  The CHECK control can offer either two states (ON or OFF) or three states (ON, OFF and INDETERMINATE).
By default, when the CHECK is unchecked (off) the USE variable receives a value of zero (0); when the CHECK is checked (on), the USE variable receives a value of one (1), and when the CHECK is in indeterminate state the USE variable, by default, receives a value of two (2) . The VALUE attribute can be used to change the default ON/OFF values, and set the USE variable to other values. You can also use the runtime properties PROP:TrueValue and PROP:FalseValue.

If the STATE3 attribute is enabled then you have a three-state checkbox.  You can specify the value the USE variable receives in the Designer or at runtime with PROP:State3Value.

Three-State Check controls; Win 7 on the left and XP on the right

Another feature that applies to both CHECK controls and OPTION controls; both now support a ReadOnly property.

Gradient support on Toolbar controls

All of the existing implementation for creating gradients are now supported for Toolbar controls.  You can create much nicer looking Toolbars though I’m make no claims about my artistic ability, I think this looks pretty good:

Gradient support for PANEL and BOX controls

Same here, all of the existing implementation for creating gradients are now supported for BOX and PANEL controls.

PROP:NoTheme

When the Sheet/Tab control was updated to support OS Themes most users were pretty happy, but those who liked to use their own Colors were not as happy. In Clarion 8 we have introduced a strategy that allows your program to be manifested (i,e use the the OS theme), but with Prop:NoTheme applied to a SHEET control, you can set the colors for the SHEET and for individual Tabs.

There is also Global Template support to apply PROP:NoTheme to all Sheet/Tabs in your application.

Slider control

Version 8 introduces support for the SLIDER control.

New RTL implementation for disabled images and icons

In this case the images say it all

Using an Icon image:

Using a JPG image:

As you can see lots of nice UI improvements for your end users.

Clarion Newsgroups are moving to a new provider

Over the next 24 hours we’ll be moving the newsgroups to a new provider, we’ll have more bandwidth and a better server, but with the move will come a new IP address, so depending on how fast your own provider gets DNS updates into their system, you may have a short period where your client news reader software may not resolve to the new IP address. So don’t panic if it happens that you can’t connect for a short period, we use a top-level DNS provider so it should propagate very quickly. In order to ensure that no messages are lost during the transition to the new server we’ll take the existing server offline for a short period for a full backup and deployment to the new server.

—————–

En las proximas 24 hs el servidor del Newsgroup se va a mudar a otro servidor, el nuevo servidor va a tener mejor ancho de banda y va a ser un mejor servidor.
El nuevo servidor tiene una direccion IP diferente y va a depender de cuan rapido se propague el cambio de IP, y es posible que el acceso al NG este fuera de linea por un tiempo.
Esperamos que para maniana esto este terminado.
Si por algun motivo no pueden conectarse al NG no se asusten esto sera por un corto periodo de tiempo.
Durante los momentos de la transicion el actual servidor sera puesto fuera de linea
para poder hacer un backup y que no queden mensajes sin mover y todo sera instalado en el nuevo servidor.
—————–

Nas próximas 24 horas o servidor de Newsgroup está se movendo para outro servidor.
O novo servidor terá uma melhor largura de banda e será um servidor melhor.
O novo servidor tem um IP diferente e está possível que o acesso ao NG está fora de linha por um tempo.
Nós esperamos que maniana está acabado.
Se por algum motivo não podem se conectar a NG não está assustado.
Durante os momentos de transição que o servidor atual será desligado para fazer um cópia de segurança, e não deixado de lado e todas as mensagens serão instalados no novo servidor.

Discussion Server Status

Good morning,

The Discussion Server is currently down for maintenance. We expect to have it online shorlty, and will keep you posted here on this group.

We apologize for the inconvenience. You can still call our office or email us if you need Technical Support or any other assistance.

Thanks!

Update! The server is back online at 1:30 EST – again sorry for the delay and inconvenience.

Clarion newsgroup access

All Clarion newsgroups now require an authenticated login, we no longer support anonymous access. If you are using the dedicated SoftVelocity Discussions client software you are already authenticated. If you are connecting with any NNTP client program (Thunderbird, Outlook, etc) you will need to enter in your login information (the same information you would enter if you used the Discussion client software).  If you can’t find your login information just drop us an email at sales @ softvelocity dot com, and we’ll send it to you.

Clarion 7.3 Released

Tonight we released to the public Clarion 7.3 and the related add-on drivers (IMDD, DFD, and IPD)

First and foremost, a heartfelt thanks goes out to all of our 3rd Party Developers and Vendors, who helped to make this release the absolute best that it can be. We simply could not have done it without you!

At first glance, the read me file contains close to 140 fixes and enhancements since the last Clarion 7.2 release.

We at SoftVelocity know that you will enjoy using this latest update of Clarion, but get ready as there is no rest here at the home office as the next line of great development products are coming very soon. Expect another announcement in the next couple of days regarding the early pre-release of Clarion 8.

Also, the updated Examples install will be updated and is scheduled to go out on Monday.

On behalf of the entire SV staff, have a great weekend!

Upcoming releases

We had hoped to get 7.3 into everyone’s hands before Christmas, and its very close but we
do need a couple more days to finalize. Our goal is to wrap up 7.3 next week and get it to everyone
before New Years day.  Right after Jan 1st we’ll prepare 8.0 pre-release installs and we’ll aim to
publish the 8.0 pre-release by the end of that week, or possibly the beginning of
the following week. We want to get these products out the door and into your hands so that we can
focus on getting a pre-release of the .Net AppGen for Clarion.Net out to all of you who have been
so patient.

The Clarion community is the best development community anywhere, and we
wish all of you a Merry Christmas and a Happy New Year!

Happy Holidays from SoftVelocity

From all of us at SoftVelocity, we would like to take this opportunity to wish you and your families a very Merry Christmas and a Happy and Prosperous New Year.

Here is our Holiday hours of operation for the next few days:

12/24 – Closed at Noon (EST)
12/25 – 12/27 – Closed
12/28-12/30 – Open for business, normal hours.
12/31 – Closed

Of course, our support newsgroups are always open 24/7, and you can always purchase our products online anytime at http://www.softvelocity.com

A more detailed blog on Clarion versions 7.3, 8 (Beta), and Clarion.NET will follow here very soon.

All the best! We appreciate your business and support, and thank you!

Clarion 7.3 pre-release

Today we issued a pre-release of version 7.3 to 3rd party vendors, and in addition to a good number of fixes and improvements in both RTL and IDE, there is another noteworthy change.  The convention for naming of Clarion DLLs and Libs has always been “C” plus the major version number, so we have C60Run.dll, C70Run.dll, and so on.  The reasoning behind this came from the earliest release of Clarion for Windows, at a time when the internals of both RTL and File drivers were changing quite frequently.  And in order to ensure that programs didn’t crash because of these internal changes, there was versioning code that diligently checked the version number of the RTL used in any binary against the currently loaded RTL.  This version checking very often required you to do a complete rebuild of all your binaries even when no internals in the RTL or Drivers (or Compiler) had changed to require it, except for the external version number.

Now in Clarion 7.3 we’ve made some changes for the better. The visible change is that in Version 7.3 the naming convention used for Clarion DLLs and LIBs is no longer version specific. Now in 7.3 we use a prefix of “CLA” for all our binaries. For example:

C70RUN.DLL is now CLARUN.DLL
C70RUNL.LIB is now CLARUNL.LIB
C70TPS.DLL is now CLATPS.DLL
And so on.

But the changes you can’t see are where the benefits can be found.  In continuing to reduce the lines between product releases, our version checking code has had a makeover.  Now we maintain an internal version for the RTL that is separate from the external visible version number, and assuming that no changes to internal structures accessible from the outside world have been made, and the RTL internal number hasn’t been incremented, then rebuilding of binaries won’t be required.

That means, for example, the following:
If a user has his Exe plus 20 Dlls built with 7.3.7852 and a few weeks later we release 7.3.8011 – and it has some fix he needs, he can just copy the 7.3.8001 RTL and drivers into his app folder and run his app without a rebuild of his binaries. We see huge benefits in productivity ahead with this change.

For the project settings of your .Apps, the change is seamless – you don’t have to take any action for items the templates have added to the project.  If you use the macro expansion symbols those are also updated to return the new naming convention.

Of course if a rebuild of binaries is needed, a message (not an error) will be displayed, or if the incorrect RTL is used it will also just show a message alerting the user about the use of the incorrect version.

Along with this version change the SYSTEM properties; PROP:ExeVersion and the PROP:LibVersion are also changed and extended, see the Help file for details.

Thanksgiving Holiday

This week we have been working hard on the final testing and closedown of Clarion 7.3, and much more.  With Thanksgiving tomorrow, it’s time to take a little break to reflect on the many things that we have to be thankful for, most important customers like you!

Our office will be closed from 11/25 thru 11/28 for the Thanksgiving Holiday, and will reopen on Monday, November 29th.

From all of us at SoftVelocity, have a safe and restful holiday weekend, and the very best wishes from our families to yours!