C# 15 is getting union types.
That’s a big deal.
It means patterns like Result and Option finally have real language support.
No more awkward wrappers.
No more hacks.
No more pretending exceptions are the best way to model failure.
I’ve advocated for the Result pattern for years, but lack of native support always made it clunky.
That changes with union types.
Don’t want to wait?
Here’s how to implement the Result pattern today: https://t.co/NtKei20pBR
If you still prefer throwing exceptions, you can skip this.
CQRS != MediatR.
Stop conflating CQRS with MediatR.
Just because you're using MediatR doesn't mean you're doing CQRS.
CQRS is about separating reads from writes, often using different models, persistence strategies, and sometimes different data stores.
MediatR, on the other hand, is a library for in-process message dispatching. It’s great for organizing commands and queries, but it’s not a CQRS framework.
You can use MediatR in a CQRS-style architecture.
But don’t assume one implies the other.
Understand the distinction before you adopt the pattern or the tool.
Full breakdown here: https://t.co/WwALSnJFzR
Do you separate your read and write models in practice?
The @GeminiApp is now available natively on Mac, bringing you a faster, more integrated way to get AI help right on your desktop. 🍎
Now Gemini is just a shortcut away (Option + Space) for instant help, without ever needing to switch tabs.
I've built a full LLM inference engine in C#/.NET 10. From scratch. Not a wrapper - native GGUF loading, BPE tokenizer, attention, KV-cache, SIMD-vectorized CPU kernels, CUDA GPU backend, OpenAI-compatible API. Solo dev, ~2 months, AI-assisted (not vibe-coded!). First preview is out.
Check it out for mode details at https://t.co/Bl5wAYalYY and https://t.co/rQWhKN0iVA
Gemini can now transform your questions and complex concepts into customizable interactive visualizations directly in your chat.
Adjust variables, rotate 3D models, and explore data for a more immersive way to learn and explore in Gemini.
Processing the same message twice is a nightmare in distributed systems.
If you are not careful, one event could trigger duplicate side effects and corrupt your data.
My strict rule for microservices: Every single consumer must be idempotent.
You have two ways to achieve this:
1. Make the business logic naturally idempotent.
2. Build an Idempotent Consumer.
Here is the exact flow for the Idempotent Consumer pattern:
• Check your database for the incoming message ID.
• If it exists, skip processing.
• If it is new, process the event and save the message ID.
• Wrap these steps in a single database transaction.
If you want to see the C# code, I wrote a complete guide on implementing this in .NET. It also covers the Inbox pattern for even better reliability.
Read the full breakdown here: https://t.co/eN2AOsv0KA
Protect your data from duplicate processing before it hits production.
---
Tired of writing the same boilerplate code for every new project? Skip the setup and start building features immediately with my Clean Architecture template: https://t.co/R8rewLzo3h
⚡️ Unsloth Studio est maintenant disponible sur Pinokio !
Finer-tuner vos modèles localement n'a jamais été aussi simple. Le nouveau launcher Unsloth Studio automatise toute l'installation pour transformer votre machine en station de build IA. 🦥💻
🛠️ Ce que fait le launcher :
Installation One-Click : Clone unslothai/unsloth et configure le frontend/backend automatiquement.
Stack Python isolée : Utilise un venv Pinokio local (pas de conflit avec vos autres projets).
Support GGUF natif : Intègre llama.cpp via conda-forge pour l'export et le tooling.
Data Local : Tout est stocké dans le dossier app/.unsloth/.
🚀 Comment démarrer ?
1️⃣ Cliquez sur Install dans Pinokio.
2️⃣ Cliquez sur Start.
3️⃣ Récupérez le mot de passe temporaire dans l'onglet Terminal.
4️⃣ Connectez-vous (user: unsloth) et personnalisez votre accès.
[!TIP] Le premier lancement inclut le provisionnement des outils GGUF. C'est un peu plus long, mais c'est le prix de la tranquillité pour vos futurs exports !
Prêt à passer au niveau supérieur en Local LLM ?
#Unsloth #OpenSource #AI #MachineLearning #Pinokio #Llamacpp
Lien en commentaire
A new open-source UI to train and run LLMs.
• Local on Mac, Windows, Linux
• 500+ models, 2x faster, 70% less VRAM
• GGUF, vision, audio, embeddings
• Build datasets from PDF, CSV, DOCX
• Self-healing tool calling + code execution
• Compare models + export to GGUF
GitHub: https://t.co/7eZKYYlxIy…
Docs: https://t.co/aiEDPFoKmN
Now on Hugging Face, NVIDIA, Docker, Colab
SOLID Principles Explained with Clear Examples:
𝐒 - 𝐒𝐢𝐧𝐠𝐥𝐞 𝐑𝐞𝐬𝐩𝐨𝐧𝐬𝐢𝐛𝐢𝐥𝐢𝐭𝐲 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞
A class should have only one reason to change.
- Example: Instead of one giant User class that handles authentication, profile updates, and sending emails, split it into UserAuth, UserProfile, and EmailService.
𝐎 - 𝐎𝐩𝐞𝐧/𝐂𝐥𝐨𝐬𝐞𝐝 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞
Classes should be open for extension but closed for modification.
- Example: Define a Shape interface with an area() method. When you need a new shape, just add a Circle or Triangle class that implements it.
𝐋 - 𝐋𝐢𝐬𝐤𝐨𝐯 𝐒𝐮𝐛𝐬𝐭𝐢𝐭𝐮𝐭𝐢𝐨𝐧 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞
Subtypes must be substitutable for their base types without breaking behavior.
- Example: If Bird has a fly() method, then Eagle and Sparrow should both work anywhere a Bird is expected.
𝐈 - 𝐈𝐧𝐭𝐞𝐫𝐟𝐚𝐜𝐞 𝐒𝐞𝐠𝐫𝐞𝐠𝐚𝐭𝐢𝐨𝐧 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞
Don't force classes to implement interfaces they don't use.
- Example: Instead of one fat Machine interface with print(), scan(), and fax(), break it into Printable, Scannable, and Faxable. A SimplePrinter only implements Printable.
𝐃 - 𝐃𝐞𝐩𝐞𝐧𝐝𝐞𝐧𝐜𝐲 𝐈𝐧𝐯𝐞𝐫𝐬𝐢𝐨𝐧 𝐏𝐫𝐢𝐧𝐜𝐢𝐩𝐥𝐞
High-level modules should not depend on low-level modules. Both should depend on abstractions.
- Example: Your OrderService should depend on a PaymentGateway interface, not directly on Stripe or PayPal.
The real power of SOLID is not in following each principle in isolation. It's in how they work together to make your code easier to change, test, and extend.
♻️ Repost to help others in your network
You probably don't need a Dockerfile anymore.
If you're building .NET apps, the SDK can generate optimized container images natively.
✅ Just: dotnet publish /t:PublishContainer
Here is the full guide on how to set this up: https://t.co/n3vSRBK3qj
🚀 Excited to announce SharpIDE - A Modern, Cross-Platform IDE for .NET!
I'm thrilled to share my latest open-source project, just in time for .NET 10: SharpIDE, a brand new IDE for .NET, built with .NET and Godot! 🎉
🔗 Check it out on GitHub: https://t.co/ithPrIg2Qk
...
.NET 10 is here!
The latest release brings performance boosts, cloud-native enhancements, and AI integration to supercharge your development experience. With improved tooling for #ASPNET Core, expanded C# features, (cont) https://t.co/7P0Y5tKqoV
Mocks are fine… until they lie. 😅 Enter Testcontainers: run real services in containers for integration tests that actually reflect production.
Your tests deserve better—learn how 👉 https://t.co/SUwIbcxqO4
#DevOps meets reality ✅
Your software architecture isn't worth much if it's easy to break.
I'll show you a better approach.
I use these 3 approaches to help my team stick to the design:
- Compiler, static analysis
- Architecture testing
- Code reviews
The compiler is your best friend. It will never let you make a mistake. If you write code that doesn't compile, your build will crash, which is awesome.
But how can we use this to enforce software architecture?
Our options in .NET are limited. But you can use the internal access modifier to hide types from other assemblies. You can also organize your code into separate projects (assemblies) to enforce isolation.
Unfortunately, this doesn't scale well because you end up with many projects.
Static analysis is interesting, but I don't like writing custom Roslyn rules.
Instead, I prefer architecture testing.
Architecture tests let me express my design rules as automated tests. I can use them to enforce the correct direction of dependencies.
This is valuable in a modular monolith.
For example, each module can only reference the public API of other modules.
Lastly, we have code reviews.
This should be self-explanatory. Someone has to review the code and approve it manually.
So, which approach should you use?
I put more effort into making use of the compiler and architecture testing.
Here's how architecture testing can help you "shift left": https://t.co/dY3lAfecmI
Even the most well-planned software projects decay because of technical debt.
Most developers have good intentions. However, time pressure, misunderstandings, and resistance to rules all contribute to this problem.
Architecture testing acts as a safeguard.
---
Sign up for the .NET Weekly with 74K+ other engineers, and get a free Clean Architecture template: https://t.co/8VZW38wECu