In our previous article, we looked at the basic patterns needed to implement a repository. In many cases these patterns were such a thin layer around the underlying data access technology they were essentially unnecessary. However, once you have a repository in place, many new opportunities become available.
This article will focus on the basic functionality that one would find in a typical repository created with .NET. We’ll look at both general functionality and how that functionality would be implemented using three different styles of ORM: Entity Framework, Dapper, and Tortuga Chain.
Refactoring for Software Design Smells by Girish Suryanarayana, Ganesh Samarthyam, and Tushar Sharma presents a catalogue of typical software design smells and how they can be remedied.
When and how to apply architecture depends on the context. This article shows how you can give proper attention to architecture in an agile setting. Adaptability and conversation are the essentials. 4
This article describes the increasingly popular Microservice architecture pattern, used to architect large, complex and long-lived applications as a set of cohesive services that evolve over time. 13
In this article we present some of the most common performance analysis antipatterns in the enterprise platform, expressed in terms of their basic causes along with remediation strategies. 1
In this article, author discusses the effectiveness of using design patterns, based on surveys conducted to indicate which patterns were considered useful under what circumstances. 12
Netflix is a widely referenced case study for how to operate a cloud application at scale. In this interview, InfoQ spoke with Adrian Cockcroft who is the Cloud Architect for the Netflix platform.
InfoQ talked with Sandi Metz, author of "Practical Object-Oriented Design in Ruby" about her book, learning from open source code, making sensible use of code analysis tools and other topics.
Aliaksei Papou explores how components and design patterns such as the observer and State Machine make it possible to design an application such that it can grow and change according to your needs. 5
Most boilerplate code stems from repetitive implementation of design patterns that are so well-understood that they could be implemented automatically if we had a way to teach it to compilers. 8