'Adapter' template set delayed

Posts   
 
    
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39776
Joined: 17-Aug-2003
# Posted on: 27-Nov-2003 13:06:42   

The new template set and accompanying base classes is delayed. The beta is now scheduled for Dec. 15.

Frans Bouma | Lead developer LLBLGen Pro
swallace
User
Posts: 648
Joined: 18-Aug-2003
# Posted on: 27-Nov-2003 16:45:41   

Can you tell us a bit more about the purpose for this one? Did I miss a thread somewhere that explained it?

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39776
Joined: 17-Aug-2003
# Posted on: 27-Nov-2003 21:59:55   

swallace wrote:

Can you tell us a bit more about the purpose for this one? Did I miss a thread somewhere that explained it?

It's the template set which is described here: http://www.llblgen.com/tinyforum/Messages.aspx?ThreadID=168 and in other threads as the 'new template set' simple_smile Basicly it's a bit more advanced than the current template set which now has a name: 'SelfServicing' (because entities serve themselves).

You get 2 projects, a database generic one and a database specific one. The database generic one contains entities, factories, typed lists etc. but no database specific classes at all. Entities also don't have a save method or any logic which does anything with a data access object (DAO). All that information and logic is stored in the database specific project. There, the persistence information for each field and entity is stored plus a generic DAO object which can persist any entity and work with any set of entities and query. This DAO object can do a lot more than the current one, for example keep a connection open so you can perform multiple queries over the same connection (for example loading all data for a webpage or BL component), and it can accept a connection string and load config info from the .config file. What's also important is that the DAO object connects an entity with teh persistence info of its fields, which means that you can program against 1 database generic class set, and have 2 database specific projects: one for oracle and one for Sqlserver. It's the plan that it should be possible to for example load an entity from oracle and save it in sqlserver (just an example what's possible simple_smile )

What's even better is that there will be a generic collection class. This has a big advantage over the selfservicing model, because now you can inherit from the generated entity classes and still use the collection class. With the selfservicing template set you can't, or at least you lose the typed indexer. The generic collection class is of course not equiped with a typed indexer, but contains a more generic property descriptor engine so your inherited classes with for example new (not persisting) properties will be handled correctly in a databinding environment.

This requires some refactoring of the ORM Support classes library, but the plan is that current code will be compatible with the new lib (the new template set gets new base classes)

Personally I'm happy with the design of this template set, as it offers more extensibility of the classes with for example a manager object which controls DAO objects and a cache object. It also is more down to earth so it will lack some 'ease of use' things like myCustomer.Orders[0].Products, because an entity doesn't know how to contact the database, however it will be possible to populate entities when they're fetched with all their direct related objects directly, using a DAO property. The Adapter DAO object will be extended in the coming months to get more functionality like easier fetching of related objects using a serie of related entities as 'join path'.

Frans Bouma | Lead developer LLBLGen Pro
swallace
User
Posts: 648
Joined: 18-Aug-2003
# Posted on: 28-Nov-2003 14:58:50   

Wow. Very impressive. I can't begin to see all the benefit. Several come to mind.

And yet you find time to sleep. That's the amazing part...

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39776
Joined: 17-Aug-2003
# Posted on: 28-Nov-2003 15:29:16   

swallace wrote:

Wow. Very impressive. I can't begin to see all the benefit. Several come to mind.

The benefits are indeed very big, I hope to cramp in as much 'ease of use' in this one as well as there is in the selfservicing template set, but it will be a little less I think in the initial release..

And yet you find time to sleep. That's the amazing part...

heh simple_smile sleep, good idea, it's added to the todo list wink

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39776
Joined: 17-Aug-2003
# Posted on: 19-Dec-2003 19:12:08   

Ok, the state of the adapter template set so far: - generates 2 projects, database specific, database generic - entity fetch, save, delete - entity collection save, delete fetch - entity navigation through related entities fetched into collections/members internally. - Typed List fetch/filter/sort - Typed View fetch/filter/sort

So, the big part is done, the smaller parts are now to be implemented, I hope to finish these this weekend.

I'm a bit sceptical if I will add a feature to plug a data-access-adapter object into an entity which will then be used to populate collections inside the entity. The reason for that is that objects inside those collections also have to have this adapter object inside themselves to support navigation. The adapter object is then referenced by a lot of objects (in some situations). Keeping one or two of these around will cause that the adapter object will not get garbage collected and will stay in memory, which can result in memory leaks. It's addable later, so no worries.

(21-12-2003) Just the stored procedure calls and then it should be 'feature complete' for the beta. I'll hope to add stored proc calls to the code monday morning and port the database specific stuff to Oracle templates and release the template set later on monday in a beta release.

During beta period I'll add more code to test and will test the template set further. I'll then also adjust the SelfServicing template set with some small enhancements.

Frans Bouma | Lead developer LLBLGen Pro
erichar11
User
Posts: 268
Joined: 08-Dec-2003
# Posted on: 20-Dec-2003 19:46:32   

Hi Frans,

will this template set be available for those of us who are currently evaluating your product. Would like to try it with the Northwind database.

p.s. I'm hoping to purchase llblgenPro after Christmas, if Santa gives me a little help sunglasses

Eric

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39776
Joined: 17-Aug-2003
# Posted on: 20-Dec-2003 20:30:13   

erichar11 wrote:

Hi Frans,

will this template set be available for those of us who are currently evaluating your product. Would like to try it with the Northwind database.

p.s. I'm hoping to purchase llblgenPro after Christmas, if Santa gives me a little help sunglasses

Eric

Not during the beta period. But after the beta is done, it will be added to the package so it will be available in the demo as well. simple_smile

(where's that phonenumber of Santa when you need it wink )

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39776
Joined: 17-Aug-2003
# Posted on: 23-Dec-2003 18:43:56   

Ok, after hunting the last obvious bugs and mistakes in interface implementation (which took all day unfortunately), it is feature complete for SqlServer, I'll port the Oracle templates tomorrow and will release the beta. I'll announce the beta here.

It will not contain updates for selfservicing templates, but will contain a new ORMSupportClass library with a some enhancements for selfservicing.

There is a known issue with the VB.NET templates for oracle (stored procedure call templates). This issue is not patched with the beta, because no VB.NET templates are released, however when Adapter is released, this issue is fixed as well. If you have problems with this issue, mail support@llblgen.com and request the updated VB.NET template for storedproc calls.

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39776
Joined: 17-Aug-2003
# Posted on: 24-Dec-2003 17:03:46   

Ok, it's here, adapter has seen the light of day. I'm exhausted now and will take a break for a few days (what a coincidense, x-mas is also in these 2 days wink ). Happy testing. simple_smile

Frans Bouma | Lead developer LLBLGen Pro