My recommended (IMHO) Books & references for Enterprise Application Architecture (EAA), SOLID Design Principles & Miscellaneous

In the past and now, people close to me, worked with me and working with me keep asking for good reference reading materials (meaning books, articles etc.) for object orientation, design principles, design patterns, Enterprise Application Architecture, Layered Architecture, Loosely Coupled Architecture etc. and how I designed Enterprise Application Architecture in my various client implementations.

Also in contrast to above many a times when I meet my peers who works in the same line of mine, I do talk about what I read & learnt new things in the architecture or what I referred for specific design problems as knowledge sharing. This is like a repeat and redundant occurrences in my day to day life hence thought of sharing some of the excellent evergreen Books, Blog Articles, Video Tutorial sites which Inspired me and helped me to address many design problems I came across.

Some of the materials are highly precious, valuable and eternal wealth like Gold…such references I listed here for others to gain knowledge which I term “My recommended (IMHO) Books & references for Enterprise Application Architecture (EAA), SOLID Design Principles & Miscellaneous

Note: All of these are in C# flavours but technology agnostic (Applies to any programming languages and technologies)

I organized in the following

  • Object Orientation
  • SOLID Principles
  • Loose coupling
  • Dependency Injection
  • Aspect Oriented Programming
  • Domain Driven Design
  • Multi Layer Architecture [Onion Architecture]
  • Miscellaneous

A Twisted Look at Object Oriented Programming in C#

From college days we are are reading about OOP but this one is very good and I liked it very much

https://www.dropbox.com/s/bmugu0e9dk78ybt/A%20Twisted%20Look%20at%20Object%20Oriented%20Programming%20in%20C%23.pdf?dl=0

Pablos SOLID E-book

It is from LostTechies.com. and the author explains SOLID principles with real life use cases and code samples in a simpler manner.

https://www.dropbox.com/s/jn9b3jm8ddhlq7x/pablos_solid_ebook.pdf?dl=0

WroxProfessional.ASP.NET.Design.Patterns.Sep.2010

image

The tile of the book says design patterns but this books mostly about design principles like DDD, DI, ORM, View Model, Request Response View Models, Facade / Services Layer, View Mappers, MVC, Multi Tier & Layered Architecture, Onion Architecture, Cross Cuttings & separation of concerns etc. He explains that how the above principles can be implemented using proven Design Patterns (I think the author felt Design Pattern title is more reachable than Principles for marketing reasons…)

In other words I would say, this books implements Martin Fowler’s  principles from his ever popular book “Patterns of Enterprise Application Architecturein a easily understandable way for any novice coders who wants to venture into Enterprise Architecture or want to be an elegant programmer who can write highly scalable and less friction codes. It is a ALT.NET (Alternate way of doing mainstream dot net…in other ways JAVA / RoR way of doing main stream .Net) book.

31DaysRefactoring

imageThis is also from LostTechies.com and it talks about code refactoring and writing elegant code using proven design patterns and principles

 

 

 

Applying Domain Driven Design and Patterns With Examples in CSharp and .NET

imageThis book is very special to me from my favourite and eminent author Jimmy Nilsson. Chapter 7 & 10 in this book are eye opener for me to learn and implement Rules Engine & Aspect Oriented Programming (AOP) in specific to the design & architecture I involved in.

 

The Spring.NET Framework

We  heavily depend on using Spring Framework for all of our development in MS.NET & JAVA. Though it has various modules but we depend on the following

  • Dependency Injection
  • Aspect Oriented Programming
  • Web/RESTful Service exporting from Plain Old C# Objects (POCO) i.e. Convert the Facade / Service Layer as .asmx / Restful Webservices
  • Expression Evaluation
  • Quartz Scheduling
  • nVelocity Templating (Recently we migrated to Razor Templating engine)
  • RabbitMQ Client library

I strongly strongly recommend anyone to read the Spring documentation.

Omar Al Zabir’s “Build Truly RESTful API and Website using Same ASP.NET MVC Code”

He blogged about how to write clean and neat RESTful Services especially the route naming conventions.

As the title says, he also talks about how to use the Controllers, the C in the MVC as Restful API (Specific to ASP.NET MVC) instead of writing an additional API layer i.e. ASP.NET Web API.

I recommend the the Route Naming Conventions for any technologist but the Controller to RESTful API is for my team members and any ASP.NET developers.

Programming asp.net mvc 4

image

As the name says, It is not about OOP or Design principles but about ASP.NET. Though many books are available for ASP.NET but this one is excellent and very practical for anyone who wants to build enterprise class web application. It is written in such a way that the followers will not miss anything in the website development i.e. Infrastructure, ORM, DI, Security, Caching, Deployment etc..

Pluralsight Online Video Tutorials (Paid Tutorial)

image

Worth paying USD $15 per month for pluralsight. It has everything and releasing new stuffs to keep us up-to-date in the technology and other soft skills.

My recommendation to all who would want to use pluralsight is; follow this tutorial generously on regular basis i.e. every day for 30 mins. to 1 hour for best results.

I usually watch every day before go to sleep, during weekends and leisure time through my iPad. I often follow the author coding (pause & stop the video) for my hands on and real life client projects.

Light bulbSome of the books I mentioned here are available for free to download from http://it-ebooks.info/tag/programming/ 

Finally……….

Being an Architect, I read a lot like any others in our profession and look for opportunity to implement what I learnt in theory, yes I am hunger for new things, proven way of solving problems, look for simple solutions, want to write elegant and maintainable codes, never shy in continuous refactoring etc. in order to do so, I must equip hence I read and refer many different programming languages,frameworks & technologies than the one I mostly into (C#, Object Oriented JavaScript, Node.JS, Ruby on Rails, Mobility) and how they address same problems differently.  Usually while reading for first time (or second, third) ,  I will (or may) not understand all of it which I simply skip and keep going the rest which I feel helped me a lot. Also during my go though I never forget to bookmark important references.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s