Do you have any documentation on the AUDIT and SEC tables and entities? I notice that events are automatically logged to the AUDITEvent table such as "%Screen, User logged in to %Company (%Language)" and would like to know how to use audit and security.
Documentation of the JCL security framework is being pepared and hopefully it will be posted with the coming JCL update.
On page 38 of your documentation the note says that data access methods assume that an object is loaded with all it's child properties (1 to 1 and 1 to n relations) prefetched.
Does this mean, if I have a customer with 500 orders and each order has 1 to 10 order lines, each order line has, for example 1 supplier and various other related objects etc, that all this data will be retrieved from the persistant storage every time the customer is loaded or is this where prefetch paths come in?
I will proparly have to elaborate this note you are refering to in the coming update.
This is one area that changed alot during the devolopment of JCL and its use for our company's ERP:
1- A BL class should be as light as possible. This is in agreement of your discussion and as such any related objects should NOT be loaded automatically. This allows for the BL object to be useful in other senarios (like populating a combo or just a simple function. You don't want to poulate a combo-box with a collection of order objects that each loads all its related objects)
2- The BL class should facilitate for its consumer (usually the UI devoloper) to use any of its prefetch paths to load the related objects. In this case, the intention to load related objects is explicit (and not implicit) so that the BL consumer knows what he is doing (hopefully!!
)
3- In the book version of CSLA.NET, a BL object would automatically load all its CHILD related objects (1-to-1 and 1-to-many). In a later update, Rocky outlined how the BL devoloper could facilitate Lazy Loading by postponing fetching child objects until needed.
This is in agreement to the previous two points so that the UI devoloper (for example) would use the prefetch paths to fetch all related child objects for each order object in the orders screen as he populates the data-source collection of the screen.
The bottom line. JCL will NOT fetch any related objects unless you explicitly specify a prefetch path with any of JCL's or the BL's fetch functions.
Is the syntax for using the JCL generated BL objects the same as is documented in the LLBL Gen (Adapter) documentation?
JCL should be though of as a BL wrapper around LLBL's DAL generated code. JCL does not promote its own syntax.
Where CSLA.NET uses its architecture to execute standard ADO.NET code; JCL uses a very similar architecture to execute standard LLBL code.
UI <==> BL <==> DB
The BL layer is sub-divided into three layers. The upper BL layer facing the UI is a JCL's BL class. The lower BL layers are LLBL's Database Generic and Database Specific layers respectivly.