Review
Secwin header


Reviewed by Paul Panetta

     
This review first appeared on ClarionShop and is reproduced with permission.

Secwin 3.17 beta 6

A Little History

In 1995 I wrote a very simple personal information manager (pim) program which I developed in Clarion for Windows 1.5. I was so pleased with the result I decided to make it available to others. Of course, it needed a little more work here and there and a few more features and perhaps some way to allow it to be used on a trial basis. Since this was going to be a $19.95 special I didn't want to spend a lot more time or money on it. So I looked around for low end products and came across Datasoft's Secwin which was available as a 16-bit version for free. Not only did it have a complex program licensing and registration system but also a powerful login/password system too. Low-end? Definitely not! I said complex and I meant it. Hey, I had to read the documentation, just to figure out how to use it. (By now you've guessed I hate reading documentation). Well, once I passed that hurdle I implemented it and was impressed to say the least. Without a lot of effort my pim program was now available to be registered over the phone (pre-internet - remember?) and had support for multiple users each with their own personal logon id and personal information available based on their logon.

In 2002, 16-bit Windows no longer seems to be the flavor of the month. Time to move on. Time for my 16-bit pim to become 32-bit. To do this though, I had to acquire Datasoft's (now CapeSoft) 32-bit version of Secwin. At $US99.00 it was a little more expensive than the 16-bit version but I think I sold just enough copies of my pim to justify the purchase.

So what is the new product like ? Let's take a test drive.

Product Description

Secwin will allow a developer to add user login and licensing/registration features to a Clarion 4/5/5.5 application.
It is available for both Legacy and ABC apps and still supports 16-bit as well as 32-bit applications. It now supports a number of SQL file drivers and Odbc as well as Btrieve and Topspeed files. The version being reviewed is 3.17 Beta 6. This product is C3PA approved.

Installation

Download Secwin from CapeSoft's web site (www.capesoft.com). There are versions for Clarion 4/5/5.5 as well as the free 16-bit only version. CapeSoft use their own unpacking/decrypting tool called CapeSoft Safe Reader. You will need to download and install this product before you can unpack Secwin. The Secwin download has a .SAF extension. Once Safe Reader is installed, double-clicking on the Secwin.saf file will start the Safe Reader program which requires a Safe Key. This is the key you received when you purchased Secwin. Once extracted, the installation program starts (you have a choice of just extracting or extracting and running).

This installation program defaults to the clarion 3rd party directory (in keeping with C3PA practices) and offers to register templates, edit the redirection file and update your autoexec.bat file (if you have one). Once installation completes, your default browser is loaded and the documentation appears. Which brings us to ...

Documentation

The documentation is in HTML and is easier to navigate than the old Windows Write format (from the version I used in my pim). It can be run from within Clarion 5.5 from the Accessories menu. It has a Quick Start section which can be used to get up and running without expending a lot of energy. However, to use all the available features some in-depth reading is required and you are encouraged to read on to the User Guide and more by use of hypertext links in the 'What to Read Next' section at the end of the Quick Start chapter. At no time did I feel threatened by the documentation which is written in a friendly and relaxed style, well laid out and informative.

Example programs abound. They exist for Interbase (Odbc), MySql, Internationalisation, Multi-DLL, Multi-Exe and Setting the Pin number. This is by no means an exhaustive list. Secwin even provides an example program for creating the security files (for added security rather than let your shipping app do it). You will also find a program to keep track of customer registrations. It can generate the Activation Code needed to register the programs you ship. What's good about this is that it can be used out-of-the-box meaning you don't have to waste time writing one. Each example demonstrates a worthwhile feature which can save plenty of time and are worth a look.

So, let's put the theory into practice.

The Quick Start

Using the Quick Start I tried Adding Licensing and Registration features. This required adding a Global Extension called 'Activate Security' which had a number of tabs and options including a 'License Name' and 'Licensing Seed Code' to help make your program unique so that other Secwin users cannot generate 'activation codes' for your application. Sticking to the quick start guide I ignored most of the other options.

A quick trip to the Frame window and the menu wherein we add a menu item to register the product. This is achieved in the embed point for the menu item with a call to a Secwin code template called (surprise surprise) Register Product. Again we are faced with a number of options, none of which we need to set.

So we exit and add an extension template on the frame called User Screen Security. This allows the program to be set to "Demo" mode. We also need to set which controls will still work when the "Demo" mode kicks into action. One more extension template on the Frame and we're done.

This is the User Login template which enables the user to login (if required) and it allows us to set the number of days before the program becomes a "Demo". Once again a plethora of options are available such as automatic login from other programs, restricting the number of incorrect login attempts, login defaults and so on. To say that Secwin is highly configurable is an understatement. The options are too numerous to investigate in this review and since we are in quick start we will follow the documentation and simply compile and run.

But before we do let me mention one nice CapeSoft feature, the unique context sensitive Help screens which I assume were written with CapeSoft's own Ezhelp product.

Ok, the test program compiled cleanly and started without the 'optional' logon screen which according to the help should only appear when there are "users in the security file".

Selecting 'Register Product' from the menu loads Secwin's default registration program. This allows up to 5 levels to registered, from 'demo' to 'enterprise' as well as additional modules (useful if you are registering a modular product, such as an accounting program). It is quite complete but if you don't find it functional enough you can replace it altogether with your own registration process.

For the end-user to register the product they require an 'activation code' which you can supply using the CapeSoft supplied 'Register' program in the Secwin examples folder. This program generates the 'activation code' based on the 'License Seed Code' which was entered in the global extension template.

Now to Add Logins and Passwords. Although we have enabled a login option we can't login until we set up some users so we need to create a menu item on our Frame to allow this to be done. We'll call the menu item 'Browse Users' as per the docs. You don't have to, though, you can call it whatever appeals to you. Secwin provides a code template called 'Operator Browse' to facilitate the user setup.

Here, Secwin departs from the norm with no options at all on this template.

The next step is to add a 'Change Password' menu item which implements the 'Change Password' code template. The only option here is to use your own password window if you wish. Compile and we're away. We now have a fully featured demo version of our test program with logon security and options to allow the end-user to set up multiple users with different access levels and password change and register the program when the demo expires. All without raising a sweat or taking any ulcer pills.

The beauty of this version of Secwin is that it's not a closed box. Even though it uses DLL's you can still change the look and feel of the standard windows. For example, the documentation describes how to import an alternate set of procedure from one of the supplied example apps to replace the standard Operator Browse windows. It also details how to set up the alternate call to the new procedures. Top marks CapeSoft!

SQL

I tried using the SqlAnywhere driver. This was a matter of downloading the driver from the CapeSoft web site and installing. Once installed an extra option is available for the SqlAnywhere driver. This appears in the Files tab of the 'Activate Security' Global Extension under Driver Support. Selecting the SqlAnywhere driver yields no further options and we don't need to add the s