350 likes | 492 Views
PxPlus – Past and Present. Michael F. King President PVX Plus Technologies Original developer of ProvideX and PxPlus. ProvideX versus PxPlus. Version 9 last ProvideX Support for ProvideX will continue as long as same version PxPlus supported Name will be discontinued over next 12 months
E N D
PxPlus – Past and Present Michael F. King President PVX Plus Technologies Original developer of ProvideX and PxPlus
ProvideX versus PxPlus • Version 9 last ProvideX • Support for ProvideX will continue as long as same version PxPlus supported • Name will be discontinued over next 12 months • Version 10 first PxPlus only • All new development will be based on PxPlus source
PxPlus Features • Installation and Setup • Language Extensions • File System
Installation and Setup • Our goal was to simplify install process • Reduce time and cost for install and upgrades • Eliminate upgrade problems • Use terminology consistent with other Windows
Installation and Setup • New 25 Character key format • 5 five character segments • Contains serial numbers, users, expiry and package information. • Avoids user having to enter multiple pieces of information • Allows common transpositions • Zero versus Oh, I versus 1
Installation and Setup • Online Activation • Enter ‘Installation key’ then start PxPlus or select On-line activation • Reduces amount of data entered thus reduces potential typographical errors • To upgrade just place/confirm order and re-run activation • Upgrades can be done without shutting down
Installation and Setup • Changed default location • Removed default install of Program Files/Program Data to avoid UAC Issues • Long term will help avoid Microsoft security issues • Default INI search location • If not specified uses EXE pathname • Replaces EXE with INI • First location used
Language Extensions • Associative Arrays • Allows use of strings as array subscripts X[“Mike”] = 1234 • Array is dynamically created • No predefined range with initial subscript of 1 • DIM function can be used to find actual index if needed • CLEAR/BEGIN clears the array • FOR N$ INDEX Array{All} used to process all elements • Quick access to element using hash tables • Faster than using Memory files • Elements are not sorted by key
Language Extensions • Structured Strings • Fully compatible string structures (templates) • Standard ProvideX splits strings into individual variables • PxPlus uses same approach as BBx • Avoids problems with CALL’s and elsewhere • Improved performance • Enhanced to include OS formats • Built-in standard structures
Language Extensions • Structured Error Handling • C++ Style Try/Catch Functionality • New ON ERR clause: GOSUB LOAD_CLIENT ON ERR PRINT “Unable to load client” • Executes statement following ON ERR • Supported by GOSUB, WHILE, FOR, REPEAT and SELECT
Language Extensions • Object Oriented Interface enhancements • Dynamic properties • Automatic Housekeeping • Ability to MERGE Objects • Object Caching • Object defined/enhanced controls
Language ExtensionsObject Oriented Programming Dynamic Properties Properties can be created by Object Use ADD PROPERTY directive Optional ability to add properties on the fly Allow by adding: DEF CLASS “…” ACCEPT PROPERTIES Property created when assigned value
Language ExtensionsObject Oriented Programming • Automatic housekeeping thru dependencies • Object creation can tie deletion to: • Another object • An open file • The current Program • A control on the screen • Linkage established using the FOR clause MyObj = NEW(“object” FOR Dependency) Helps reduce programming errors and logic
Language ExtensionsObject Oriented Programming Merging objects Allows properties / methods of one object to cascade/merge with anotherMERGE OBJECT obj_to_extend WITH obj_to_merge Caching of OOP objects Maintains recently defined object structures Improves load/creation time Controlled by system parameter ‘+J’ Default setting is 10 (caches last ten unused object definitions)
Language Extensions • Unicode support • Internal support for Unicode using UTF-8 • UTF-8 is industry standard method to represent UNICODE using 8 bits • Allows access to all potential character sets • Many functions provide special logic for UTF-8 • e.g. LEN ( ) can return true # characters • File parsing recognizes UTF sequences to avoid misinterpretation of separator characters • Windows versions support foreign keyboard input
Language Extensions • Store programs and static data in DLL library • PLUSLIB.DLL allows storage of programs/file in DLL • Single file contains full application • Simplifies installation • Minimal install becomes EXE, DLLs and key file • Programs/static data cannot be altered • DLL update utility provided: '*plus/dll/maint' We provide core list of files needed in DLL
Language Extensions • Function enhancements • XML parser • Delimited field parsing using ARG • CVS translations • DLL access to Floating point values • MAX/MIN for strings • TCB Enumeration of files, windows, objects, etc. • PTH function to check for file existence • KEY generation extension
Language Extensions • Object enhanced controls (OECs) • Provide way to augment controls with object • Add properties and/or methods to standard controls • Allows you to intercept control requests • Your object can override all properties • Graphical directives mapped to function calls
Language Extensions • Object defined controls (ODCs) • Where can they be used • Host application on different platforms • Macro media and text controls under development • Create totally new controls • All aspects of control done by ProvideX object • Your controls can replace system controls • An ODC server object can be declared to handle all control creation requests • Server also can handle all other graphical requests
Language Extensions • Additional enhancements • Ability to override LPG, ARG(n), NID DEF LPG=“value” DEF ARG(n) = “value” • Blinking mnemonic supported on Windows • Pixel addressing using @X(=nn), @Y(=nn) • Background processing for Windows • Add –BKG on command line after EXE name • Similar to Background on Unix/Linux • Allows program execution with no user count • All windows output suppressed
File System • Direct File Access • Use pathname to file instead of channel number in IO directives READ (“AR0001”, KEY=“….) WRITE (“c:\Foobar\Bar1”) A$ • Applies to IO functions as well K$=KEY(“AR0001”)
File System • Direct File Access (continued) • No need to OPEN/CLOSE files • System dynamically performs OPEN and CLOSE • Number of files open controlled by ‘F+’ parameter • All dynamically opened files closed on BEGIN, END • Reduces overhead by sharing file channel • Fewer OS channels used • Less OS load caused by file opens (security checks, etc.) • Care should be taken when using positions in file • File handles are shared
File System • Numeric Keys are supported • No need to convert data to/from string • Proper sort sequence • From most negative to most positive • Zero is not the minimum value • Read of Null key positions to most negative (start of file)
File System • Keyed file Physical Read next (VLR) • Quickly reads file in unordered fashion • Provides raw physical read of data • Eliminates processing and disk access related to key structure processing. Sample timing & IO differences on keyed file ~181,000 records
File System • Named formats in Data Dictionary • Language support of variant records • Allows the application to use imbedded dictionaries for legacy non-normalized files • Access to the dictionary is via IOL=“name” • Name defined in dictionary maintenance READ (nnnn) IOL=“Formatname”
File System • VLR enhancements • Update Plus • Allows you to add fields to existing files • Avoids having to change existing in-code IOLISTs • Data is preserved during rewrite • More keys per block for smaller faster files • Eliminates 255 key per block limit • Reduces size of key trees saving space and time • Multi-segment support for Renames and Erases
File System • Closed file cache defers logical disconnect from file in case file reopened • Reuses pre-established connection • Connection truly dropped on terminal input or anything that could suspend processing • Controlled by the ‘+F’ system parameter • ‘+F’ defines the number of cached connections • Eliminate OS file system searches and security checks to improve performance
File System • File access IO compatibility extensions • Concurrent BBX file IO • Can read BBX files while being accessed by BBx • Thoroughbred IO service • Provides Read/Write access to Thoroughbred files
File System • PDF enhancements • Password definition for reading/modifcation • Encryption • PDF 1-a compatibility • Default margins and other settings • Improved Font detection for Linux
File System • Miscellaneous enhancements • *QUERY* Pseudo file • Provides logical access to system queries • PREFIX enhancements • PREFIX DIRECTORY to map directories and files • PREFIX file third field can be IOLIST • REPEAT DATA for data replication REPEAT DATA TO fileno ON fileno • Replicates all updates (WRITE, PRINT, REMOVE, etc) • Improved System journal with automatic rollover
End of Presentation Thank you for attending Coffee Break