Guide to implement cross cutting concerns

Cross cutting concerns (wiki) are classes which interact with most classes in the application that you are developing. Logging, Instrumentation, Caching, Transactions are common examples. Case 1: Class does not know about the concern If the class should not know about the concern, use decorator pattern or AOP. Decorator pattern Decorator pattern┬áis an elegant solution, if properly implemented, to implement[…]

Read more

Reusability, Maintainability, Scalability

I have been thinking about reusability, maintainability, and scalability quite a lot these days. Why is reusability better than Copy-Paste code? Reusability allows multiple developers to share code or assemblies (libraries). ┬áIt improves productivity. It improves maintainability because there is a lesser code-base. Reusability can be promoted by base classes or NuGet packages. When is maintainability better than reusability? Some[…]

Read more