Clarion 8 update

An update for C8 is on its way out as I type; our focus was on fixing issues related to the Embed tree nodes, and we’ve fixed all issues that we were able to reproduce.

A new feature in this release; FREEZE/UNFREEZE can now be used for Menu controls,  using the special value 10001h, or the EQUATE “Freeze:MenuBar” (defined in EQUATES.CLW).  FREEZE/UNFREEZE for Menu controls might be needed if the Frame Menu control is being changed from an MDI child thread.

Another feature is new support for 256×256 icons under Vista/Win7.

Clarion.Net update

An update for Clarion.Net is out today.  It has a good number of fixes and delivers the previously described feature that automatically exposes Procedures you select so that they are visible to Clarion Win32 Apps.  I wrote about this a while ago, so I’ll refresh you on it (this is straight from the Help file):

1) In the Clarion# Program’s GLOBAL MAP, add both the NAME and PUBLIC attributes to the PROCEDURE prototype

For example in your Clarion# global Map:

MAP

! Procedures exposed for Win32 access must have both the NAME and PUBLIC attributes
SayHello                     PROCEDURE(),NAME(‘SayHello’),PUBLIC
SayTheName            PROCEDURE(string theName),NAME(‘SayTheName’),PUBLIC

END

2) On the Clarion# Project properties dialog, turn on the checkbox: Export Global named procedures and create Clarion Win32 LIB file

This step causes a .LIB file to be created, its location is set according to your RED file, or you can specify the output path in the Project

3) Copy both the .LIB and the Clarion# DLL to your Win32 project folder.  You also must copy any assemblies (DLLs) that your Clarion# DLL references, for the minimum you need:

SoftVelocity.Clarion.Runtime.Procedures.dll
SoftVelocity.Clarion.FileIO.dll
SoftVelocity.Clarion.Runtime.Classes.dll
ClarionDrv.dll

 

4) In the Clarion Win32 program prototype the Procedure(s), and add the PASCAL and DLL attributes. If you need to pass a string value by address also add the RAW attribute.

MAP

MODULE(‘ManagedDLL.dll’)

! Calling Clarion# Procedures, you must use the PASCAL Attribute and set DLL(true)
SayHello            PROCEDURE(),NAME(‘SayHello’),PASCAL,DLL(TRUE)
SayTheName   PROCEDURE(*cstring theName),NAME(‘SayTheName’),PASCAL,RAW,DLL(TRUE)

END

END

 

In the initial implementation (its already changed internally),  you might run into a “gotcha” when you get to step 2.  In order to expose the Procedures for use in a Win32 program the binary Clarion# DLL file has to be disassembled back to IL code, the IL code is then modified, and then the IL code has to be assembled back to a binary (PE format) file.  To do this there are two programs from the .Net SDK that have to be found; Ilasm and Ildasm.  In the current implementation the location for those files is stored in an external .config file, and if they are not found (Ilasm and Ildasm), you’ll get an error message telling you to edit the path stored in Dllexport.exe.config.  In the next release we’ll have an improved implementation that finds these automatically on all OS’s (32 or 64 bit).

You’ll find an easy to understand example showing how this works in the .SamplesWin32toDotNet folder.

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.

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!