One big problem while developing an application is the question: Should I use attached libraries as *.pll or *.plx?
Let's have a look at some cases:
A) You use pll+plx while developing the application. The Forms Builder uses the working directory C:\Forms and the FORMS_PATH has an additional path to the directory C:\Forms\Lib. The Sourcefiles have the name Lib.pll, the Menu.mmb and EMP.fmb.
If there is a generated Lib.plx in c:\forms or c:\forms\lib, then this is the version, which will be used at runtime.
This is the direction of how Forms searches for attached libraries:
1) If Lib.plx is in your working directory - take it
2) If not found, search in the FORMS_PATH for Lib.plx
3) If not found, search in the working directory for Lib.pll
4) If not found, search in the FORMS_PATH for Lib.pll
5) If the library can't be found - Forms raises an error
This is identical to menu-mmx and forms-fmx
If the plx in the local working directory is an older version than the pll, this will cause big problems while running the forms-application. Finding errors is very tricky, if the developer didn't look on the timestamps of the libraries.
B) You use only pll's in your application.
You have no problems while developing the application or at runtime. If a library in your working directory didn't exist, then the library can be found in the FORMS_PATH.
Summary:
I never use plx because I saw many projects run into the plx-trap.
Many developer say: plx is faster, but I never had performance problems with the pll's.
Other developer say: plx is only the compiled code, so nobody can steal my sourcecode or something valuable from within the code - in that case try this example:
Create a library with a package and this variable:
PACKAGE Const IS
HiddenPW CONSTANT Varchar2 (100) := 'HiddenPW';
END Const;
Generate the plx and open it in an editor. Search for "HiddenPW". You'll find the name of the variable and the string associated to the var. That's not secure in my eyes. Only the sourcecode is hidden. I think, that a pll on an Application Server is secure enough.
If the application is standard software and not for free, then you must use the plx-technique and wrapped packages in the database.