<?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: Mohamed Ashmawy</title>
    <description>The latest articles on DEV Community by Mohamed Ashmawy (@mohamed_ashmawy_d93978442).</description>
    <link>https://dev.to/mohamed_ashmawy_d93978442</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1907261%2Fef55d910-4aa0-4190-b4ef-8947f301638f.jpg</url>
      <title>DEV Community: Mohamed Ashmawy</title>
      <link>https://dev.to/mohamed_ashmawy_d93978442</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mohamed_ashmawy_d93978442"/>
    <language>en</language>
    <item>
      <title>🚀 Introducing AutoMediate: A Drop-In Mediator for .NET</title>
      <dc:creator>Mohamed Ashmawy</dc:creator>
      <pubDate>Sat, 16 Aug 2025 22:25:14 +0000</pubDate>
      <link>https://dev.to/mohamed_ashmawy_d93978442/introducing-automediate-a-drop-in-mediator-for-net-44bo</link>
      <guid>https://dev.to/mohamed_ashmawy_d93978442/introducing-automediate-a-drop-in-mediator-for-net-44bo</guid>
      <description>&lt;p&gt;If you’ve ever worked with the Mediator pattern in .NET, you’ve probably come across MediatR.&lt;br&gt;
It’s a great library, but sometimes it adds more configuration and boilerplate than you’d like.&lt;/p&gt;

&lt;p&gt;That’s why I built AutoMediate 🎉 — a lightweight, convention-based mediator library designed as a drop-in replacement for MediatR — but with less friction.&lt;/p&gt;

&lt;p&gt;✨ Why AutoMediate?&lt;/p&gt;

&lt;p&gt;🔌 Zero configuration — handlers are automatically wired up.&lt;/p&gt;

&lt;p&gt;🪶 Lightweight &amp;amp; clean — keep your code simple.&lt;/p&gt;

&lt;p&gt;⚡ Fast — minimal overhead.&lt;/p&gt;

&lt;p&gt;🤝 Familiar pattern — same mediator style you know.&lt;/p&gt;

&lt;p&gt;💯 Free &amp;amp; Open Source (unlike MediatR).&lt;/p&gt;

&lt;p&gt;📦 Get Started&lt;/p&gt;

&lt;p&gt;AutoMediate is available today:&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/mashmawy/AutoMediate" rel="noopener noreferrer"&gt;https://github.com/mashmawy/AutoMediate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NuGet: &lt;a href="https://www.nuget.org/packages/AutoMediate" rel="noopener noreferrer"&gt;https://www.nuget.org/packages/AutoMediate&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="n"&gt;Example&lt;/span&gt; &lt;span class="n"&gt;usage&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;record&lt;/span&gt; &lt;span class="nc"&gt;Ping&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;Message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;IRequest&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;;&lt;/span&gt;

&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PingHandler&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;IRequestHandler&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Ping&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;Handle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Ping&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;CancellationToken&lt;/span&gt; &lt;span class="n"&gt;ct&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
        &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;FromResult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;$"Pong: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Message&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No configuration needed — AutoMediate wires it up automatically.&lt;/p&gt;

&lt;p&gt;🙌 Feedback Welcome&lt;/p&gt;

&lt;p&gt;I’d love for you to try it out, share your thoughts, and maybe even contribute.&lt;/p&gt;

&lt;h1&gt;
  
  
  dotnet #csharp #opensource #nuget #architecture
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Rule Engines</title>
      <dc:creator>Mohamed Ashmawy</dc:creator>
      <pubDate>Mon, 23 Sep 2024 21:54:13 +0000</pubDate>
      <link>https://dev.to/mohamed_ashmawy_d93978442/rule-engines-3dd</link>
      <guid>https://dev.to/mohamed_ashmawy_d93978442/rule-engines-3dd</guid>
      <description>&lt;p&gt;Complex business logic may be effectively managed and streamlined with the help of rule engines. Rules offer a versatile and easily maintainable approach that can adapt to your business's changing demands by separating themselves from the application code.&lt;/p&gt;

&lt;p&gt;Rule Engines: Why Use Them?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexibility: You can easily add, delete, or amend rules without having to change the application code.&lt;/li&gt;
&lt;li&gt;Maintainability: It is easier to handle centralized business logic.&lt;/li&gt;
&lt;li&gt;Reusability: Rules are transferable to other applications or domains.&lt;/li&gt;
&lt;li&gt;Performance: Large rulebases and datasets are handled by optimized engines with ease.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How to Put a Rule Engine Into Practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Determine Business Rules: Examine procedures and record precise decision-making points and limitations.&lt;/li&gt;
&lt;li&gt;Select a Rule Engine: Consider functionality, scalability, and integration requirements while evaluating engines.&lt;/li&gt;
&lt;li&gt;Describe the language used in the rule: You may design your own rule language or use one of the common ones, such as Drools or Jess.&lt;/li&gt;
&lt;li&gt;Establish the Rulebase: Business regulations should be translated into the selected language and arranged for convenience of management.&lt;/li&gt;
&lt;li&gt;Integrate: Incorporate the rule engine into your program to guarantee efficient rule changes and execution.&lt;/li&gt;
&lt;li&gt;evaluate and Validate: Apply real-world scenarios to thoroughly evaluate the engine, making necessary refinements.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 Want a real-world example? Check out how you can create a rule engine using my expression evaluator library NeonBlue.Expressions at &lt;a href="https://github.com/mashmawy/NeonBlue.Expressions/tree/master/NeonBlue.Expressions.Examples" rel="noopener noreferrer"&gt;https://github.com/mashmawy/NeonBlue.Expressions/tree/master/NeonBlue.Expressions.Examples&lt;/a&gt;. It’s designed to help you efficiently handle dynamic rules and calculations in your applications!&lt;/p&gt;

&lt;p&gt;Best Practices:&lt;/p&gt;

&lt;p&gt;Make regulations clear and concise.&lt;br&gt;
Make consistent and lucid use of language.&lt;br&gt;
For efficiency, make use of inheritance and rule chaining.&lt;br&gt;
Keep an eye on and improve the rulebase constantly.&lt;/p&gt;

&lt;p&gt;Businesses may use rule engines to create flexible, maintainable, and high-performing applications by following these guidelines. &lt;/p&gt;

</description>
      <category>businesslogic</category>
      <category>ruleengine</category>
      <category>softwaredevelopment</category>
      <category>techtips</category>
    </item>
    <item>
      <title>🚀 New Version of NeonBlue.Expressions Released!</title>
      <dc:creator>Mohamed Ashmawy</dc:creator>
      <pubDate>Sat, 21 Sep 2024 20:16:23 +0000</pubDate>
      <link>https://dev.to/mohamed_ashmawy_d93978442/new-version-of-neonblueexpressions-released-4370</link>
      <guid>https://dev.to/mohamed_ashmawy_d93978442/new-version-of-neonblueexpressions-released-4370</guid>
      <description>&lt;p&gt;I’m excited to announce a new version of NeonBlue.Expressions, featuring key enhancements based on some incredible feedback. 🎉&lt;/p&gt;

&lt;p&gt;🔧 What’s New:&lt;/p&gt;

&lt;p&gt;Power Operator (^): You can now perform exponentiation directly in your expressions.&lt;/p&gt;

&lt;p&gt;Support for Null, True, False: Added native handling for null, true, and false keywords, enhancing logical expression support.&lt;/p&gt;

&lt;p&gt;Mathematical Constants: Added pi and tau keywords for more precise mathematical calculations.&lt;/p&gt;

&lt;p&gt;Additional Improvements:&lt;/p&gt;

&lt;p&gt;Performance Boost: Enhanced expression evaluation for faster execution.&lt;/p&gt;

&lt;p&gt;Cleaner Codebase: Applied feedback to make the code more efficient and maintainable.&lt;/p&gt;

&lt;p&gt;Bug Fixes: Improved overall stability and resolved minor issues.&lt;/p&gt;

&lt;p&gt;Check out the latest version on GitHub and let me know what you think! Your feedback is invaluable as I continue to refine and expand the library.&lt;/p&gt;

&lt;p&gt;💻 GitHub Repository: &lt;a href="https://github.com/mashmawy/NeonBlue.Expressions" rel="noopener noreferrer"&gt;https://github.com/mashmawy/NeonBlue.Expressions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📦 NuGet Package: &lt;a href="https://www.nuget.org/packages/NeonBlue.Expressions/0.1.3" rel="noopener noreferrer"&gt;https://www.nuget.org/packages/NeonBlue.Expressions/0.1.3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you to everyone contributing to making this project better! 🌟&lt;/p&gt;

&lt;p&gt;CSharp #DotNet #OpenSource #Developers #CodeEfficiency #GitHub #ExpressionLibrary&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🚀 Introducing NeonBlue.Expressions – A C# Expression Evaluation Library for Developers!</title>
      <dc:creator>Mohamed Ashmawy</dc:creator>
      <pubDate>Thu, 19 Sep 2024 12:00:12 +0000</pubDate>
      <link>https://dev.to/mohamed_ashmawy_d93978442/introducing-neonblueexpressions-a-c-expression-evaluation-library-for-developers-5bme</link>
      <guid>https://dev.to/mohamed_ashmawy_d93978442/introducing-neonblueexpressions-a-c-expression-evaluation-library-for-developers-5bme</guid>
      <description>&lt;p&gt;🚀 Introducing NeonBlue.Expressions – A C# Expression Evaluation Library for Developers!&lt;/p&gt;

&lt;p&gt;Hi, #CSharp developers! 🎉&lt;/p&gt;

&lt;p&gt;I’m excited to announce the early-stage release of NeonBlue.Expressions, a library designed to make expression evaluation in .NET faster and more efficient.&lt;/p&gt;

&lt;p&gt;🔧 Key Features (so far):&lt;/p&gt;

&lt;p&gt;-Direct Interpretation: NeonBlue.Expressions’s interpreter directly executes expressions, minimizing computational overhead.&lt;/p&gt;

&lt;p&gt;-Efficient Aggregate Functions: Optimized aggregation techniques significantly improve performance when working with large datasets.&lt;/p&gt;

&lt;p&gt;-Lightweight and Fast: Designed for performance, NeonBlue.Expressions is optimized for efficient expression evaluation.&lt;/p&gt;

&lt;p&gt;-.NET 8 Compatibility: Built on the latest .NET framework, ensuring compatibility with modern features.&lt;/p&gt;

&lt;p&gt;-Ease of Use: A straightforward API simplifies integration into you .NET applications.&lt;/p&gt;

&lt;p&gt;This is just the beginning—more features are on the way! I’m actively working on updates and would love for you to try it out, share feedback, and contribute.&lt;/p&gt;

&lt;p&gt;💻 GitHub Repository: &lt;a href="https://github.com/mashmawy/NeonBlue.Expressions" rel="noopener noreferrer"&gt;https://github.com/mashmawy/NeonBlue.Expressions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s grow this project together—your feedback and contributions are invaluable! 🚀&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>dotnet</category>
      <category>expression</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
