The Over Designer Have you ever encountered an over designer? An over designer is a software developer that had some life changing event and became obsessed about architecture. The result being, obsessive decoupling, endless coding of Factories, creating deep (also needless) inheritence hierarchies and various use of design patterns for no good reason.
So I’m writing to you, my past coding self, to get you up to speed on something important: The Shell. The future me is (moderately) wiser and wants to help. I wrote a similar guide for Git Rebasing that you (and others) found helpful. My post this time is broader, lays the groundwork for learning and understanding more about the Shell and why it matters.
Domain Driven Design for Everyone Else Barry O Sullivan I’ve been talking a lot about Domain Driven Design (DDD) lately, be it at meetups or with clients, so I thought I’d write down my thoughts and see if it helps.
The whole of WordPress compiled to .NET Core and a NuGet Package with PeachPie Why? Because it’s awesome. Sometimes a project comes along that is impossibly ambitious and it works. I’ve blogged a little about Peachpie, the open source PHP compiler that runs PHP under .NET Core. It’s a project hosted at www.peachpie.io.
But…why? Here’s why:
Performance: compiled code is fast and also optimized by the .NET Just-in-Time Compiler for your actual system. Additionally, the .NET performance profiler may be used to resolve bottlenecks. C# Extensibility: plugin functionality can be implemented in a separate C# project and/or PHP plugins may use .NET libraries.
Probably the biggest question you face as a developer every single day is “where to put your code”? Should you use repositories or query classes? Should you have one class or two to represent your domain object? Should you write a new class or extend an existing one?
In short what constitutes a single responsibility and how separate should your concerns actually be?
MediatR Notifications can help with some of these thorny issues.
fuget.org – a new site for browsing nuget packages. It is my best attempt to build a tool to help you both discover new packages and to dig in deep to learn them once found.
I’ve spoken several times about a specific type of architecture I call “Onion Architecture”. I’ve found that it leads to more maintainable applications since it emphasizes separation of concerns throughout the system. I must set the context for the use of this architecture before proceeding. This architecture is not appropriate for small websites. It is appropriate for long-lived business applications as well as applications with complex behavior. It emphasizes the use of interfaces for behavior contracts, and it forces the externalization of infrastructure.
Summary: This How To shows you how to use the CLR Profiler tool to investigate your application’s memory allocation profile. You can use CLR Profiler to identify code that causes memory problems, such as memory leaks and excessive or inefficient garbage collection.