Skip to content

Commit aa09826

Browse files
author
TheTribe
committed
Merge pull request #101 from jbatte47/meta/issue-80
Issue #80: changelog and readme updated
2 parents 999995b + 519a570 commit aa09826

2 files changed

Lines changed: 118 additions & 28 deletions

File tree

README.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
1-
Welcome!
1+
Welcome to code-patterns
22
=============
33

4-
## You've found my .NET utility belt. ##
5-
## It's constantly growing, and its entire goal is to make life easier for .NET developers. ##
4+
## A general-purpose set of libraries designed to make life easier for .NET developers ##
65

76
Here are the highlights:
87

9-
* This is the official codebase used for [NuGet distributions of Patterns](https://nuget.org/packages?q=id%3A+Patterns%3B+author%3A+%22John+Batte%22).
10-
* Check the [official code patterns site](http://jbatte47.github.io/code-patterns/) for API documentation and additional information.
11-
* Head over to [the wiki](https://github.com/jbatte47/code-patterns/wiki) for user-contributed content.
12-
* You can also check out [the license file](https://github.com/jbatte47/code-patterns/blob/master/license.txt "FreeBSD (2-Clause)") if you're wondering about that.
8+
* This is the official codebase used for [NuGet distributions of Patterns](https://nuget.org/packages?q=id%3A+Patterns%3B+author%3A+%22John+Batte%22 "'Patterns' packages with 'John Batte' listed as the author").
9+
* Check the [official code patterns site](http://TheTribe.github.io/code-patterns/ "featuring code samples and Doxygen-generated html") for API documentation and additional information.
10+
* Head over to [the wiki](https://github.com/TheTribe/code-patterns/wiki) for user-contributed content.
11+
* You can also check out [the license file](https://github.com/TheTribe/code-patterns/blob/master/license.txt "FreeBSD (2-Clause)") if you're wondering about that.
1312

1413
Hopefully you'll find these libraries as useful as I do. Cheers!

changelog.md

Lines changed: 112 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,128 @@
1-
## Patterns Changelog ##
1+
# Patterns Changelog #
22

3-
**3.9.0**
3+
The following log details the outward-facing changes made to code-patterns since its first migration to GitHub.
44

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` &rarr; 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))
1039
- Added `Patterns.Runtime.TemporaryScope`
1140
- Added `ActionValueStrategies<TValue>`
1241
- Added `FuncValueStrategies<TValue, TOut>`
1342

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` &rarr; provides access to Autofac-specific features
63+
64+
## 3.7.0 ##
65+
66+
- New component in `Patterns.Testing.Configuration`: `TestConfigurationSource` &rarr; 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` &rarr; encapsulates `IMappingEngine`, `IConfiguration`, and `IConfigurationProvider` from AutoMapper ([issue 53](https://github.com/TheTribe/code-patterns/issues/53))
72+
- `MappingServices` &rarr; simplest implementation of `IMappingEngine`; uses constructor injection
73+
- New module in `Patterns.Autofac.Mapping`: `MappingModule` &rarr; registers static AutoMapper assets to facilitate injection into `MappingServices` ([issue 54](https://github.com/TheTribe/code-patterns/issues/54))
1574

16-
**3.8.0**
75+
## 3.5.1-beta ##
1776

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` &rarr; 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
2281

23-
**3.7.2**
82+
## 3.5.0-beta ##
2483

25-
**3.7.1**
84+
- Removed `Patterns.Testing.Runtime.TestDateTimeInfo` &rarr; mocks are easier to work with than this type
85+
- New components in `Patterns.Reflection`:
86+
- `PropertyValue` &rarr; holds metadata and runtime value of a property
87+
- `IEnumerable<PropertyValue> object.GetPropertyValues()` (extension)
2688

27-
**3.7.0**
89+
## 3.4.0-beta ##
2890

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` &rarr; 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) &rarr; concatenates exception messages, stack traces and inner exceptions (recursive)
94+
- New Autofac support for `Patterns.Logging` in `Patterns.Autofac.Modules`:
95+
- `LoggingModule` &rarr; 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) &rarr; exposes `IServiceLocator`; provides full IoC container support; provides `Mock{TObject}` creation support
99+
- `MoqRegistrationSource` &rarr; implements Autofac's `IRegistrationSource` by creating Mocks of services when registrations are missing
100+
- `MoqContainer` &rarr; implements `IMoqContainer` by using Autofac with `MoqRegistrationSource`
30101

31-
**3.5.1-beta**
102+
## 3.3.1-beta ##
32103

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` &rarr; registers all non-specialized interface-based components in Patterns
106+
- `Patterns.Autofac.Modules.ConfigurationModule` &rarr; registers all components needed to support `IConfigurationSource` injection ([issue 3](https://github.com/TheTribe/code-patterns/issues/3))
107+
- `Patterns.Autofac.Sources.ResolveAnythingSource` &rarr; 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/)) &rarr; 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` &rarr; `GetNow()` method returns `DateTime`
121+
- `Patterns.Runtime.DefaultDateTimeInfo` &rarr; proxies `DateTime.Now`
122+
- `Patterns.Testing.Runtime.TestDateTimeInfo` &rarr; 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`
34125

35-
**3.4.0-beta**
126+
## just after 3.3.0-beta ##
36127

37-
**3.3.1-beta**
128+
- MOVED TO GITHUB!!

0 commit comments

Comments
 (0)