Well the 8.03 update is not a pretty big step, therefore I can give a short overview on the new features I’ve found so far. The new features are only mentioned in the documentation, but not very well documented!
* Improved WSDL schema import diagnostics * and * Seaside 3.0.2 *
Seaside 3.0.2 is a new code base of the framework and I will have to investigate it later, if the problems are gone now and if packaging becomes much simpler. No time to have a detailed report about this and the same is true for the WSDL stuff.
* CwMultiLineTextPrompter *
Just execute “CwMultiLineTextPrompter new prompt inspect” and I think you get the idea. A multi line text input dialog. It returns either the string you have entered or nil.
* NLS Application Enabler Tool *
This tool (under “Tools/NLS Tools/Enable Application …” can be used to make source code – located in a specific application – NLS enabled. The tool is looking in the application, where possible candidates for NLS references could be and it allows you to change the code – either to define the showed location as NLS independent (therefore NO change is wanted now and in the future) or the source code might be changed
to reference a string located in a mpr or cat file – and here may be the problem: you MUST have the referenced mpr or cat file already – and all the pool dictionary holding the values (or getting it by bindwith: messages). I suppose, that most of the programmers will not be able to tell at once how to build the MPR or CAT based infrastructure – or just look at the documentation how to execute those multiple scripts available via the NLS file …
* NLS Catalog (.CAT) Editor *
As I have written a tool like this for myself (around 2005) I was interested to see, what their tool can do – because I simply did not understand all the structures in those “cat” files and therefore my own editor was only able to handle simple cat files. The tool allows you to edit “cat” files – not mpr files ! Here perhaps some hints to Instantiation:
* “cat” files are normally located in the “nls” directory (or more specific: the path mentioned in the application ini file) and it would be a nice feature if the file open dialog opens in this directory and not in the “image” directory.
* two “Options” menues are quite strange
* and most strangest thing: you can not create NEW “cat” files – therefore you still have to look for those scripts (mentioned in the previous paragraph) to manually create your stuff again.
But after all – the start has been done in the NLS area and tools are available to help developers to NLS their applications, but there is still lots of room available to make improvements.
* TzSpecificLocalTimeToSystemTime *
I am not sure why this is actually called a new feature – it is simply only a new OS API call – but nobody in the image uses this message already … ?
What does this API call do ? Well it converts a local time (together with a time zone info) to an UTC time.
To use this call you may need in additon instances of the operating specific classes “OSSystemtime” and “OSTimeZoneInformation”. Here is an (theoretical) example how to use it:
| localTimestamp utcTimestamp myTimeZoneInfo |
“fill the os structure with data ….”
localTimestamp := OSSystemtime new.
” .. either you fill your own time zone information …”
myTimeZoneInfo := OSTimeZoneInformation new.
” … or gets the current one from the operating system …”
myTimeZoneInfo := OSTimeZoneInformation new getTimeZoneInformation.
myTimeZoneInfo tzSpecificLocalTimeToSystemTime: myTimeZoneInfo lpUniversalTime: localTimestamp
and then you have the your local time converted to utc time … but a question may be allowed: WHY are there no conversion methods from Smalltalk date/time oriented classes to/from that plain OSSystemtime structure ???
* All Windows .EXE and .DLL files have function-specific descriptions *
This seems to be the information about the runtime files you may deliver with your application and what each dll does and to which feature a dll belongs to … right ?
* EsIsString, EsStringToCString, EsCStringToString APIs *
Anyone doing low level primitive programming in C will be interested in these changes as it makes the handling of strings more convenient ….
* New Platforms *
Well, Ubuntu 10.10 is now supported – but the long term release 10.04 of Ubuntu has been left out. I am not aware of any problems of VA 8.02 running under Ubuntu 10.10 …
* New VA Assist, Widget/Kit Controls, and GF/ST online documentation *
That’s nice to have. They managed to put the already existing product documentation into their online documentation. Is GF/ST now a supported goodie ???
… and still not fixed bugs …..
When hearing about tzSpecificLocalTimeToSystemTime:lpUniversalTime: I looked at the DateAndTime>>primitiveSystemOffset bug mentioned first around 2006 and 2008 – but it is still there. Therefore even after 5 years we have to live with that bug.