Date post: | 17-Dec-2015 |
Category: |
Documents |
Upload: | silvester-west |
View: | 224 times |
Download: | 6 times |
DireXions+ 2011 – PxPlus
PxPlus – Past and Present
Michael F. King
President PVX Plus Technologies
Original developer of ProvideX and PxPlus
DireXions+ 2011 – 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
DireXions+ 2011 – PxPlus
PxPlus Features
• Installation and Setup• Language Extensions• File System
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
Installation and Setup
•Uses Application directory for storage of settings•INI files for Nomads and debugger stored in PxPlus subdirectory of user Application Data directory.
•News/Announcement system on Windows•Controllable by system menu (upper left corner)
•Removes requirements to register any DLL’s•Installation can be done using simple unZIP/copy
Version 10
Features
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
Language Extensions• Object Oriented Interface enhancements– Dynamic properties– Automatic Housekeeping– Ability to MERGE Objects– Object Caching– Object defined/enhanced controls
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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 clauseMyObj = NEW(“object” FOR Dependency)
Helps reduce programming errors and logic
DireXions+ 2011 – PxPlus
Language ExtensionsObject Oriented Programming
• Merging objects– Allows properties / methods of one object to
cascade/merge with another
MERGE 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)
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
Language Extensions
•CALLBACKS using the DLL function•Uses Event-style function calls to handle call-back•Function based directives•FN_xxxx(…) can be used in line to run a user defined function as a directive•Like a GOSUB but with passed parameters•Return value ignored
•Enhanced STR and STP functions•STP function added strip all but set of characters•STR function added hidden mask of “~”•Improved system error log
Version 10
Features
DireXions+ 2011 – PxPlus
Language Extensions
•Dynamically allocated arrays•DIM Array[*] declares dynamic base 1 array•Setting Array[*] adds element to end of array as does setting last plus 1
•IF string$ test for null (true if NOT null)•Simplifies coding to eliminate <>”“ function•Pseudo Objects for Windows, File and Controls•Allows access to any windows/control attribute •Animated GIFS•STATIC directive can use IOL=xxx to define variables
Version 10
Features
DireXions+ 2011 – PxPlus
File System• Direct File Access– Use pathname to file instead of channel number in
IO directivesREAD (“AR0001”, KEY=“….)WRITE (“c:\Foobar\Bar1”) A$
– Applies to IO functions as wellK$=KEY(“AR0001”)
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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)
DireXions+ 2011 – PxPlus
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 & IOdifferences on keyed file~181,000 records
Test Results Time (seconds) File IO Count
Read Next by Key
2.133 185,982
Read Next Physical
1.042 16,831
Select by Key 2.373 185,983
Select by Physical
1.252 16,832
DireXions+ 2011 – PxPlus
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”
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
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
DireXions+ 2011 – PxPlus
File System• PDF enhancements– Password definition for reading/modifcation– Encryption– PDF 1-a compatibility– Default margins and other settings– Improved Font detection for Linux
DireXions+ 2011 – PxPlus
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 replicationREPEAT DATA TO fileno ON fileno– Replicates all updates (WRITE, PRINT, REMOVE, etc)
– Improved System journal with automatic rollover
DireXions+ 2011 – PxPlus
File System
•Non-segment VLR files > 2GB•More keys for VLR files•*VIEW* Pseudo file•Provides logical access to a view•Access by logical Pseudo file handle•FIN settings now available as properties
Version 10
Features
DireXions+ 2011 – PxPlus
End of Presentation
Thank you for attending
Coffee Break