Steven Checo retweeted
If you’re working on more than one .NET project, chances are, you keep repeating the same things:
• C# language version
• NuGet package versions
• Warning settings
• Code style rules
• Build configuration
… over and over again in every csproj.
That’s not productivity - that’s pain. 😅
This is where 𝐃𝐢𝐫𝐞𝐜𝐭𝐨𝐫𝐲. 𝐁𝐮𝐢𝐥𝐝. 𝐩𝐫𝐨𝐩𝐬 comes to the rescue.
It’s a single, central file that lets you define global settings for your entire solution.
Instead of editing 15-20 csproj files, you edit just one.
The result?
👉 Less duplication
👉 Fewer mistakes
👉 A consistent standard across the whole team
👉 Cleaner and easier code reviews
And the best part - it works automatically.
You don’t import anything manually.
Just drop the file into the root folder, and MSBuild picks it up instantly.
If you’re working on real-world, professional .NET codebases, Directory. Build. props isn’t optional - it’s a must-have.
𝐖𝐡𝐚𝐭 𝐈 𝐚𝐥𝐰𝐚𝐲𝐬 𝐢𝐧𝐜𝐥𝐮𝐝𝐞 𝐢𝐧 𝐦𝐲 𝐃𝐢𝐫𝐞𝐜𝐭𝐨𝐫𝐲 .𝐁𝐮𝐢𝐥𝐝 .𝐩𝐫𝐨𝐩𝐬
• C# language version
• Warning level + TreatWarningsAsErrors
• Shared NuGet package versions
• Static analyzers
• Code style settings
• Implicit usings, nullable, deterministic builds
• Default namespace patterns
• Build/Publish configuration defaults
👉 Learn more here: thecodeman.net/posts/masteri…
__
This is part of my Pragmatic .NET Code Rules course, which is in pre-order, just 4 modules before the finish.
Get it now → thecodeman.net/pragmatic-dot…
Steven Checo retweeted
You can use Wolverine as a Mediator in .NET without creating handler interfaces for every request.
Here’s the setup 👇
1/ Install Wolverine: Add the Wolverine package to your project.
2/ Register Wolverine: Configure Wolverine when setting up your application.
3/ Create the Request: Define your request as a simple record or class. No special mediator interface required.
4/ Create the Handler: Add a `Handle` method. Wolverine discovers the appropriate handler using conventions.
5/ Invoke from Your Endpoint: Inject `IMessageBus` and invoke the request from your API endpoint.
6/ Wolverine Handles the Flow: Endpoint → Request → Wolverine → Handler → Response
The result is a clean request/response flow with less mediator-specific boilerplate.
And Wolverine can go beyond mediation with asynchronous messaging, durable messaging, scheduled delivery, retries, sagas, and transactional messaging.
📌 If you found it helpful, you should join my weekly .NET newsletter with 9800+ engineers.
Subscribe here → mwaseemzakir.com
Repost ♻️ would be appreciated
Steven Checo retweeted
Navop puts databases, remote servers, and terminals into one native app.
- Connect to many database types in one place
- Manage servers over SSH, SFTP, and remote desktop
- Runs natively, no WebView, GPU-accelerated
Explore it here:
osp.fyi/navop
Steven Checo retweeted
¡React 19.3 ya está disponible!
Y trae muchas cosas interesantes
✓ View Transitions nativas
✓ Nuevo browser()
✓ Uso de Context en Server Components
✓ Trusted Types y Fragment Refs
→ react.dev/blog/2026/09/09/re…
Steven Checo retweeted
Making an app in electron to generate your own game assets,tiles,animations, inpainting and more.
No subscriptions, all run locally
Steven Checo retweeted
someone built a web-based System Design Simulator.
you drag and drop components (api gateways, dbs, caches) and it actually simulates real-time traffic.
you can watch latency, bottlenecks, and failures happen live...
Steven Checo retweeted
🚨 Este tipo muestra cómo crear apps móviles con Claude en solo 8 minutos.
Un tutorial directo donde pasa de cero a una app funcional usando IA, sin complicaciones y paso a paso.
Si estás aprendiendo IA, esto te interesa 👇
Steven Checo retweeted
Honestly, I love PDFs.
But I HATE uploading them to someone else’s server.
So I built pdf0.dev 👇
• your PDFs never leave your browser
• merge, split, compress, watermark PDFs - all client-side
• no signups required
• 100% free & open source
The best part?
- I vibe coded this in a single prompt using @blackboxai. It took me longer to purchase the domain than it took Blackbox AI to build this thing 💀.
Go check it out now!
Steven Checo retweeted
Diagrams from natural language commands via AI and draw.io
github.com/DayuanJiang/next-…
Steven Checo retweeted
Dashboard template with Tailwind v4 and React
github.com/cruip/tailwind-da…
Steven Checo retweeted
How do you create HttpClients in .NET?
The recommended approach is to use the IHttpClientFactory.
Your first option is to use the IHttpClientFactory directly.
The downside is you'll have to configure the HttpClient every time.
If you want to get a pre-configured HttpClient, you have two options:
- Named clients
- Typed clients
Here's the right way to work with HttpClient in .NET: milanjovanovic.tech/blog/the…
I prefer typed clients, because I can hide the implementation details.
But as far as HttpClient setup goes, named and typed clients are equal.
---
Sign up for the .NET Weekly with 75K+ other engineers, and get a free Clean Architecture template: milanjovanovic.tech/template…
Steven Checo retweeted
What does your CI pipeline look like?
Here's a simple GitHub Action for building and testing your .NET application.
This is an easy way to get instant feedback when something breaks in your application (assuming you have tests in place).
You can steal the source code for the CI pipeline from my article.
Check it out here: milanjovanovic.tech/blog/how…
This is a good baseline for most projects.
You can easily extend it with more functionality if you need to.
---
Sign up for the .NET Weekly with 75K+ other engineers, and get a free Clean Architecture template: milanjovanovic.tech/template…
Steven Checo retweeted
Multi-session API for sending WhatsApp messages and attachments
github.com/Codegres-com/Simp…
Steven Checo retweeted
How can you find the Tenant ID in multitenant applications?
You have at least 3 options:
- Request header
- Cookie
- JWT
The Tenant ID comes from the HTTP request header in this code snippet.
A few other options to get the TenantId are passing it in the query string or fetching it from an identity claim.
Using claims will probably be the most secure approach.
You can even fetch the tenant ID from the database (at the cost of performance).
Then, you can use EF Core to implement Tenant filtering.
Here's how: milanjovanovic.tech/blog/mul…
How about async processing?
Background jobs = use job data
Messaging = add to message payload
---
Sign up for the .NET Weekly with 75K+ other engineers, and get a free Clean Architecture template: milanjovanovic.tech/template…
Steven Checo retweeted
Free open-source, no-watermark screen recording with full zoom controls and custom backgrounds
Steven Checo retweeted
.NET MAUI is coming to Linux and the browser, powered by Avalonia.
After years of community requests, we are delivering:
– Linux desktop
– WebAssembly
– up to 2× faster performance on macOS
Try the live demo and register your interest for early access: avaloniaui.net/blog/net-maui…





























