Why you don’t need more projects

by Sep 29, 2022

After 15 years of taking over other .NET developer their solutions, one thing that always flabbergasts me is…

All the reasons why they have created dozens of projects in their solution.

I even, once in a while, come across a 100+ projects in 1 solution in the wild that tries to bring down Visual Studio in its path.

I see even amazingly simple applications, like a console utility, producing multiple libraries for no good reason.

But why?

❌ We want to prevent developers from mixing layers. It provides a separation by concern driven by the compiler.

❌ We don’t mix interfaces with concrete types. This makes reusing the interfaces very easy.

❌ Each namespace needs to have its own project. This is easier to see where code lives.

Projects are for modularization, for package management: it’s a component that you share with the world and/or need to deploy.

Principles I use when to create a new project:

✅ Release Equivalence Principle (REP)
Code that makes sense that you release and version together. What if you would make a NuGet package and versioning it? People that would use it would be dependent on the releases and look closely at the versions to keep track of it.

Common Reuse Principle (CRP)
Code that you reuse most of the time together, should be together. If you reference the library, would that be enough, or are you forced to reference other libraries? If yes, you are probably better off merging them.

Common Closure Principle (CCP)
If a normal change affects a certain code, then that code should probably be together.

Most of the time, you just keep the urge to create a new project for yourself and wait until you feel friction. That friction should be a hint to look if adding a project would solve the situation.

Remy van Duijkeren

Remy van Duijkeren

Power Platform Advisor

Microsoft Power Platform Advisor with over 25 years of experience in IT with a focus on (marketing) automation and integration.

Helping organizations with scaling their business by automating processes on the Power Platform (Dynamics 365).

Expert in Power Platform, Dynamics 365 (Marketing & Sales) and Azure Integration Services. Giving advice and strategy consultancy.

Services:
– Strategy and tactics advise
– Automating and integrating

Subscribe to
The Daily Friction

A daily newsletter on automation and eliminating friction

Related Content

Automating Processes: Steps to Streamline Success 🔧

Automating Processes: Steps to Streamline Success 🔧 In today’s fast-paced business environment, process optimization is crucial for staying competitive and efficient. Here are some essential steps to ensure your processes are as smooth and effective as possible:...

read more

Ever wished you could explain complex ideas in minutes?

Ever wished you could explain complex ideas in minutes? I just tried Loom and I'm blown away. 🎥 With just one click, I can create professional-looking tutorials in a matter of minutes. No fuss, no hassle—just hit record and share instantly. This tool is a game-changer...

read more

The Art of Delegation: Toddler Edition

The Art of Delegation: Toddler Edition For the past two months, I’ve been flying solo at home while my wife is off on a work adventure overseas. It’s just me, our 1-year-old, and our 3-year-old—and let me tell you, delegating has become my superpower. I used to help...

read more