Patterns Literature

1) Basics –

a) Chapter 7, 8 and 9 of Head First Java

b) Law of Demeter, Polymorphism , Encapsulation vs Abstraction , Abstract Class versus Interface , Implicit and Explicit Interface Implementations, Understanding Association, Aggregation, and Composition, Back to Basics: Cohesion and Coupling, Cohesion And Coupling and Dynamic Dispatch in C#

Mixins – Introduction to Mixins For the C# Developer, Implementing Mixins with C# Extension Methods,How to create mixin using C# 4.0, C# Mixins With State, Mixins with C# 4.0, Mixins, C#, and Roslyn

Fluent Interfaces – Fluent Interface, Fluent interfaces and Method Chaining in C# and How to create a fluent interface in C#

c) Refactoring : Improving the Design of Existing Code

N.B. -> Refactoring, Evolutionary Design, Encapsulation, Object Collaboration DesignAPI Design, MVC

d) Introductory Software Design –

i) Head First OOA&D

ii) Object Technology – A Manager’s Guide

iii) Object-Oriented Analysis and Design with Applications

iv) Object – Oriented Modeling and Design With UML

v) Object Oriented Software Construction

N.B. -> Workbook on object oriented design (object model domain, system sequence diagrams, interaction diagrams) , Object Oriented Design Interview Questions, Design Interview Questions and Software Design Interview Questions

e) Marker Interfaces and Marker Attributes (something equivalent in Java world is Marker Annotations)

N.B. -> The general thumb rule is to use Marker Interface at the class level and Marker Attribute at the Property level.One can refer this usage scenario, to see Marker Interface in Action.

f) Adaptive Code via C#: Agile coding with design patterns and SOLID principles

N.B. -> S.O.L.I.D Principles, GRASP, Principles of OOD  and Refactoring to SOLID

g) Inversion of Control vs Dependency Injection

N.B. -> Hollywood Principle , Dependency Injection (DI) vs. Inversion of Control (IOC) , Dependency Injection with UnityDependency Injection in .NET , Configuring Unity , Application Extensibility – MEF vs DI , Unity Lifetime Managers, Unity and the Hierarchical Lifetime Manager, Unity and Per-Session LifeTimeManager, Unity 2.0 and handling IDisposable Types , Unity Lifetime Management For IDisposable , Unity and InjectionFactory , MEF Programming Guide ,Using Unity’s automatic factories to lazy load expensive dependencies , Unity 2.0 – Automatic Builders , Unity IoC container: tips, tricks and dirty hacks , Fundamentals of the Managed Extensibility Framework , Adding Dependency Injection to your ASP.NET MVC Twilio app using MEF , MEF2 with MVC4 via Microsoft.Composition, MEF: Component discovery and composition and Enterprise Library Unity vs Other IoC Containers

P.S. -> If you want to use observer pattern with unity, use code for registrations of all classes involved in the observer pattern rather than using config for the same.You have also the option to use code(may be for the observer pattern parts only) and to use config for other registrations.You can also shift all the config data to some configuration table in some DB but in that case you will have to build some wrapper APIs which can be used to register and resolve the classes based on the config data in the config table in the DB.

2) Design Patterns –

a) Head First Design Patterns

b) Elemental Design Patterns

c) Refactoring to Patterns

d) Applying UML and Patterns

e) SourceMaking Design Concepts

N.B. -> MultiLevel Undo and Redo Functionality using Command and Memento PatternsImplementing the Observer Pattern in C#, Dynamic Dispatch in C#, The Visitor Pattern and Dynamic in C#,  Multithreaded Observer Design Pattern – Part 1 & Part 2, Multithreaded Programming with the Command Pattern

f) Software Design Pattern

N.B. -> Design Patterns in Automated Testing,  ASP.NET Wiki Design Patterns, Examples of Design Patterns used in .Net Framework, Enterprise Library etc.Discover the Design Patterns You’re Already Using in the .NET Framework, Architecture and patterns, Software Design Pattern Wiki and Some Not So Famous But Important Design Patterns

3) Patterns of Enterprise Application Architecture –

a) Catalog

b) Book

4) Further Patterns of Enterprise Application Architecture

N.B. -> AsyncEventAggregator and Event Aggregator with Reactive Extensions

5) Core J2EE Patterns –

a) Catalog

b) Book

N.B. -> Pro Java EE Spring Patterns , PED Central, ServerSide.com Patterns and Java BluePrints

6) Enterprise Solution Patterns using Microsoft .NET

7) Enterprise Application Integration Patterns –

a) Catalog

b) Book

8) Microsoft Integration Patterns

N.B. -> Your Coffee Shop Doesn’t Use Two-Phase Commit and Messaging Patterns in Service-Oriented Architecture – Part 1 and Part 2

9 ) Data Patterns –

a) Data Model Patterns

b) Refactoring Databases

c) Microsoft Data Patterns

d) Evolutionary Database Design

10) Service Design Patterns

11) Patterns of Enterprise Business Systems

12) Naked Object Pattern

13) xUnit Test Patterns

14) Streamlined Object Modelling

15) Pattern Based Analysis of Windows Workflow

16) Concurrent Affairs – Although these are not any ‘named’ patterns as such but gives you the tips and tricks of the trade of scalable and really fast Asynchronous Programming using Microsoft Technologies.Most of these articles are written by Jeffrey Ritcher – author of “CLR via C#”.

N.B. -> Another way of implementing Asynchronous Programming using .NET 4.0 is Reactive Extensions (a.k.a LINQ for Events)

17) Pro WPF and Siverlight MVVM

N.B. -> A Thumb rule to follow is to never have any Business rule(even very minor rule) in view(within the view you just bind the view model – that’s it!). Best practice is to apply these rules while converting your domain model(s) into the view model else it becomes very difficult to handle other scenarios  e.g handling errors at the view level (which might occur because of some wrong Business Rule implementation) is very very hectic.

18) Scalable System Design Patterns

19) NoSQL Patterns and Design Patterns for Distributed Non-Relational DBs

20) RestFul Design Patterns

21) Wrox Professional ASP.NET Design Patterns

N.B. -> Wrox Professional Enterprise .NET

22) UI Patterns and Yahoo! Design Patterns Library

N.B. -> Mobile Design Pattern Gallery

23) Working with Legacy Code

24) DoFactory Design Patterns and Architectural Guidance

25) Cloud Patterns

N.B.-> Cloud Computing Patterns

26) Map Reduce Design Patterns

27) Patterns for Scripted Applications

28) Enterprise Architecture Patterns

29) Patterns in Practice

P.S. -> For more information, visit the Hillside Group and Design Patterns, Pattern Languages, and Frameworks.

.