0
|
1 v 4.1
|
|
2
|
|
3 Enhancement
|
|
4
|
|
5 - New Linq converter.
|
|
6 - New InsertOrUpdate method.
|
|
7
|
|
8
|
|
9 v 4.0
|
|
10
|
|
11 Enhancement
|
|
12
|
|
13 - No more .NET Framework 2.0 support.
|
|
14 - T4 Templates for Sybase, MS SQL Server, MySql, and PostgreSQL.
|
|
15 - Linq over WCF.
|
|
16 - Silverlight support.
|
|
17 - New attributes TableFunction & TableExpression to support table-valued UDF, hints,
|
|
18 and other around table decorations.
|
|
19 - Linq DML support.
|
|
20
|
|
21
|
|
22 v 3.2
|
|
23
|
|
24 Demo (see the dev version of the project)
|
|
25
|
|
26 - Linq.Demo.
|
|
27 - WebServices powered by BLToolkit.
|
|
28 - Partial.Trust demo.
|
|
29
|
|
30 Bug fixes
|
|
31
|
|
32 - Extension assemblies are ignored in TypeFactory.GetType(type).
|
|
33 - Default parameter values were ignored by OverloadAspectBuilder.
|
|
34 - [Parameter(null)] wasn't setting Nullable<> and EditableValue<Nullable<>> values to null
|
|
35 - DefaultTypeBuilder throwing exception if [Parameter(value)] was used on
|
|
36 EditableValue<Nullable<>> generated properties when Nullable<> did have appropriate
|
|
37 constructor accepting value type
|
|
38 - DateTimeOffset wasn't handled in DataReaderMapper correctly.
|
|
39
|
|
40 Enhancement
|
|
41
|
|
42 - Linq provider for supported databases.
|
|
43 - New Object to Object mapping. See ExpressionMapper.
|
|
44 - PostgreSQL Data Provider added.
|
|
45 - Informix Data Provider added.
|
|
46 - DB2 Data Provider added.
|
|
47 - New SqlIgnore attribute.
|
|
48 - New SqlBuilder class.
|
|
49 - Partial trust support.
|
|
50 - Mapping to/from private classes (FW 3.x only).
|
|
51 - New ParamTypeName attribute for SqlServer2008 table-type parameter support (FW 3.x only).
|
|
52 - EditableArrayList & BindingListImpl implements INotifyCollectionChanged interface.
|
|
53
|
|
54
|
|
55 v 3.1
|
|
56
|
|
57 Bug fixes
|
|
58
|
|
59 - MapValueAttribute ignored for nullable enums.
|
|
60 - MappingSchema.ConvertChangeType does not handle nullable enums properly.
|
|
61 - EditableArrayList indexer add/remove bug.
|
|
62 - ParameterAttribute doesn't work with Nullabe<T> and EditableValue<T>
|
|
63 when 'T' constructor is not trivial.
|
|
64 - BindingListImpl.AddNew does not fire ListChanged event.
|
|
65 - Some inner types are missing in ObjectMappes, some included w/o reason.
|
|
66 - Setter for ObjectBinder.ItemType fires OnListChanged event before the list changes.
|
|
67 - Convert<To,From> does not handle `Nullable<To>' from scalar `From' case.
|
|
68 - EditableXmlDocument fires PropertyChanged event before an xml node changes.
|
|
69
|
|
70 Enhancement
|
|
71
|
|
72 - CHM help file provided. See the Doc folder.
|
|
73 - New InstanceCache attribute.
|
|
74 - DataAccessor support for IEnumerable<T>.
|
|
75 - Multiple duck. See DuckTyping.Aggregate methods.
|
|
76 - New Overload aspect.
|
|
77 - Own configuration section.
|
|
78 - TypeFactory.GetType() is public now.
|
|
79 - Simplified GenerateAttributeAttribute usage.
|
|
80
|
|
81
|
|
82 v 3.0
|
|
83
|
|
84 Breaking changes
|
|
85
|
|
86 - No more support for .Net 1.1 Framework.
|
|
87
|
|
88 Bug fixes
|
|
89
|
|
90 - EmitHelper.ldc_i4_ emits wrong opcode for numbers from 128 till 255 (bug in msdn)
|
|
91 - Some opcodes were not implemented.
|
|
92 - MappingSchema.MapResultSets fails with NullReferenceException when no data returned.
|
|
93 - Nullable enums were not handled properly.
|
|
94 - BindingList.GetItemSortedPosition() returns wrong index for an item at end of the list.
|
|
95 - Fixed AsyncAspect and other type builders compatibility.
|
|
96 - DbMananger.DiscoverSpParameters fires both OpenConnection and CloseConnection events.
|
|
97
|
|
98 Enhancement
|
|
99
|
|
100 - DateTimeOffset type support.
|
|
101 - MemberAccessor.CloneValue to avoid boxing.
|
|
102 - Named arguments support for GenerateAttributeTypeBuilder.
|
|
103 - Extended support for IsNull & Nullable types in MemberAccessor.
|
|
104 - Support for enum values in EmitHelper.LoadWellKnownValue/LoadInitValue and so on.
|
|
105 - Generic GetValue/SetValue methods for ValueHolders.
|
|
106 - Different projects to support FW 2.0 & FW 3.5.
|
|
107 - LinqMetadataProvider to support Linq To SQL attributes.
|
|
108 - Relocated MetadataProvider's to BLToolkit.Reflection namespace.
|
|
109 - New DbManager ctors to support manual/custom configuration.
|
|
110 - Ability to configure SqlQueryAttribute dynamically.
|
|
111 - Assembly is signed.
|
|
112 - New ActualTypeAttribute to associate DataAccessor's object type and its implementation.
|
|
113 - New AutoImplementInterfaceAttribute to automatically generate interface implementation.
|
|
114 - New TypeAccessor.AssociateType method and TypeAccessor.AssociatedTypeHandler event
|
|
115 to control interface/type implementation.
|
|
116 - DataException now has the 'Number' property.
|
|
117 - New ClearCache aspect.
|
|
118
|
|
119
|
|
120 v 2.0.7
|
|
121
|
|
122 Bug fixes
|
|
123
|
|
124 - Oracle/Odp does not handle colon (':') in ConvertType.ParameterToName.
|
|
125 - Property change builder will use op_Inequality operation if it is available to compare
|
|
126 property values.
|
|
127 - DbManager.ExecuteList<T>(params object[]) add an extra typeof(T)
|
|
128 - EditableObject.Clone does reference cloning of its inner objects.
|
|
129 - EditableObject.Clone does not track dirty state of its members.
|
|
130 - Generated assembly name ends with '.dll'.
|
|
131 As a result, System.Reflection.Assembly.Load() tries to load 'SomeAssembly.dll.DLL'
|
|
132 and fails.
|
|
133 - Oracle treat '\r' as an invalid character.
|
|
134 - DataAccessorBuilder calls DbProvider.Convert(NameToParameter) for text query
|
|
135 parameters.
|
|
136 - SqlQueryBase.GetKeyFieldList was incorrectly marked as public.
|
|
137 - TypeAccessorBuilder fails to build a getter/setter if base method is protected.
|
|
138 - EditableXmlDocument fails to reject changes if there was an attribute insertion or
|
|
139 deletion.
|
|
140
|
|
141 Enhancement
|
|
142
|
|
143 - FdpDataProvider.QuoteIdentifiers option for FB data provier.
|
|
144 - GenerateAtribute attribute to specify any custom attribute for a generated type or
|
|
145 member.
|
|
146 - SQLite data provider.
|
|
147 - DeriveParameters implemented for MsAccess data provider.
|
|
148 - XmlIncludeAbstractAttribute to simplify the xml serialization of a BLToolkit generated
|
|
149 type.
|
|
150 - Better support for internal types/members. The behavior is configurable via
|
|
151 Configuration.EditableObjectUsesMemberwiseEquals property.
|
|
152 - VS 2008 support.
|
|
153
|
|
154
|
|
155 v 2.0.6
|
|
156
|
|
157 Demo
|
|
158
|
|
159 - MS PetShop 4.0 powered by BLToolkit (see the dev version of the project).
|
|
160
|
|
161 Bug fixes
|
|
162
|
|
163 - DbManager.OutputParameter lacks overload with 'size' parameters.
|
|
164 - CacheAspect hungs a desktop application on exit.
|
|
165 - ExecuteResultSet fails on many-to-one relations.
|
|
166 - TypeBuilder fails to override a method with generic parameters or generic return type.
|
|
167
|
|
168 Enhancement
|
|
169
|
|
170 - ParamSize & ParamDbType attributes to tweak DataAccessor parameters. Especially output
|
|
171 ones.
|
|
172 - All 'emit.stloc' immediately followed by 'emit.ldloc' were replaced with simple
|
|
173 'emit.dup' command.
|
|
174 Lots of redundant local variables were removed.
|
|
175 - UnitTests for Oracle, Firebird & Access (Jet)
|
|
176 - DataSetTableAttribute is handled by all DataSet/DataTable related methods of
|
|
177 DataAccessBuilder.
|
|
178 - ClearCache method for CacheAspect.
|
|
179 - Metadata provider for mapping.
|
|
180 - Ability to specify global assembly version & strong name key pair.
|
|
181 - AsyncAspect to execute any method asynchronously.
|
|
182 - Added support for ConnectionStrings config settings.
|
|
183 - Editable XmlDocuments.
|
|
184 - Added support for IDictionary, IDictionary<,>, IList, and IList<> abstract data
|
|
185 accessor return types.
|
|
186
|
|
187
|
|
188 v 2.0.5
|
|
189
|
|
190 Breaking changes
|
|
191
|
|
192 - DbManager.InitCommand renamed to OnInitCommand.
|
|
193
|
|
194 Bug fixes
|
|
195
|
|
196 - System.Reflection.Emit.AssemblyBuilder assemblies are processed properly.
|
|
197 - RegExAttribute - now properly returns valid==true only when whole value is equal to
|
|
198 match.
|
|
199 - EditableObject serialization issue
|
|
200 - StandardPropertyDescriptor.CheckNull was always returning DBNull.Value if _isNull
|
|
201 handler was returning null. Now configurable via Configuration.CheckNullReturnIfNull.
|
|
202 - PropertyChangedBuilder was crashing when property was not public
|
|
203 - ObjectBinder.IsNull was serialized to resources
|
|
204 - Oracle provider now handles arrays of nullable types correctly.
|
|
205 - DataAccessor.PrepareParameters was invoked only to ref parameters.
|
|
206 - DataAccessor.PrepareParameters lacks DbManager which may be external.
|
|
207 - DbManager.InitParameters did hot handle decimal type.
|
|
208 - MappingSchema.ValueToEnum fails with underlying type other then Int32.
|
|
209 - CounterAspect catches the OnCatch event now to count exceptions.
|
|
210 - DbManager.ExecuteForEach does not call InitParameters in the loop.
|
|
211
|
|
212 Enhancement
|
|
213
|
|
214 - Ability to specify RegexOptions for RegExAttribute. Regex not being created on every
|
|
215 call to IsValid
|
|
216 - Destination attribute works with scalar types.
|
|
217 - DataAccessorBuilder generates getters/setters for abstract properties & indexers.
|
|
218 - Ability to specify globaly whether strings should be trimed when mapping
|
|
219 - Ability to specify whether PropertyChange notification should only be fired when
|
|
220 underlying value is changed and not when setter is called
|
|
221 - XmlDocument type support.
|
|
222 - DbManager.SetParameters() accepts arrays of IDbDataParameter.
|
|
223 - DataSetTableAttribute for DataAccessorBuilder to explicitly specify DataSet table name.
|
|
224 - Default CacheAspect.IsWeak value changed to false.
|
|
225 - Cleanup thread for CacheAspect.
|
|
226 - MemberMapper type can be specified directly in the target type declaration.
|
|
227 - Events for DbManager.OnBeforeOperation, OnAfterOperation, OnOperationException &
|
|
228 OnInitCommand.
|
|
229
|
|
230
|
|
231 v 2.0.4
|
|
232
|
|
233 Bug fixes
|
|
234
|
|
235 - By default, the mapper included const fields into map list (???).
|
|
236 - If enum does not have explicit mapping, data accessor builder
|
|
237 does not convert it to underlying type.
|
|
238 - MemberMapper fails to convert an object to its base type.
|
|
239 - BindingListImpl.RemoveSort was not firing ListChange event.
|
|
240 - TypeAccessor.CreateExtendedPropertyDescriptors did not work properly
|
|
241 with 3rd+ level nested properties.
|
|
242 - Object holder ignored NoInstanceAttribute.
|
|
243 - ValidatorContext caches NullValue.
|
|
244 - EditableObject.RejectChanges/RejectMemberChanges were not firing PropertyChanged event
|
|
245 for reverted fields.
|
|
246 - Fixed the generating IsValueType && !IsPrimitive ref/out parameters.
|
|
247
|
|
248 Enhancement
|
|
249
|
|
250 - Operator<T> is extensible now.
|
|
251 - ObjectBinder can now control lifetime (Disposal) of underlying collection.
|
|
252 - DuckTyping.
|
|
253 - ParamNullValue attribute.
|
|
254 - Virtual method DataProviderBase.PrepareCommand to let a data provider modify SQL
|
|
255 statement befory query.
|
|
256 - Virtual method CacheAspect.GetCache. Can be used to provide a custom hashtable.
|
|
257
|
|
258
|
|
259 v 2.0.3
|
|
260
|
|
261 Bug fixes
|
|
262
|
|
263 - Race condition in MappingSchema.GetObjectMapper.
|
|
264 - DbManager will not try to close the connection in the finalizer anymore.
|
|
265 - MinValue/MaxValue attributes now determine value type by object property/field instead
|
|
266 of test value.
|
|
267 - Fixed obscure case when object is removed from EditableArrayList/BindingListImpl while
|
|
268 ItemPropertyChanged delegate is in process of being executed and collection handler was
|
|
269 not yet invoked.
|
|
270
|
|
271 Enhancement
|
|
272
|
|
273 - HttpReader SOAP support.
|
|
274 - Convert<T,P> uses type cast operators when available.
|
|
275 - Third party DataProvider registration via appsettings.
|
|
276 - More specification adherent sorting behavior implementation of
|
|
277 IBindingList/IBindingListView in BindingListImpl.
|
|
278 - EditableArrayList (potentially breaking changes) heavily relies on BindingListImpl for
|
|
279 IBindingList/IBindingListView and their base interfaces implementation.
|
|
280 - BindingListImpl is changed to be fully specification adherent binding wrapper for other
|
|
281 object lists/collection types.
|
|
282 - 2.0.1 version obsolete methods have been removed.
|
|
283
|
|
284
|
|
285 v 2.0.2
|
|
286
|
|
287 Bug fixes
|
|
288
|
|
289 - Abstract class builder overrode virtual final methods.
|
|
290 - Append records to a log file.
|
|
291 - ObjectBinder's AllowNew, AllowEdit, AllowRemove properties serialization.
|
|
292
|
|
293 Enhancement
|
|
294
|
|
295 - New DataAccessor<T,A> class.
|
|
296 - Direction.ReturnValueAttribute takes the Member parameter in '@fieldName' format.
|
|
297 - New property Object of the InterceptCallInfo class, which is an intercepted object
|
|
298 reference.
|
|
299
|