Mercurial > pub > bltoolkit
view Source/Doc/ChangeLog.txt @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line source
v 4.1 Enhancement - New Linq converter. - New InsertOrUpdate method. v 4.0 Enhancement - No more .NET Framework 2.0 support. - T4 Templates for Sybase, MS SQL Server, MySql, and PostgreSQL. - Linq over WCF. - Silverlight support. - New attributes TableFunction & TableExpression to support table-valued UDF, hints, and other around table decorations. - Linq DML support. v 3.2 Demo (see the dev version of the project) - Linq.Demo. - WebServices powered by BLToolkit. - Partial.Trust demo. Bug fixes - Extension assemblies are ignored in TypeFactory.GetType(type). - Default parameter values were ignored by OverloadAspectBuilder. - [Parameter(null)] wasn't setting Nullable<> and EditableValue<Nullable<>> values to null - DefaultTypeBuilder throwing exception if [Parameter(value)] was used on EditableValue<Nullable<>> generated properties when Nullable<> did have appropriate constructor accepting value type - DateTimeOffset wasn't handled in DataReaderMapper correctly. Enhancement - Linq provider for supported databases. - New Object to Object mapping. See ExpressionMapper. - PostgreSQL Data Provider added. - Informix Data Provider added. - DB2 Data Provider added. - New SqlIgnore attribute. - New SqlBuilder class. - Partial trust support. - Mapping to/from private classes (FW 3.x only). - New ParamTypeName attribute for SqlServer2008 table-type parameter support (FW 3.x only). - EditableArrayList & BindingListImpl implements INotifyCollectionChanged interface. v 3.1 Bug fixes - MapValueAttribute ignored for nullable enums. - MappingSchema.ConvertChangeType does not handle nullable enums properly. - EditableArrayList indexer add/remove bug. - ParameterAttribute doesn't work with Nullabe<T> and EditableValue<T> when 'T' constructor is not trivial. - BindingListImpl.AddNew does not fire ListChanged event. - Some inner types are missing in ObjectMappes, some included w/o reason. - Setter for ObjectBinder.ItemType fires OnListChanged event before the list changes. - Convert<To,From> does not handle `Nullable<To>' from scalar `From' case. - EditableXmlDocument fires PropertyChanged event before an xml node changes. Enhancement - CHM help file provided. See the Doc folder. - New InstanceCache attribute. - DataAccessor support for IEnumerable<T>. - Multiple duck. See DuckTyping.Aggregate methods. - New Overload aspect. - Own configuration section. - TypeFactory.GetType() is public now. - Simplified GenerateAttributeAttribute usage. v 3.0 Breaking changes - No more support for .Net 1.1 Framework. Bug fixes - EmitHelper.ldc_i4_ emits wrong opcode for numbers from 128 till 255 (bug in msdn) - Some opcodes were not implemented. - MappingSchema.MapResultSets fails with NullReferenceException when no data returned. - Nullable enums were not handled properly. - BindingList.GetItemSortedPosition() returns wrong index for an item at end of the list. - Fixed AsyncAspect and other type builders compatibility. - DbMananger.DiscoverSpParameters fires both OpenConnection and CloseConnection events. Enhancement - DateTimeOffset type support. - MemberAccessor.CloneValue to avoid boxing. - Named arguments support for GenerateAttributeTypeBuilder. - Extended support for IsNull & Nullable types in MemberAccessor. - Support for enum values in EmitHelper.LoadWellKnownValue/LoadInitValue and so on. - Generic GetValue/SetValue methods for ValueHolders. - Different projects to support FW 2.0 & FW 3.5. - LinqMetadataProvider to support Linq To SQL attributes. - Relocated MetadataProvider's to BLToolkit.Reflection namespace. - New DbManager ctors to support manual/custom configuration. - Ability to configure SqlQueryAttribute dynamically. - Assembly is signed. - New ActualTypeAttribute to associate DataAccessor's object type and its implementation. - New AutoImplementInterfaceAttribute to automatically generate interface implementation. - New TypeAccessor.AssociateType method and TypeAccessor.AssociatedTypeHandler event to control interface/type implementation. - DataException now has the 'Number' property. - New ClearCache aspect. v 2.0.7 Bug fixes - Oracle/Odp does not handle colon (':') in ConvertType.ParameterToName. - Property change builder will use op_Inequality operation if it is available to compare property values. - DbManager.ExecuteList<T>(params object[]) add an extra typeof(T) - EditableObject.Clone does reference cloning of its inner objects. - EditableObject.Clone does not track dirty state of its members. - Generated assembly name ends with '.dll'. As a result, System.Reflection.Assembly.Load() tries to load 'SomeAssembly.dll.DLL' and fails. - Oracle treat '\r' as an invalid character. - DataAccessorBuilder calls DbProvider.Convert(NameToParameter) for text query parameters. - SqlQueryBase.GetKeyFieldList was incorrectly marked as public. - TypeAccessorBuilder fails to build a getter/setter if base method is protected. - EditableXmlDocument fails to reject changes if there was an attribute insertion or deletion. Enhancement - FdpDataProvider.QuoteIdentifiers option for FB data provier. - GenerateAtribute attribute to specify any custom attribute for a generated type or member. - SQLite data provider. - DeriveParameters implemented for MsAccess data provider. - XmlIncludeAbstractAttribute to simplify the xml serialization of a BLToolkit generated type. - Better support for internal types/members. The behavior is configurable via Configuration.EditableObjectUsesMemberwiseEquals property. - VS 2008 support. v 2.0.6 Demo - MS PetShop 4.0 powered by BLToolkit (see the dev version of the project). Bug fixes - DbManager.OutputParameter lacks overload with 'size' parameters. - CacheAspect hungs a desktop application on exit. - ExecuteResultSet fails on many-to-one relations. - TypeBuilder fails to override a method with generic parameters or generic return type. Enhancement - ParamSize & ParamDbType attributes to tweak DataAccessor parameters. Especially output ones. - All 'emit.stloc' immediately followed by 'emit.ldloc' were replaced with simple 'emit.dup' command. Lots of redundant local variables were removed. - UnitTests for Oracle, Firebird & Access (Jet) - DataSetTableAttribute is handled by all DataSet/DataTable related methods of DataAccessBuilder. - ClearCache method for CacheAspect. - Metadata provider for mapping. - Ability to specify global assembly version & strong name key pair. - AsyncAspect to execute any method asynchronously. - Added support for ConnectionStrings config settings. - Editable XmlDocuments. - Added support for IDictionary, IDictionary<,>, IList, and IList<> abstract data accessor return types. v 2.0.5 Breaking changes - DbManager.InitCommand renamed to OnInitCommand. Bug fixes - System.Reflection.Emit.AssemblyBuilder assemblies are processed properly. - RegExAttribute - now properly returns valid==true only when whole value is equal to match. - EditableObject serialization issue - StandardPropertyDescriptor.CheckNull was always returning DBNull.Value if _isNull handler was returning null. Now configurable via Configuration.CheckNullReturnIfNull. - PropertyChangedBuilder was crashing when property was not public - ObjectBinder.IsNull was serialized to resources - Oracle provider now handles arrays of nullable types correctly. - DataAccessor.PrepareParameters was invoked only to ref parameters. - DataAccessor.PrepareParameters lacks DbManager which may be external. - DbManager.InitParameters did hot handle decimal type. - MappingSchema.ValueToEnum fails with underlying type other then Int32. - CounterAspect catches the OnCatch event now to count exceptions. - DbManager.ExecuteForEach does not call InitParameters in the loop. Enhancement - Ability to specify RegexOptions for RegExAttribute. Regex not being created on every call to IsValid - Destination attribute works with scalar types. - DataAccessorBuilder generates getters/setters for abstract properties & indexers. - Ability to specify globaly whether strings should be trimed when mapping - Ability to specify whether PropertyChange notification should only be fired when underlying value is changed and not when setter is called - XmlDocument type support. - DbManager.SetParameters() accepts arrays of IDbDataParameter. - DataSetTableAttribute for DataAccessorBuilder to explicitly specify DataSet table name. - Default CacheAspect.IsWeak value changed to false. - Cleanup thread for CacheAspect. - MemberMapper type can be specified directly in the target type declaration. - Events for DbManager.OnBeforeOperation, OnAfterOperation, OnOperationException & OnInitCommand. v 2.0.4 Bug fixes - By default, the mapper included const fields into map list (???). - If enum does not have explicit mapping, data accessor builder does not convert it to underlying type. - MemberMapper fails to convert an object to its base type. - BindingListImpl.RemoveSort was not firing ListChange event. - TypeAccessor.CreateExtendedPropertyDescriptors did not work properly with 3rd+ level nested properties. - Object holder ignored NoInstanceAttribute. - ValidatorContext caches NullValue. - EditableObject.RejectChanges/RejectMemberChanges were not firing PropertyChanged event for reverted fields. - Fixed the generating IsValueType && !IsPrimitive ref/out parameters. Enhancement - Operator<T> is extensible now. - ObjectBinder can now control lifetime (Disposal) of underlying collection. - DuckTyping. - ParamNullValue attribute. - Virtual method DataProviderBase.PrepareCommand to let a data provider modify SQL statement befory query. - Virtual method CacheAspect.GetCache. Can be used to provide a custom hashtable. v 2.0.3 Bug fixes - Race condition in MappingSchema.GetObjectMapper. - DbManager will not try to close the connection in the finalizer anymore. - MinValue/MaxValue attributes now determine value type by object property/field instead of test value. - Fixed obscure case when object is removed from EditableArrayList/BindingListImpl while ItemPropertyChanged delegate is in process of being executed and collection handler was not yet invoked. Enhancement - HttpReader SOAP support. - Convert<T,P> uses type cast operators when available. - Third party DataProvider registration via appsettings. - More specification adherent sorting behavior implementation of IBindingList/IBindingListView in BindingListImpl. - EditableArrayList (potentially breaking changes) heavily relies on BindingListImpl for IBindingList/IBindingListView and their base interfaces implementation. - BindingListImpl is changed to be fully specification adherent binding wrapper for other object lists/collection types. - 2.0.1 version obsolete methods have been removed. v 2.0.2 Bug fixes - Abstract class builder overrode virtual final methods. - Append records to a log file. - ObjectBinder's AllowNew, AllowEdit, AllowRemove properties serialization. Enhancement - New DataAccessor<T,A> class. - Direction.ReturnValueAttribute takes the Member parameter in '@fieldName' format. - New property Object of the InterceptCallInfo class, which is an intercepted object reference.