1.0.2003.3 beta started!

Posts   
 
    
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39777
Joined: 17-Aug-2003
# Posted on: 23-Feb-2004 21:00:21   
Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39777
Joined: 17-Aug-2003
# Posted on: 27-Feb-2004 18:26:19   

Second beta is posted! Surf to the runtime libraries section for the goods.

As you can see, GUI bugfixes are rolled into this beta as well. This is because the beta is shipped as one archive so they can be tested out as well.

Complete what's new list for this beta:

FIXED: * SelfServicing templates - When a collection was empty after a first fetch, it would be refetched over and over again. - EntityRelation property name generation for 1:1 relations is fixed. This fix causes code breakage as it is now generating the property name using the field mapped on the 1:1 relation in the related entity IF the current entity is on the FK side of the 1:1 relation. If the entity is on the PK side, nothing changes. * Adapter templates - EntityCollection template for VB.NET contained a foreach construction which would not compile on VB.NET 1.0 compiler. - resultsetAdapter.template overwrite Name property of the entity field, a new field Alias is added to IEntityField2 to fix this. - daaAdapter.template contained hardcoded the connection string key element name, instead of <[ConnectionStringKeyName]> - Entities with a 1:1 relation had a problem when constructions like myEntity.RelatedEntity = myRelatedEntity; were used: infinite loops or missing synchronization information were the result. - CommandTimeOut was not set when calling a stored procedure. - EntityRelation property name generation for 1:1 relations is fixed. This fix causes code breakage as it is now generating the property name using the field mapped on the 1:1 relation in the related entity IF the current entity is on the FK side of the 1:1 relation. If the entity is on the PK side, nothing changes. * SqlServer driver - When retrieving resultset numbers for stored procedures, no exception will fail the routine anymore. * GUI - Adding new entities to a large project is now much faster. - Several fixes in the amount resultset area for sp calls. Changing the value from 0 to 1 will not result in unloadable projects nor exceptions anymore. - Fixed the 1.7.4.0 Magic library so it will not crash on regional settings issues with guistate.xml but it will deal with different formats of Size and Point values correctly. New version is 1.7.4.1 and this is a version signed by Solutions Design, with the same key as all LLBLGen Pro assemblies. * ORMSupportClasses - Up to 200% speed increase in SelfServicing and Adapter code. - EntityCollectionBase2 didn't serialize internal member containsDirtyContents. - Adapter didn't have correct syncing setup code for 1:1 relations. Adapter also didn't reset syncing information if the related entity property was overwritten or set to null or a related entity was removed from a collection. - Adapter: adapter didn't remove eventhandlers in EntityCollectionBase2.RemoveAt() - SelfServicing: selfservicing didn't remove eventhandlers in EntityCollectionBase.RemoveAt(). - Isolation level specified in StartTransaction() was ignored in DataAccessAdapterBase. - DataAccessAdapterBase.Dispose() with an active transaction pending resulted in a NullReference. - FieldBetweenPredicate marked itself as SelfServicing when an Adapter specific constructor was used.

CHANGED: * SelfServicing templates: - Entity classes now only fetch data in the GetMulti* and GetSingle* methods if the object isn't serializing. - ToXml() methods are now marked Obsolete and will generate a compiler warning when used. - Member collections are no longer cleared when new data is fetched, unless the AlwaysFetch<fieldName> is set to true, or the fetch is forced (via myEntity.GetMulti*(true); ) - *EntityBase classes in two class scenario are now abstract/MustInherit - When fetching an entity, the entity class will pass the IEntityFields object already in the entity to the DAO object instead of that the DAO object creates a new IEntityFields object. - The default value for Guid types is now Guid.Empty. * Adapter templates: - daaAdapter.template is refactored: a lot of code has been moved to the base class DataAccessAdapterBase. A lot of utility routines have been added to this class so extending DataAccessAdapter through inheritance is now possible. - The default value for Guid types is now Guid.Empty. * GUI - Subtask Progress bar is now used to reflect the current element being generated. - Connection parameters set when refreshing the catalog can now be made permanent: the next time the catalog/schema is refreshed, the previous set settings are used, if the changed settings are made permanent by clicking Yes in the dialog asking you to do so. - Release date of designer is now reflected in the title bar. * SqlServer DQE - Much faster fieldname construction routine * ORMSupportClasses - EntityCollectionBase2 didn't set related entity information if an entity was inserted with Insert() or via the indexer - EntityCollectionBase : AllowNew, AllowRemove and AllowEdit are now serialized as well. - EntityBase2: IEntity2.ConcurrencyPredicateFactory wasn't included with assembly type and name in the XML written by WriteXml, nor was it properly re-instantiated - IRelationCollection.Add() now returns the added EntityRelation object, so constructions like: myRelationCollection.Add(relationObject).CustomFilter.Add(myPredicate); are possible now. - Removed reference of winforms and system.drawing from orm support classes library project - IConcurrencyPredicateFactory has been changed to remove a design flaw. This will break existing implementations.

ADDED: * SelfServicing, ORMSupportClasses - ReadXml() / WriteXml() implementations on entity classes and entity collections - AlwaysFetch<[MappedFieldNameRelation]> property (bool, default false) added to entityclasses to control Lazy Loading for <[MappedFieldNameRelation]>. - myEntity.RelatedEntity = myRelatedEntity support and FK - PK synchronisation support - Support for recursive saves. Default behaviour is still set to 'non recursive' to avoid code breakage. - Support for restricted deletes: Delete(Predicate); - dbUtils*.CommandTimeOut property to control, on a global basis the command time out of the ADO.NET commands executed. Specified in seconds. - Support for the new FieldCompareRangePredicate object, both in the PredicateFactory template as well as in the ORM Support classes. - constantsEnums.template now checks for existence of Entities in the project and if no entities are found, empty namespaces are created. - EntityBase.GetCurrentFieldValue now checks for IsDeleted (throws ORMEntityIsDeletedException) and for a valid fieldIndex. - Support for IConcurrencyPredicateFactory interface and implementing objects during entity deletes and recursive saves. - IEntityField now has a field Alias which can explicitely used to specify an alias for a field in a typed list. - TypedList and TypedView now have a new overload of Fill(), which accepts an ITransaction object so the fill will run in that transaction and avoids deadlock on sqlserver. TypedListDAO.template has been altered as well to support the new ITransaction parameter. * Adapter, ORMSupportClasses - Support for the new FieldCompareRangePredicate object, both in the PredicateFactory template and DataAccessAdapter template as well as in the ORM Support classes. - constantsEnums.template now checks for existence of Entities in the project and if no entities are found, empty namespaces are created. - IEntityField2 now has a field Alias which can explicitely used to specify an alias for a field in a typed list. - Added the following methods to DataAccessAdapterBase and IDataAccessAdapter: (the On<action> methods are called right before the action takes place, the On<action>Complete methods are called right after the action.) OnSaveEntity, OnSaveEntityComplete, OnSaveEntityCollection, OnSaveEntityCollectionComplete, OnDeleteEntity, OnDeleteEntityComplete, OnDeleteEntityCollection, OnDeleteEntityCollectionComplete, OnFetchEntity, OnFetchEntityComplete, OnFetchEntityCollection, OnFetchEntityCollectionComplete, OnFetchTypedList, OnFetchTypedListComplete, OnFetchTypedView, OnFetchTypedViewComplete, OnDeleteEntitiesDirectly, OnDeleteEntitiesDirectlyComplete, OnUpdateEntitiesDirectly, OnUpdateEntitiesDirectlyComplete * TDL/Parser/Interpreter - If HasEntity statement. Will be true if one or more entities are defined in the project. - If IsStringField statement. (Customer request). Will be true if the current EntityField, TypedListField or TypedViewField is of type System.String. * ORMSupportClasses/DQEs - ITypedListLgp(2) and ITypedView(2) interfaces added. - New version struct added, RuntimeLibraryVersion, which contains the version and buildnumber of this library and DQE's. - Support for a custom PredicateExpression in EntityRelation (through the CustomFilter property). This predicate expression will be added to the Join's ON clause resulting from the EntityRelation object. - IEntity.IsDirty and IEntity2.IsDirty mirror IEntity/IEntity2.FIelds.IsDirty (get/set) - IEntity.PrimaryKeyFields and IEntity2.PrimaryKeyFields mirror IEntity/IEntity2.Fields.PrimaryKeyFields (get) - IEntityValidator interface added. Interface is for custom entity validator objects. - IEntity/IEntity2.Validate() added and also calls to IEntityValidator.Validate() in Save logic (also during recurse saves). - Added ORMEntityValidationException definition, which can be thrown by the IEntityValidator.Validate() method. - FieldCompareRangePredicate class.


Changelogs since the first beta:

CORE/GUI/TASKPERFORMERS/TEMPLATES

FINAL, 27-feb-2004

FIXED: * (Adapter templates, VB.NET) : TypedViewAdapter didn't specify the correct interface for .Count. * (GUI) : Several fixes in the amount resultset area for sp calls. Changing the value from 0 to 1 will not result in unloadable projects nor exceptions anymore. * (GUI) : Minor typo's

CHANGED: * (Templates) : The default value for Guid types is now Guid.Empty. It was Guid.NewGuid(). If this breaks your code, you should change your code so it doesn't rely on default values. It is never recommended to use these default values for NULL testing. Always use TestOriginalFieldValueForNull(). * (GUI) : Release date of designer is now reflected in the title bar.

ADDED: * (Templates, selfservicing): TypedList and TypedView now have a new overload of Fill(), which accepts an ITransaction object so the fill will run in that transaction and avoids deadlock on sqlserver. TypedListDAO.template has been altered as well to support the new ITransaction parameter.


FINAL, 25-feb-2004

FIXED: * (Magic Lib) : Fixed the 1.7.4.0 Magic library so it will not crash on regional settings issues with guistate.xml but it will deal with different formats of Size and Point values correctly. New version is 1.7.4.1 and this is a version signed by Solutions Design, with the same key as all LLBLGen Pro assemblies. * (Templates) : >>>>>>>>>>> IMPORTANT <<<<<<<<<<<<<<<< entityRelations.template was changed to fix a serious bug in the EntityRelation property name generation for 1:1 relations. The fix causes code breakage as it is now generating the property name using the field mapped on the 1:1 relation in the related entity IF the current entity is on the FK side of the 1:1 relation. If the entity is on the PK side, nothing changes. Example: Customer has 2 1:1 relations with Address: Customer.VisitingAddressID (1:1) Address.AddressID and Customer.BillingAddressID (1:1) Address.AddressID. This would result in duplicate names in the AddressRelations class: two times CustomerEntityUsingAddressID. It will now be: CustomerEntityUsingVisitingAddressID and CustomerEntityUsingBillingAddressID in the AddressRelations class and in the CustomerRelations class there will be no difference: AddressEntityUsingVisitingAddressID and AddressEntityUsingBillingAddressID.

CHANGED: * (GUI) : Connection parameters set when refreshing the catalog can now be made permanent: the next time the catalog/schema is refreshed, the previous set settings are used, if the changed settings are made permanent by clicking Yes in the dialog asking you to do so.


RUNTIME LIBRARIES/DQEs

FIXED: * (ORM Support classes) : A typed list wasn't serializing the table name. * (ORM Support classes/Oracle DQE) : When a 3rd entity was added to a join list, and it was joined via a relation with an entity which was added using a weak relation to the first entity, the 3rd entity should be added using a weak relation as well. This has been fixed, as it resulted otherwise in INNER JOIN joins, which were not appropriate. Only effected when ObeyWeakRelations is set to true.

ADDED: * (ORM Support classes) : ITypedListLgp and ITypedView now have an extra definition of Fill() which accepts an ITransaction object. This can be useful to avoid deadlocks on Sqlserver.

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39777
Joined: 17-Aug-2003
# Posted on: 04-Mar-2004 15:27:08   

3rd beta is posted!!

some small bugfixes in this release and the FULL documentation for this release. The documentation contains revisited texts and has new sections: migration of code, best practises: How do I..? and full documentation on the new selfservicing features.

Frans Bouma | Lead developer LLBLGen Pro
brettlj
User
Posts: 27
Joined: 08-Feb-2004
# Posted on: 04-Mar-2004 16:24:30   

The download link (http://www.llblgen.com/pages/secure/filestreamer.aspx?filename=1.0.2003.3.beta.03042004.zip) doesn't seem to be working, it just redirects to the "Customers' area" page. I'm using Firefox, so I KNOW it's not my browser. simple_smile

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39777
Joined: 17-Aug-2003
# Posted on: 04-Mar-2004 16:26:45   

Was typo in the filename (00304... instead of 0304...). It should work now simple_smile

Frans Bouma | Lead developer LLBLGen Pro
jeffreygg
User
Posts: 805
Joined: 26-Oct-2003
# Posted on: 04-Mar-2004 18:45:15   

Speaking of Firefox...is it that great? How does it compare/contrast with IE 6? And, BTW, I don't care about standards compliance, per se. I just care how usable it is.

Jeff...

bertcord avatar
bertcord
User
Posts: 206
Joined: 01-Dec-2003
# Posted on: 04-Mar-2004 21:03:41   

This is a pet peeve of mine and don't know if you can do anything to fix it.... (now dot was too much time as relations defined in the designer is much more important stuck_out_tongue_winking_eye )

Whenever the documentation loses focus the navtree on the left hides. I wanted to open the new and the old docs side my side and compare the tree structure..... but with behavior I can not

Is their a way for you to compile the help so this doesn't happen?

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39777
Joined: 17-Aug-2003
# Posted on: 05-Mar-2004 09:31:09   

jeffreygg wrote:

Speaking of Firefox...is it that great? How does it compare/contrast with IE 6? And, BTW, I don't care about standards compliance, per se. I just care how usable it is.

It's a very great browser. You need the tabbrowser extensions plugin and the flashblocker plugin and you're set (the flashblocker creates a clickable button on spots where flash is located on a page. So no more nagging adds. If you wnat to see the flashmovie, click the button simple_smile

I only use IE for rare occasions where firefox can;t view the page correctly (f.e. when iframes are used).

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39777
Joined: 17-Aug-2003
# Posted on: 05-Mar-2004 09:33:55   

bertcord wrote:

This is a pet peeve of mine and don't know if you can do anything to fix it.... (now dot was too much time as relations defined in the designer is much more important stuck_out_tongue_winking_eye )

Whenever the documentation loses focus the navtree on the left hides. I wanted to open the new and the old docs side my side and compare the tree structure..... but with behavior I can not

Is their a way for you to compile the help so this doesn't happen?

simple_smile

No I'm afraid there is no way to disable this. rage I've seen it too, must be a thing of the helpviewer executable.

MS' next gen help compiler can only compile for a given vs.net version or you need to include a separate help viewer. I'll see if I can use these...

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39777
Joined: 17-Aug-2003
# Posted on: 06-Mar-2004 18:10:39   

The final beta is uploaded.

Changes:

FINAL, 06-mar-2004

FIXED: * (* Drivers) : If a table (or synonym) was removed for some reason, constraint retrieval failed in an exception in some cases.

ADDED: * (SelfServicing) : GetMultiAsDataTable() method of the entity collections now have an overload which accepts a relation collection as well.

FIXED: * (Adapter templates, Oracle) : new oracle templates resulted in non-compilable code in some situations. * (GUI) : when strip patterns were cleared, adding elements to the projects threw exceptions.


RUNTIMES: 1.0.2003.3, 06-mar-2004

FIXED: * (SqlServer DQE) : If a RelationCollection was re-used in another call, the parameters of a CustomFilter were not cleared.


1.0.2003.3, 05-mar-2004

FIXED: * (ORM Support classes) : EntityCollectionBase2 didn't restore the state of the dirty contents flags and collections after a deserialization or restore from Xml using ReadXml(). * (ORM Support classes) : EntityBase.ToXml() contained an invalid cast.

Frans Bouma | Lead developer LLBLGen Pro
bertcord avatar
bertcord
User
Posts: 206
Joined: 01-Dec-2003
# Posted on: 09-Mar-2004 18:12:46   

Otis wrote:

bertcord wrote:

This is a pet peeve of mine and don't know if you can do anything to fix it.... (now dot was too much time as relations defined in the designer is much more important stuck_out_tongue_winking_eye )

Whenever the documentation loses focus the navtree on the left hides. I wanted to open the new and the old docs side my side and compare the tree structure..... but with behavior I can not

Is their a way for you to compile the help so this doesn't happen?

simple_smile

No I'm afraid there is no way to disable this. rage I've seen it too, must be a thing of the helpviewer executable.

MS' next gen help compiler can only compile for a given vs.net version or you need to include a separate help viewer. I'll see if I can use these...

I figured out how to fix this...... I decomilied the new help file using MS help... and then I recompiled it and the tree no longer hides. I will send you the MS hlp files

you can download here to checkout www.corderman.com/LLBLGenPro.chm

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39777
Joined: 17-Aug-2003
# Posted on: 09-Mar-2004 18:21:20   

whoa simple_smile thanks for the tip! simple_smile

I've been looking for an option how to disable this, but I couldn't find one. simple_smile I'll check out the decompiled help to see if it sets a hidden setting somewhere (I also want more buttons in the button bar but these apparently aren't settable either... rage

(oh wait, I can also check ndoc's hhp file, that help also doesn't flap the tree in)..

thanks for the effort, Bert! simple_smile

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39777
Joined: 17-Aug-2003
# Posted on: 09-Mar-2004 18:35:37   

I've repacked the .chm file. In the settings were some hexadecimal values inserted there by the ms help compiler, and a 1 should have been a 0. It now works. I've uploaded a new .chm to the documentation section for the people who want to have a .chm which doesn't flap in the tree simple_smile

Frans Bouma | Lead developer LLBLGen Pro