<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Blog on Fabrizio Bagalà</title>
		<link>https://fabriziobagala.com/blog/</link>
		<description>Recent content in Blog on Fabrizio Bagalà</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Tue, 30 Jun 2026 08:12:00 +0200</lastBuildDate>
		
			<atom:link href="https://fabriziobagala.com/blog/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Dependency Inversion Principle (DIP) in C#</title>
				<link>https://fabriziobagala.com/blog/dependency-inversion-principle/</link>
				<pubDate>Tue, 30 Jun 2026 08:12:00 +0200</pubDate>
				<guid>https://fabriziobagala.com/blog/dependency-inversion-principle/</guid>
				<description>&lt;p&gt;The &lt;strong&gt;Dependency Inversion Principle&lt;/strong&gt; is the &amp;ldquo;D&amp;rdquo; in SOLID, and it is the one that ties the whole acronym together. Robert C. Martin states it in two parts:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;High-level modules should not depend on low-level modules. Both should depend on &lt;strong&gt;abstractions&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Abstractions should not depend on details. Details should depend on &lt;strong&gt;abstractions&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;The &amp;ldquo;inversion&amp;rdquo; in the name refers to flipping the usual flow of dependencies. Normally, your important business logic (high-level) reaches down and calls concrete helpers like a database or an SMTP client (low-level). DIP inverts that: both the business logic and the helpers depend on an abstraction in the middle, and the arrows now point &lt;em&gt;inward&lt;/em&gt;, toward the policy that matters.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Interface Segregation Principle (ISP) in C#</title>
				<link>https://fabriziobagala.com/blog/interface-segregation-principle/</link>
				<pubDate>Mon, 29 Jun 2026 21:50:00 +0200</pubDate>
				<guid>https://fabriziobagala.com/blog/interface-segregation-principle/</guid>
				<description>&lt;p&gt;The &lt;strong&gt;Interface Segregation Principle&lt;/strong&gt; is the &amp;ldquo;I&amp;rdquo; in SOLID. Its definition is short:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;No client should be forced to depend on methods it does not use.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Put another way: prefer several small, focused interfaces over one large, general-purpose one. A &amp;ldquo;fat&amp;rdquo; interface, one that bundles many unrelated operations, forces every implementer to deal with methods it does not care about, and forces every consumer to depend on capabilities it never touches.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Liskov Substitution Principle (LSP) in C#</title>
				<link>https://fabriziobagala.com/blog/liskov-substitution-principle/</link>
				<pubDate>Sun, 28 Jun 2026 20:33:00 +0200</pubDate>
				<guid>https://fabriziobagala.com/blog/liskov-substitution-principle/</guid>
				<description>&lt;p&gt;The &lt;strong&gt;Liskov Substitution Principle&lt;/strong&gt; is the &amp;ldquo;L&amp;rdquo; in SOLID, named after computer scientist Barbara Liskov. It is the most formal of the five, but the idea behind it is simple:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Open/Closed Principle (OCP) in C#</title>
				<link>https://fabriziobagala.com/blog/open-closed-principle/</link>
				<pubDate>Sat, 27 Jun 2026 22:18:00 +0200</pubDate>
				<guid>https://fabriziobagala.com/blog/open-closed-principle/</guid>
				<description>&lt;p&gt;The &lt;strong&gt;Open/Closed Principle&lt;/strong&gt; is the &amp;ldquo;O&amp;rdquo; in SOLID, and its definition sounds like a contradiction until you unpack it:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Software entities should be &lt;strong&gt;open for extension, but closed for modification&lt;/strong&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Single Responsibility Principle (SRP) in C#</title>
				<link>https://fabriziobagala.com/blog/single-responsibility-principle/</link>
				<pubDate>Fri, 26 Jun 2026 19:42:00 +0200</pubDate>
				<guid>https://fabriziobagala.com/blog/single-responsibility-principle/</guid>
				<description>&lt;p&gt;The &lt;strong&gt;Single Responsibility Principle&lt;/strong&gt; is the &amp;ldquo;S&amp;rdquo; in SOLID, and it is the one developers most often get wrong. The usual paraphrase, &amp;ldquo;a class should do only one thing,&amp;rdquo; is too vague to be useful. What counts as &amp;ldquo;one thing&amp;rdquo;? A method does one thing. A whole microservice does one thing. The size of &amp;ldquo;one&amp;rdquo; is in the eye of the beholder.&lt;/p&gt;</description>
			</item>
			<item>
				<title>SOLID Principles in C#: A Practical Introduction</title>
				<link>https://fabriziobagala.com/blog/solid-principles-introduction/</link>
				<pubDate>Thu, 25 Jun 2026 21:05:00 +0200</pubDate>
				<guid>https://fabriziobagala.com/blog/solid-principles-introduction/</guid>
				<description>&lt;p&gt;If you have spent any time around object-oriented design, you have run into the acronym &lt;strong&gt;SOLID&lt;/strong&gt;. It shows up in interviews, code reviews, and architecture discussions, often with the implicit assumption that everyone already agrees on what it means. In practice, many developers can recite the five names but struggle to explain &lt;em&gt;why&lt;/em&gt; each principle exists or &lt;em&gt;when&lt;/em&gt; it actually helps.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Welcome</title>
				<link>https://fabriziobagala.com/blog/welcome/</link>
				<pubDate>Wed, 24 Jun 2026 18:30:00 +0200</pubDate>
				<guid>https://fabriziobagala.com/blog/welcome/</guid>
				<description>&lt;p&gt;Welcome and thank you for being here!&lt;/p&gt;&#xA;&lt;p&gt;Whether you arrived from a search result, a link someone else shared, or just by clicking around, I&amp;rsquo;m glad you&amp;rsquo;ve come this way. Writing for myself is easy; writing knowing someone might read it is another story.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
