AutoMapper joins the .NET Foundation

Today marks a new era for the AutoMapper project, as we join the .NET Foundation. There were a number of reasons I wanted AutoMapper, from the legal to continuity. I'm going to steal Peachpie's announcement a bit for the benefits: As a contributor: When you make a contribution to the source code of the project, you will sign a CLA based on an automated mechanism the .NET Foundation will set [Read More]

Composite UIs for Microservices - Composition options

Posts in this series: A primer Composition options In our previous post, we looked at why we might compose, seeing it's primarily an edge concern, where we're exposing our services to end users. Those end users could be customers, or they could be internal business users, anyone really. Once we see that we need to compose, the next logical step is to determine how we should compose. But before we [Read More]

Composite UIs for Microservices - A Primer

Microservices can be easy, if we never have to compose, orchestrate, or otherwise integrate between multiple services. If our inter-service communication is low, we can piecemeal a solution based on basic integration patterns such as messaging. A land without composition and integration is when I have highly decoupled systems and business organization. If I strictly build systems around the organization structure, and if that organizational structure is entirely driven by [Read More]

AutoMapper 6.1.0 released

See the release notes: v6.1.0 As with all of our dot releases, the 6.0 release broke some APIs, and the dot release added a number of new features. The big features for 6.1.0 include those for reverse-mapping support. First, we detect cycles in mapping classes to automatically preserve references. Much larger however is unflattening. For reverse mapping, we can now unflatten into a richer model: [Read More]

Dealing With Optimistic Concurrency Control Collisions

Optimistic Concurrency Control (OCC) is a well-established solution for a rather old problem - handling two (or more) concurrent writes to a single object/resource/entity without losing writes. OCC works (typically) by including a timestamp as part of the record, and during a write, we read the timestamp: Begin: Record timestamp Modify: Read data and make tentative changes Validate: Check to see if the timestamp has changed Commit/Rollback: [Read More]