Skip to content
0:00 / 0:00

#dependencyinjection#logging#solid

The Perfect C# Console Application...Or Not.

IAmTimCorey

441K subscribers • 15 videos on Hallway

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • Presented by Tim Corey
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

85K views4 years ago2 recommendations

Software designTools and practiceC# and .NETDesign patternsSoftware architecture

Tim Corey builds an over-engineered C# console application to demonstrate why applying every best practice like SOLID and DI is not always appropriate.

There are certain best practices every C# application should follow, right? Probably DRY, SOLID, Logging, Dependency Injection, Localization, Separation of Concerns, and Unit Testing at the very least. These seem like obvious things that every application should have. In this video, we are going to do something a bit unique. I am going to show you how to do all of those things, and I am going to show you why you shouldn't always do those things. We are going to build the ultimate Hello World application. You won't want to miss it. Full Training Courses: DevForge.com Source Code: DevForge.com/downloads/?code=PerfectConsoleApp Mailing List: signup.iamtimcorey.com/

Why it's here

2 people recommend this

What people say. Engineers point to this video to warn against over-engineering simple applications with unnecessary design patterns and boilerplate.

u/pyaboin r/dotnet • Recommends

On “What is the most overly complicated C# Hello, World! app you can make?”

Tim Corey makes a good go at this in The Perfect C# Hello World App. It's got logging, dependency injection, it's *perfect!*

u/pyaboin r/dotnet • Recommends

On “If you are asked to develop a shared infrastructure for a .NET application, what features or library will you include/use it?”

Congratulations, you are well on your way to writing The Worlds Greatest Console Application. Twenty-five years of software development here. The most successful projects are the ones where specific needs are analyzed and addressed in specific ways. You are making a list of tools / features here. That might be helpful, but don't make the mistake of trying to think you can make some magical workbench that solves all the issues of creating software. You'll only end up making something unwieldy and janky to work with.

u/thewallrusin r/dotnet • Recommends

On “Help me! I'm frustrated starting with ASP.NET Core as a complete beginner”

I think your frustation is valid. MS royally screwed up with naming, and it makes finding resources really hard. If ILogger is frustrating you, then start with learning .NET not the web framework. Start with a console app and investigate how it works: (The Perfect C# Console Application...Or Not.). Then move on to ASP.NET Core. I prefer blogs, but if you prefer videos then I recommend these creators: Easy: IAmTimCorey - YouTube Medium: Nick Chapsas - YouTube Hard: Zoran Horvat - YouTube Bonus: Milan Jovanović - YouTube

u/pyaboin r/dotnet • Recommends

On “I built a .NET 9 Modular Monolith starter (BFF + Keycloak, Outbox, OTel)”

Just gonna leave this here.... [video :) But yea, you right. It's annoying to write the same boilerplate over and over again. Luckily we have AI for that now!

u/pyaboin r/dotnet • Mentions

On “I open-sourced a full-stack .NET 10 template”

Ah, it's the World's Greatest Console Application again. :)