All posts by rzaunere

DevCon, Clarion8, Clarion.Net and more

I did a short talk at the start of today’s ClarionLive session. John and Arnold had posted that I’d be there and the room filled up really fast. In case you missed it, here is what I covered:

1. SoftVelocity and ClarionLive are co-organizing the next Clarion DevCon, which will be held in Denver Colorado, (same location as the last ClarionLive conference) for November 11-13, 2011. It’s sure to be a great event! I’ve heard the venue is incredible, and I know the content will be even better. In the weeks ahead we’ll be announcing the details on the session topics.

2. The initial early release of Clarion8 is going out today!
A few notes on the C8 release:
– You’ll get your chance to try out all the new UI features, like the Gradient support on Toolbar controls, the new Slider control, the 3-state Checkbox control, the vastly improved look for disabled images and icons, PROP:NoThemed support to allow transparent SHEET when the application is using a manifest, and much more.
– All told there are already over 65 new features and improvements, as well as about 150 fixes and changes.

– You’ll have some long sought after improvements in the IDE; like remembering the last edited EMBED point, and the ability to edit data as Text. But you’ll have to delve into the readme for the complete list. A lot of hard work has gone into this release, and we hope you will love it.

– What to expect after the install:

  • Clarion8 inherits all Clarion versions set up in Clarion 7, so you can start using the Clarion8 IDE right away
  • You should check with the 3rd party vendors that you use – but if you copy your .ClarionAccessory folder from your Clarion7.3 install folder into your Clarion8 folder most of your add-on tools should be ready to use as-is in a C8 App. The exceptions are those that have explicit checks for the Clarion version number, unless they use a greater than or equal condition. Also any tools that ship local link LIBs should be rebuilt just as a matter of routine sanity/safety.
  • The Dictionary format was updated in Clarion8, so expect an upgrade message upon open of the Dct or App

And that’s about it, this update should be absolutely painless, and it brings some very nice new features that your end-users can see, and some big productivity gains.

Back to the announcements:

3. Next week we’ll release an update for Clarion.Net – no AppGen.Net yet, but it will deliver the bridging technology that allows you to very easily call .Net procedures from your Clarion Win32 programs without the use of COM or C++ wrappers.

4. I’ll be doing short talks on ClarionLive at least twice per month in order to share the latest news on what we’re up to, and in general what’s happening with Clarion. I can’t thank John and Arnold enough times for the incredible resource they have created for the entire Clarion community!

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.

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.

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!

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.

Upcoming releases and news from Denver

The Clarion User conference was a great success. I presented the keynote remotely, and in this post I’ll cover the highlights of the presentation.

First on the Clarion for Windows Win32 side – I mentioned that the next release for Clarion 7 will be version 7.3, and in that release we’ll deliver several key RTL bug fixes and additional fixes for ReportWriter and the IDE. The 7.3 release will be ready to go out around mid-month.  I also did a brief demo of Clarion8, I only touched upon some of the new features already implemented, such as the new “edit as text” mode for the Data pad, and the new locators added to every list in the Dictionary editor (and added to the Data pad as well).  I also announced that we’ll be making an early access release for Clarion8 available to everyone with a subscription, and that will be ready by the end of this month.

On the .Net side I showed a short preview of the .Net Application Generator UI, and Pierre did further demonstrations during the conference. I explained that we are busy writing the .Net templates – and that the process of writing and testing the templates leads to bug fixes in the code generation engine.  With lots of hard work, and a bit of luck, we hope you’ll see a beta release in December.  I also mentioned that we’ll be putting all the templates (.Net and Win32) into a repository that will be open to the community. Doing this will allow Clarion developers instant access to the latest templates, and any template fixes or changes, and it will also allow Clarion developers to contribute their own templates and to participate in extending and refining existing templates. Later this week I’ll post another blog with some screenshots of the AppGen.Net UI – and as always we look forward to your feedback.