<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: emanuele longo</title>
    <description>The latest articles on DEV Community by emanuele longo (@emalo92).</description>
    <link>https://dev.to/emalo92</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3299789%2Fcb157616-6297-4a55-907e-8bc8c66184f4.jpg</url>
      <title>DEV Community: emanuele longo</title>
      <link>https://dev.to/emalo92</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/emalo92"/>
    <language>en</language>
    <item>
      <title>Modern C# Properties: Beyond Getters and Setters</title>
      <dc:creator>emanuele longo</dc:creator>
      <pubDate>Fri, 04 Jul 2025 07:23:52 +0000</pubDate>
      <link>https://dev.to/emalo92/modern-c-properties-beyond-getters-and-setters-lao</link>
      <guid>https://dev.to/emalo92/modern-c-properties-beyond-getters-and-setters-lao</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;📝 &lt;strong&gt;Full guide published on &lt;a href="https://medium.com/c-sharp-programming/properties-in-c-intelligent-control-of-your-data-f6801f68de1c?sk=49915c2412431e4080c933c9dd859030" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Follow me there for more articles on .NET and C# insights.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;Properties in C# are often seen as just a cleaner way to expose fields — but in reality, they’re a powerful abstraction that has evolved significantly over the years.&lt;/p&gt;

&lt;p&gt;From simple auto-properties to validation logic, computed values, and advanced patterns for immutability, modern C# (especially the latest versions like C# 9, 11, and 14) offers many capabilities that can make your code safer, clearer, and more maintainable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why You Should Care
&lt;/h3&gt;

&lt;p&gt;Here’s why properties deserve more attention:&lt;/p&gt;

&lt;p&gt;✅ They protect your domain model with validation rules&lt;br&gt;
✅ They can enforce immutability in a clean, declarative way&lt;br&gt;
✅ They simplify derived/calculated data&lt;br&gt;
✅ They integrate with pattern matching and nullable reference types&lt;br&gt;
✅ They keep APIs clean and self-documenting&lt;/p&gt;

&lt;p&gt;And in recent C# releases, properties have gained new features that many developers still underuse, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Init-only properties for immutable objects&lt;/li&gt;
&lt;li&gt;Required properties to ensure proper initialization&lt;/li&gt;
&lt;li&gt;Nullable annotations for safer reference types&lt;/li&gt;
&lt;li&gt;Field-backed properties for simpler validation logic&lt;/li&gt;
&lt;li&gt;And more improvements coming soon&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Curious About All the Latest Features?
&lt;/h3&gt;

&lt;p&gt;I’ve put together a detailed article covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What’s changed in properties from C# 9 up to C# 14&lt;/li&gt;
&lt;li&gt;Examples of validation, lazy loading, and computed properties&lt;/li&gt;
&lt;li&gt;Best practices and patterns you can apply right now&lt;/li&gt;
&lt;li&gt;A glimpse into future possibilities, like async properties&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you work with C# and want to write modern, professional, and safe code, this resource will help you level up.&lt;/p&gt;




&lt;p&gt;** Thanks for Reading!&lt;/p&gt;

&lt;p&gt;Read the full guide on &lt;a href="https://medium.com/c-sharp-programming/properties-in-c-intelligent-control-of-your-data-f6801f68de1c?sk=49915c2412431e4080c933c9dd859030" rel="noopener noreferrer"&gt;Medium&lt;/a&gt; for full context and examples.**&lt;/p&gt;

&lt;p&gt;Follow me on Medium for the upcoming insights.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>csharp</category>
      <category>programming</category>
      <category>development</category>
    </item>
    <item>
      <title>Introduction to Design Patterns with C# .NET: When (and Why) You Should Use Them</title>
      <dc:creator>emanuele longo</dc:creator>
      <pubDate>Fri, 27 Jun 2025 09:50:32 +0000</pubDate>
      <link>https://dev.to/emalo92/introduction-to-design-patterns-with-c-net-when-and-why-you-should-use-them-14j0</link>
      <guid>https://dev.to/emalo92/introduction-to-design-patterns-with-c-net-when-and-why-you-should-use-them-14j0</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;📝 &lt;strong&gt;Originally published on &lt;a href="https://medium.com/@emanuele.longo992/introduction-to-design-patterns-with-c-net-when-you-should-really-use-them-3dcb22be1c46" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Follow me there for more articles on .NET and modern software design.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;Design patterns are one of the most debated topics in software engineering. Some developers swear by them; others avoid them like the plague. But the truth lies somewhere in the middle: design patterns are powerful tools — when used appropriately.&lt;/p&gt;

&lt;p&gt;In the .NET ecosystem, especially with modern C# features and clean architecture practices, understanding when and why to use a pattern is more important than memorizing their structure.&lt;/p&gt;

&lt;p&gt;This article is not another reference of the 23 Gang of Four patterns. Instead, we’ll focus on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What design patterns are in practical terms&lt;/li&gt;
&lt;li&gt;When they are actually useful in real-world .NET applications&lt;/li&gt;
&lt;li&gt;How to recognize overengineering&lt;/li&gt;
&lt;li&gt;Practical examples of patterns in C#&lt;/li&gt;
&lt;li&gt;A warning on when not to use them&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🎯 What Is a Design Pattern?
&lt;/h3&gt;

&lt;p&gt;A design pattern is a general, reusable solution to a commonly occurring problem in software design. It’s not a finished design or class you can copy-paste, but rather a template on how to solve a problem that can be adapted to your use case.&lt;/p&gt;

&lt;p&gt;Design patterns can be classified into several categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creational Patterns&lt;/li&gt;
&lt;li&gt;Structural Patterns&lt;/li&gt;
&lt;li&gt;Behavioral Patterns&lt;/li&gt;
&lt;li&gt;Architectural Patterns&lt;/li&gt;
&lt;li&gt;Concurrency Patterns&lt;/li&gt;
&lt;li&gt;Integration Patterns&lt;/li&gt;
&lt;li&gt;Distribution Patterns&lt;/li&gt;
&lt;li&gt;Cloud Design Patterns&lt;/li&gt;
&lt;li&gt;Security Patterns&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’ll explore each of these categories in depth over time.&lt;/p&gt;




&lt;h3&gt;
  
  
  Why and When Should You Use Design Patterns?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;They provide a common language&lt;/strong&gt; among developers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proven solutions&lt;/strong&gt; refined over years.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Improve maintainability&lt;/strong&gt; by reducing coupling and separating concerns.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enable scalability and flexibility&lt;/strong&gt; (Open/Closed Principle).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Facilitate SOLID principles&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;When:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You face a problem that maps directly to a known design pattern.&lt;/li&gt;
&lt;li&gt;You need to enforce separation of concerns or loose coupling.&lt;/li&gt;
&lt;li&gt;The project is growing in complexity.&lt;/li&gt;
&lt;li&gt;You must prepare your codebase for future changes.&lt;/li&gt;
&lt;li&gt;You need to vary behaviors dynamically at runtime.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember: &lt;strong&gt;not everything needs a pattern&lt;/strong&gt;. Sometimes, a simple method or lambda expression is enough.&lt;/p&gt;




&lt;h3&gt;
  
  
  Thanks for Reading!
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Read the original article on &lt;a href="https://medium.com/@emanuele.longo992/introduction-to-design-patterns-with-c-net-when-you-should-really-use-them-3dcb22be1c46" rel="noopener noreferrer"&gt;Medium&lt;/a&gt; for full context and more examples.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Follow me on Medium for the upcoming series exploring each design pattern category in detail.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>csharp</category>
      <category>designpatterns</category>
      <category>architecture</category>
    </item>
  </channel>
</rss>
