Release Note 019: Simplified compilation of the backend on Unix and Linux

Today we have released a number of changes to the structure of the SmartComponent Library source code with the aim to simplify the compilation of the backend on Unix and Linux systems for AppServer, WebSpeed and Batch file usage. We have achieved that all files in the  

  • Consultingwerk.* (without subfolders) 
  • Consultingwerk.Assertion.* 
  • Consultingwerk.Exceptions.* 
  • Consultingwerk.Framework.* 
  • Consultingwerk.OERA.* 
  • Consultingwerk.Util.*  

packages (plus subfolders) as well as the service interface procedures and the procedural OERA support code in OERA\support compile on non-Windows systems without any (expected) compile error.  

This requires conditional compilation because source code that is only required and intended to run on Windows (.NET Framework) will fail to compile and hence may impact customers build or deploy processes. Further the FROM ASSEMBLY option on USING statements like  

USING Progress.Lang.* FROM ASSEMBLY .  

will speed of compilation on Windows systems especially when using many (network) folders in the propath, but is invalid on non-Windows systems and will result in compilation issues.  

We are using the new preprocessor variable DotNetAccessible for this purpose. Currently the variable will be set depending on the value of {&WINDOW-SYSTEM} in Consultingwerk\products.i. As Progress has announced .NET support on Windows character clients and Windows AppServer processes for OpenEdge 11 we will have to tweak the current automatic setting of this variable as soon OpenEdge 11 is expected to be released (we have begun testing the SmartComponent Library on the current OpenEdge 11 tech preview release):  

/* Compilation allowed that accesses .NET classes? 
   In 10.2B it would be sufficient to test for 
   "{&WINDOW-SYSTEM}". For OE11 support for .NET 
   on the !AppServer Character client is announced. 
   Currently we do expect that in OE11 the test 
   for "{&WINDOW-SYSTEM} would not be sufficient 
   to know if .NET assemblies are accessible. */ 
&IF "{&WINDOW-SYSTEM}":U BEGINS "MS-WIN":U &THEN 
&GLOBAL-DEFINE DotNetAccessible 
&ENDIF

 

We have moved the following files/classes to subpackages of the Consultingwerk.Windows package:  

  • Consultingwerk.Framework.API.* -> Consultingwerk.Windows.API.* 

  • Consultingwerk.Framework.Session.LoginForm -> Consultingwerk.Windows.Session.LoginForm 

  • Consultingwerk.Util.Controls.* -> Consultingwerk.Windows.Util.Controls.* 

  • Consultingwerk.Util.Forms.* -> Consultingwerk.Windows.Util.Forms.*  

Customers that are currently directly using any of these classes/file may have to adjust their source code. We are more than happy to support you with that.  

Please let us know if you have any concerns or feedback!