Clarion 7/Clarion.NET News - Updated June 1, 2005

By David Harms

Posted June 1 2005

Printer-friendly version

Bookmark this blog-style page to keep up with the latest news on the upcoming releases of Clarion 7 and Clarion.NET.

Bob Z Responds

June 1, 2005

There's been a lot of discussion about Clarion.NET and C7 following the demonstration at the Brazilian DevCon. That demo showed the new IDE, minus the AppGen and Dictionary Editor, and focused on Clarion.NET rather than on C7. This has given rise to some wild speculation on what is and isn't part of the new IDE, and on the differences between Clarion 7 and Clarion.NET. I had a chance to talk with Bob Z about these issues, and we'll also have a full podcast with Bob in the near future. Meanwhile, here are a few clarifications.

Although the DevCon demonstration didn't show any C7 compiles, Bob had planned to, as this capability is already there. In fact, there are at present two internal versions of the IDE, one used for testing components, and one with the AppGen. The testing version was demonstrated with Clarion.NET code, but Bob had planned to show Win32 code compiled using Clarion7, as well as the ability to choose the version of Clarion to compile with (4,5,6,7) at the project level. Work on the AppGen is not complete, but in that other internal version it does exist in the IDE. AppGen is not simply being ported, it is being re-engineered for improved performance and new and improved functionality. This work is well along.

The Clarion IDE and the SharpDevelop IDE have been grafted together - and right now the surface appearance is the same, but the UI is going to change as well. SoftVelocity has a commercial code license for SharpDevelop, but the IDE shown is a hybrid of Clarion's IDE and key components of the SharpDevelop IDE. There are significant differences between the Clarion IDE shown and the free SharpDevelop IDE, and that will be more evident when AppGen and the DCT editor, and other new components, are integrated. SoftVelocity has a large IDE code base, and big chunks of this are used in the new IDE as well.

SharpDevelop, according to Z, is an excellent basis for implementing support for the Clarion language under .Net, and the SharpDevelop developers are very talented. But despite the cosmetic similarity the new Clarion IDE is quite a bit different under the hood from the Sharpdev IDE. "Let's not forget that the heart and soul of a Clarion IDE is AppGen and the DCT editor, and that will always be true."

As for product releases, Clarion 7 is much closer than Clarion.NET, at least the full release. There is synergy between the two products - for instance, Clarion.NET can (and does, as one option) use the C7 file drivers. "Bottom line, there are two teams on two different projects...so both could be released pretty close together, or we could decide to do a hand coders .Net and a Win32...or we could wait and do the full product. [It's] likely that CSP EE users will have an option to do some beta tests either way."

 

First Look At New Clarion IDE

May 31, 2005

Attendees at the VI Condev Mercosul Gescla conference were the first outsiders to see the new Clarion IDE. Bob Zaunere presented an overview in English, and Diego Borojovich discussed the new language features of Clarion.NET, in Spanish. These presentations are available for download from Clarion Magazine.

Although not yet confirmed by SoftVelocity, the new IDE is quite clearly based on SharpDevelop, an open source IDE for C# and VB.NET projects. Since SharpDevelop is available as an open source IDE under the GNU Public License (GPL), there has been some question as to whether this would make the Clarion IDE open source. This is highly unlikely. A SharpDevelop developer posted the following in one of the SharpDevelop forums:

It is possible to release Open Source software under several licenses at the same time, including commercial licenses - look at MySQL, sendmail or OpenOffice for well known examples. This can be done only when the rights owners all agree. The #develop rights are all in one hand so we can do this.

Evidently SoftVelocity has obtained a commercial license to the SharpSoft code, which would entitle them to modify it as needed without having to release the IDE as open source. Certainly licensing an existing product allows SoftVelocity to take advantage of a slick, contemporary IDE while focusing on implementing Clarion.NET and the new AppGen environment.

AppGen implemented, not yet integrated

For the most part, the new IDE looks like the open source version of SharpDevelop. This is because the AppGen and Dictionary Editor components, although implemented, have not yet been integrated into the IDE. Hopefully a hand-coder's release will be available soon, as happened in Clarion for Windows 1.0, where the first release didn't support the AppGen either. There are some new navigation features, and there is of course color syntax highlighting for Clarion code. Intellisense wasn't demonstrated, at least that I could see, but it is one of the promised features.

Download the AVIs

Bob and Diego's conference presentations were to be given live, but Bob's visa was delayed at the Brazilian embassy and he was unable to make the trip. Bob and Diego recorded their presentations on very short notice (note Bob's comments at the beginning of his session) so they are not as polished as you would otherwise expect.

  • Bob Zaunere on the new IDE, high resolution, 11 minutes, 42 MB (download)
  • Bob's PowerPoint presentation (download)
  • Diego Borojovich on Clarion.NET, medium resolution, 37 minutes, 150 MB (download)
  • Camtasia codec - get this if you can't see the video (download).

Selected slides

The following screen shots are taken from Diego's presentation. Although the slides are in English, Diego's commentary is all in Spanish, and since I don't speak Spanish, much of what follows is idle speculation on my part.

At least at this stage, it appears that Clarion.NET uses WinForms, as opposed to Clarion window structures. It's not clear yet what that means for porting applications from Win32 Clarion to Clarion.NET, although a direct port is not something that's ever been promised by SoftVelocity, at least as far as I know.

Clarion.NET does bring new capabilities, and that means some new language structures. These include some new class syntax, structured exception handling, delegates, and events.

The above slide shows the beginning of a simple Clarion program, as we now know it. The next slide shows the same program updated to Clarion.NET. The same basic structure remains, although there is a NAMESPACE directive for the current application, USING statements to pull in required .NET capabilities, and a change in the STRING variable which is now a CLASTRING. There has been some discussion of CLASTRINGs already. In .NET, strings are classes, not simple data types, and CLASTRING is just a class wrapper for the Clarion STRING data type.

Another change is the use of Application.Run() to start the application. .NET is an object-oriented framework, and Clarion is a hybrid language with procedural roots and OOP extensions. It appears that in Clarion.NET, the procedural component is even shorter than in ABC and just gets the application loaded, sort of like a static main() method in a class.

I'm happy to see constructors being allowed parameters - that's not an answer to every initialization problem, but it's nice to have the option.

The new ForEach syntax lets you iterate through collections of objects. Basically it's another way of looping that knows how many objects there are to loop through, without you having to test for the end of the list.

Exception handling is a very cool feature, and a much more flexible and powerful way of handling error conditions that simply testing for errors. Essentially you have a block of code marked with a TRY keyword - if any code in that block "throws" an error, none of the following code in the block executes - instead the code kicks straight through to one or more CATCH blocks which can test for specific errors.

Here are a few more looks at the new IDE. I left these in for two reasons - first, I was unable to get a clean screen shot from Bob's presentation due to the higher resolution, and two, they show how configurable the IDE is. Bob had the project list on the left, while Diego has his sitting on a button on the right, where Bob had the property list. Also here the output window is docked, while Bob's was floating. And Diego generally has a lot less stuff visible on his screen - by comparison, take a look at the SharpDevelop screen image.

Displaying source code.

Note the docked Output pane.

Project menu on the right.

The above screen shot shows a button click handler, indicating a more mainstream approach to event handling. Clarion developers are accustomed to the Accept loop. Whether there is such an animal in Clarion.NET remains to be seen. This may not be a big issue since ABC developers at least are already familiar with embedding code in control TakeEvent embed points, rather than writing big blocks of code right into the Accept loop.

Here's some code to build data to be displayed in a queue. Note the last line, which attaches the queue to the data grid.

The running application with data grid. Since all of the WinForms components are available, you have a lot of choices as to how you want to present your data.

Here's an example of data binding. with a class and a TopSpeed file. The TPS file data types are a wee bit different - CLASTRINGs instead of STRINGs, and an Int32 instead of a LONG.

Again, the data is loaded into a queue and bound to the data grid.

My impressions

Although it's hard to get a complete picture until AppGen gets integrated, certainly the look and feel is much more like other contemporary IDEs. And I think licensing and modifying an existing IDE is a huge boon to SoftVelocity and Clarion developers. It frees up developer time to work on what SoftVelocity does best, and it puts Clarion on a level playing field with other IDEs. Based on the demonstrations, a hand-coder's version of Clarion.NET seems workable now, and I hope SoftVelocity releases such a product. Clarion 7 looks like the next logical step after that, followed by a full Clarion.NET AppGen release - given the changes between the Clarion and Clarion.NET languages, it's obvious that the templates will need some significant modification to begin taking advantage of the many opportunities offered by .NET and WinForms, so I wouldn't expect a full Clarion.NET AppGen release for some time. But don't forget that there were developers releasing hand-coded Clarion for Windows applications while that product was still in beta...

All in all, lots of good stuff here. And bring on that Clarion.NET hand-coder's release!

 

 

David Harms is an independent software developer and the editor and publisher of Clarion Magazine. He is also co-author with Ross Santos of Developing Clarion for Windows Applications, published by SAMS (1995), and has written or co-written several Java books. David is a member of the American Society of Journalists and Authors (ASJA).

Clarion Roadmap

Try the roadmap (beta)

Search ClarionMag

 

Advanced search

From the archives

Clarion# And The Google Calendar API

12/17/2007 12:00:00 AM

Randy Rogers shows how to use the Google Calendar API to add public and private calendars to your Clarion# applications.