|
1 | | -## Patterns Changelog ## |
| 1 | +# Patterns Changelog # |
2 | 2 |
|
3 | | -**3.9.0** |
| 3 | +The following log details the outward-facing changes made to code-patterns since its first migration to GitHub. |
4 | 4 |
|
5 | | -- Added `Patterns.Collections.ConfigurableEqualityComparer<TValue>` (Issue #66) |
6 | | -- Fixed type casting error in `Patterns.Testing.Autofac.Moq.AutofacMoqContainer` (Issue #67) |
7 | | -- Fixed issue with up-front service type inspection in `Patterns.Testing.Autofac.Moq.MoqRegistrationSource` (Issue #68) |
8 | | -- Added `IRegexEvaluator` and `RegexEvaluator` to the `Patterns.Text.RegularExpressions` namespace (Issue #69) |
9 | | -- Added `Evaluator` and `EvaluatorAccessor` to `System.Text.RegularExpressions.CompiledRegex` (Issue #70) |
| 5 | +## 3.10-beta.1 ## |
| 6 | + |
| 7 | +- Additions / changes made to `Patterns.Logging` and `Patterns.Interception` ([issue 96](https://github.com/TheTribe/code-patterns/issues/96)): |
| 8 | + - New type: `Patterns.Interception.DelegateInterceptor` → implements `IInterceptor` by allowing interception actions taken at each step to be injected |
| 9 | + - Updated `LoggingInterceptor` to inherit from new `DelegateInterceptor` type |
| 10 | + |
| 11 | +## 3.9.4 ## |
| 12 | + |
| 13 | +- Fixes for `Patterns.Logging` / `Patterns.Autofac.Logging` ([issue 92](https://github.com/TheTribe/code-patterns/issues/92)): |
| 14 | + - Extracted `ILoggingConfig` from `LoggingConfig` |
| 15 | + - Switched to interface usage everywhere |
| 16 | + - Modified `LoggingModule` logic to allow config source to be unregistered / config section to be missing; either case results in a default instance of `LoggingConfig` to be registered |
| 17 | +- Changed `MoqRegistrationSource` to only return registrations when creating new Mock-based ones; now returns an empty set in all other cases ([issue 93](https://github.com/TheTribe/code-patterns/issues/93)) |
| 18 | + |
| 19 | + |
| 20 | +## 3.9.3 ## |
| 21 | + |
| 22 | +- Updated out-of-date NuGet references ([issue 73](https://github.com/TheTribe/code-patterns/issues/73)) |
| 23 | + |
| 24 | +## 3.9.2 ## |
| 25 | + |
| 26 | +- Changed `AutofacMoqContainer` to defensively call `Create` from within `Mock` using `Try.Get` ([issue 84](https://github.com/TheTribe/code-patterns/issues/84)) |
| 27 | + |
| 28 | +## 3.9.1 ## |
| 29 | + |
| 30 | +- Changed `LoggingInterceptor` to use the CLR `JavaScriptSerializer` to format complex values for display ([issue 81](https://github.com/TheTribe/code-patterns/issues/81)) |
| 31 | + |
| 32 | +## 3.9.0 ## |
| 33 | + |
| 34 | +- Added `Patterns.Collections.ConfigurableEqualityComparer<TValue>` ([issue 66](https://github.com/TheTribe/code-patterns/issues/66)) |
| 35 | +- Fixed type casting error in `Patterns.Testing.Autofac.Moq.AutofacMoqContainer` ([issue 67](https://github.com/TheTribe/code-patterns/issues/67)) |
| 36 | +- Fixed issue with up-front service type inspection in `Patterns.Testing.Autofac.Moq.MoqRegistrationSource` ([issue 68](https://github.com/TheTribe/code-patterns/issues/68)) |
| 37 | +- Added `IRegexEvaluator` and `RegexEvaluator` to the `Patterns.Text.RegularExpressions` namespace ([issue 69](https://github.com/TheTribe/code-patterns/issues/69)) |
| 38 | +- Added `Evaluator` and `EvaluatorAccessor` to `System.Text.RegularExpressions.CompiledRegex` ([issue 70](https://github.com/TheTribe/code-patterns/issues/70)) |
10 | 39 | - Added `Patterns.Runtime.TemporaryScope` |
11 | 40 | - Added `ActionValueStrategies<TValue>` |
12 | 41 | - Added `FuncValueStrategies<TValue, TOut>` |
13 | 42 |
|
14 | | -**3.8.1** - Expanded capabilities of `Patterns.Mapping.IMappingServices` (issue #65) |
| 43 | +## 3.8.1 ## |
| 44 | + |
| 45 | +- Expanded capabilities of `Patterns.Mapping.IMappingServices` ([issue 65](https://github.com/TheTribe/code-patterns/issues/65)) |
| 46 | + |
| 47 | +## 3.8.0 ## |
| 48 | + |
| 49 | +- Renamed `Patterns.Autofac.Sources.ResolveAnythingSource` to `Patterns.Autofac.Sources.ResolveCreatableSource` ([issue 43](https://github.com/TheTribe/code-patterns/issues/43)) |
| 50 | +- Moved Moq-related components from `Patterns.Testing.Autofac` to `Patterns.Testing.Autofac.Moq` ([issue 59](https://github.com/TheTribe/code-patterns/issues/59)) |
| 51 | +- Added the "strategy dictionary" pattern to the `Patterns.Collections.Strategies` namespace ([issue 59](https://github.com/TheTribe/code-patterns/issues/59)) |
| 52 | +- Added a short-circuit `Map<TSource,TDestination>` method to `Patterns.Mapping.IMappingServices` ([issue 61](https://github.com/TheTribe/code-patterns/issues/61)) |
| 53 | + |
| 54 | +## 3.7.2 ## |
| 55 | + |
| 56 | +- Fixed `sectionGroup` bug in `TestConfigurationSource` ([Issue 60](https://github.com/TheTribe/code-patterns/issues/60)) |
| 57 | + |
| 58 | +## 3.7.1 ## |
| 59 | + |
| 60 | +- Fixes for Autofac ([issue 57](https://github.com/TheTribe/code-patterns/issues/57)) |
| 61 | + - Moved/renamed `MoqContainer` to `Patterns.Testing.Autofac.AutofacMoqContainer` |
| 62 | + - Extracted new interface, `Patterns.Testing.Autofac.IAutofacMoqContainer` → provides access to Autofac-specific features |
| 63 | + |
| 64 | +## 3.7.0 ## |
| 65 | + |
| 66 | +- New component in `Patterns.Testing.Configuration`: `TestConfigurationSource` → implements `IConfigurationSource` by accepting XML in its constructor and using the in-memory XML as the basis for retrievals of `AppSettings` and `ConnectionStrings` as well as calls to `GetSection` ([issue 35](https://github.com/TheTribe/code-patterns/issues/35)) |
| 67 | + |
| 68 | +## 3.6.0-beta ## |
| 69 | + |
| 70 | +- New components in `Patterns.Mapping` (new dependency: [AutoMapper](https://www.nuget.org/packages/AutoMapper/)): |
| 71 | + - `IMappingServices` → encapsulates `IMappingEngine`, `IConfiguration`, and `IConfigurationProvider` from AutoMapper ([issue 53](https://github.com/TheTribe/code-patterns/issues/53)) |
| 72 | + - `MappingServices` → simplest implementation of `IMappingEngine`; uses constructor injection |
| 73 | +- New module in `Patterns.Autofac.Mapping`: `MappingModule` → registers static AutoMapper assets to facilitate injection into `MappingServices` ([issue 54](https://github.com/TheTribe/code-patterns/issues/54)) |
15 | 74 |
|
16 | | -**3.8.0** |
| 75 | +## 3.5.1-beta ## |
17 | 76 |
|
18 | | -- Renamed `Patterns.Autofac.Sources.ResolveAnythingSource` to `Patterns.Autofac.Sources.ResolveCreatableSource` (issue #43) |
19 | | -- Moved Moq-related components from `Patterns.Testing.Autofac` to `Patterns.Testing.Autofac.Moq` (issue #58) |
20 | | -- Added the "strategy dictionary" pattern to the `Patterns.Collections.Strategies` namespace (issue #59) |
21 | | -- Added a short-circuit `Map<TSource,TDestination>` method to `Patterns.Mapping.IMappingServices` (issue #61) |
| 77 | +- Changes to `Patterns.Logging`: |
| 78 | + - New type: `LoggingConfig` → inherits from `ConfigurationSection`; encapsulates the `bool TrapExceptions` option |
| 79 | + - Changed `LoggingInterceptor` to use `LoggingConfig` rather than explicit `bool` option for exception trapping |
| 80 | +- Solution-wide refactor: moved components to more appropriate locations |
22 | 81 |
|
23 | | -**3.7.2** |
| 82 | +## 3.5.0-beta ## |
24 | 83 |
|
25 | | -**3.7.1** |
| 84 | +- Removed `Patterns.Testing.Runtime.TestDateTimeInfo` → mocks are easier to work with than this type |
| 85 | +- New components in `Patterns.Reflection`: |
| 86 | + - `PropertyValue` → holds metadata and runtime value of a property |
| 87 | + - `IEnumerable<PropertyValue> object.GetPropertyValues()` (extension) |
26 | 88 |
|
27 | | -**3.7.0** |
| 89 | +## 3.4.0-beta ## |
28 | 90 |
|
29 | | -**3.6.0-beta** |
| 91 | +- New logging components in `Patterns.Logging` (new dependency: [Castle.Core](https://www.nuget.org/packages/Castle.Core/)): |
| 92 | + - `LoggingInterceptor` → implements `IInterceptor` by calling the appropriate `ILog` methods throughout interception ([issue 12](https://github.com/TheTribe/code-patterns/issues/12)) |
| 93 | + - `string Exception.ToFullString()` (extension) → concatenates exception messages, stack traces and inner exceptions (recursive) |
| 94 | +- New Autofac support for `Patterns.Logging` in `Patterns.Autofac.Modules`: |
| 95 | + - `LoggingModule` → registers `LoggingInterceptor`, as well as attaching to all registrations in order to provide appropriately type-bound instances of `ILog` on-demand |
| 96 | +- New Autofac container type for increased accessibility: `Patterns.Autofac.AccessibleContainer` |
| 97 | +- New Moq / IoC components in `Patterns.Testing.Moq`: |
| 98 | + - `IMoqContainer` (depends on Microsoft.Practices.ServiceLocation and Moq) → exposes `IServiceLocator`; provides full IoC container support; provides `Mock{TObject}` creation support |
| 99 | + - `MoqRegistrationSource` → implements Autofac's `IRegistrationSource` by creating Mocks of services when registrations are missing |
| 100 | + - `MoqContainer` → implements `IMoqContainer` by using Autofac with `MoqRegistrationSource` |
30 | 101 |
|
31 | | -**3.5.1-beta** |
| 102 | +## 3.3.1-beta ## |
32 | 103 |
|
33 | | -**3.5.0-beta** |
| 104 | +- New Autofac-based components (new dependencies [Autofac](https://www.nuget.org/packages/Autofac/) and [Autofac.CommonServiceLocator.Indy](https://www.nuget.org/packages/Autofac.CommonServiceLocator.Indy/)): |
| 105 | + - `Patterns.Autofac.Modules.CoreModule` → registers all non-specialized interface-based components in Patterns |
| 106 | + - `Patterns.Autofac.Modules.ConfigurationModule` → registers all components needed to support `IConfigurationSource` injection ([issue 3](https://github.com/TheTribe/code-patterns/issues/3)) |
| 107 | + - `Patterns.Autofac.Sources.ResolveAnythingSource` → resolve-anything-creatable implementation of Autofac's `IRegistrationSource` |
| 108 | +- New extensions in `Patterns.Collections`: |
| 109 | + - `void ICollection{TItem}.AddRange(IEnumerable{TItem} newItems)` |
| 110 | + - `void IEnumerable{TItem}.Each(Action{TItem} action[, bool parallel = false])` |
| 111 | +- New configuration abstraction types in `Patterns.Configuration`: |
| 112 | + - `IConfiguration` / `ConfigurationWrapper` |
| 113 | + - `IConfigurationManager` / `ConfigurationManagerWrapper` |
| 114 | + - `IConfigurationSource` / `ConfigurationSource` |
| 115 | +- New exception-handling delegate runners as well as a default error-handling strategy in `Patterns.ExceptionHandling`: |
| 116 | + - `TValue Try.Get(Func{TValue} valueAccessor[, Func{Exception, ExceptionState} errorHandler = null])` |
| 117 | + - `void Try.Do(Action action[, Func{Exception, ExceptionState} errorHandler = null])` |
| 118 | + - `Func{Exception, ExceptionState} Try.HandleErrors.DefaultStrategy` (new dependency: [Common.Logging](https://www.nuget.org/packages/Common.Logging/)) → uses self-bound `ILog` instance to log exception; marks exception as "handled" |
| 119 | +- New DateTime components for testability in `Patterns.Runtime`: |
| 120 | + - `Patterns.Runtime.IDateTimeInfo` → `GetNow()` method returns `DateTime` |
| 121 | + - `Patterns.Runtime.DefaultDateTimeInfo` → proxies `DateTime.Now` |
| 122 | + - `Patterns.Testing.Runtime.TestDateTimeInfo` → accepts a specific `DateTime` value and always uses that |
| 123 | + - `DateTime DateTime.AccurateToOneSecond()` (extension) |
| 124 | +- New ease-of-use type for regular expressions: `Patterns.Text.RegularExpressions.CompiledRegex` |
34 | 125 |
|
35 | | -**3.4.0-beta** |
| 126 | +## just after 3.3.0-beta ## |
36 | 127 |
|
37 | | -**3.3.1-beta** |
| 128 | +- MOVED TO GITHUB!! |
0 commit comments