<?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: Abinash Behera</title>
    <description>The latest articles on DEV Community by Abinash Behera (@abinash_behera_bc65de5516).</description>
    <link>https://dev.to/abinash_behera_bc65de5516</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%2F1656611%2Ff27c9a7a-8b01-450d-bced-2e22b3b2ad59.png</url>
      <title>DEV Community: Abinash Behera</title>
      <link>https://dev.to/abinash_behera_bc65de5516</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abinash_behera_bc65de5516"/>
    <language>en</language>
    <item>
      <title>From Git Beginner to Advanced: The Complete Guide Every Developer Should Know</title>
      <dc:creator>Abinash Behera</dc:creator>
      <pubDate>Thu, 25 Jun 2026 10:37:05 +0000</pubDate>
      <link>https://dev.to/abinash_behera_bc65de5516/from-git-beginner-to-advanced-the-complete-guide-every-developer-should-know-3d5g</link>
      <guid>https://dev.to/abinash_behera_bc65de5516/from-git-beginner-to-advanced-the-complete-guide-every-developer-should-know-3d5g</guid>
      <description>&lt;p&gt;&lt;em&gt;A practical guide to mastering Git—from your first commit to advanced collaboration and repository management.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Whether you're building personal projects, contributing to open source, or working in a professional software team, &lt;strong&gt;Git&lt;/strong&gt; is one of the most important tools you'll use every day.&lt;/p&gt;

&lt;p&gt;Unfortunately, many developers only know a handful of commands like &lt;code&gt;git add&lt;/code&gt;, &lt;code&gt;git commit&lt;/code&gt;, and &lt;code&gt;git push&lt;/code&gt;, while Git offers far more powerful features that simplify collaboration, debugging, and version management.&lt;/p&gt;

&lt;p&gt;In this guide, we'll take a step-by-step journey from &lt;strong&gt;Git basics to advanced workflows&lt;/strong&gt;, covering the commands and concepts every developer should know.&lt;/p&gt;

&lt;p&gt;Let's get started.&lt;/p&gt;




&lt;h1&gt;
  
  
  1. What is Git?
&lt;/h1&gt;

&lt;p&gt;Git is a &lt;strong&gt;distributed version control system&lt;/strong&gt; that tracks changes in your source code.&lt;/p&gt;

&lt;p&gt;It allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Track every code change&lt;/li&gt;
&lt;li&gt;Collaborate with teams&lt;/li&gt;
&lt;li&gt;Restore previous versions&lt;/li&gt;
&lt;li&gt;Experiment safely using branches&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  2. Installing Git
&lt;/h1&gt;

&lt;p&gt;Download Git:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://git-scm.com/" rel="noopener noreferrer"&gt;https://git-scm.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Verify installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  3. Configure Git
&lt;/h1&gt;

&lt;p&gt;Before using Git, configure your identity.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;

git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"you@example.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check your configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--list&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  4. Create Your First Repository
&lt;/h1&gt;

&lt;p&gt;Initialize Git inside a project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check repository status.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  5. Tracking Files
&lt;/h1&gt;

&lt;p&gt;Stage files:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add filename.cs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Commit your changes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Initial commit"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  6. Understanding the Git Workflow
&lt;/h1&gt;

&lt;p&gt;Git has three main areas:&lt;/p&gt;

&lt;p&gt;Working Directory&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Staging Area&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Repository&lt;/p&gt;

&lt;p&gt;Understanding this workflow helps avoid many beginner mistakes.&lt;/p&gt;




&lt;h1&gt;
  
  
  7. Viewing Commit History
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Compact version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;--oneline&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Beautiful graph:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;--graph&lt;/span&gt; &lt;span class="nt"&gt;--all&lt;/span&gt; &lt;span class="nt"&gt;--decorate&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  8. Branching
&lt;/h1&gt;

&lt;p&gt;Create a branch.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch feature-login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Switch branches.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git switch feature-login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout feature-login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  9. Merging Branches
&lt;/h1&gt;

&lt;p&gt;Merge your feature into main.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout main

git merge feature-login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  10. Working with GitHub
&lt;/h1&gt;

&lt;p&gt;Connect your repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote add origin https://github.com/user/project.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Push code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push &lt;span class="nt"&gt;-u&lt;/span&gt; origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Clone a repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/user/project.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  11. Pulling Latest Changes
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git pull origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fetch only:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git fetch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Difference:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fetch downloads changes&lt;/li&gt;
&lt;li&gt;pull downloads and merges&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  12. Undo Mistakes
&lt;/h1&gt;

&lt;p&gt;Unstage files.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git restore &lt;span class="nt"&gt;--staged&lt;/span&gt; file.cs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Discard changes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git restore file.cs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Undo last commit.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git reset &lt;span class="nt"&gt;--soft&lt;/span&gt; HEAD~1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  13. Git Stash
&lt;/h1&gt;

&lt;p&gt;Temporarily save unfinished work.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git stash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restore it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git stash pop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;List stashes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git stash list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  14. Resolving Merge Conflicts
&lt;/h1&gt;

&lt;p&gt;Conflicts happen when two branches modify the same code.&lt;/p&gt;

&lt;p&gt;Steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open conflicted file&lt;/li&gt;
&lt;li&gt;Resolve differences&lt;/li&gt;
&lt;li&gt;Save file&lt;/li&gt;
&lt;li&gt;Stage changes&lt;/li&gt;
&lt;li&gt;Commit merge&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  15. Cherry Pick
&lt;/h1&gt;

&lt;p&gt;Copy one commit from another branch.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git cherry-pick commit_hash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Perfect for bug fixes.&lt;/p&gt;




&lt;h1&gt;
  
  
  16. Interactive Rebase
&lt;/h1&gt;

&lt;p&gt;Clean commit history.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git rebase &lt;span class="nt"&gt;-i&lt;/span&gt; HEAD~5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Squashing commits&lt;/li&gt;
&lt;li&gt;Renaming commits&lt;/li&gt;
&lt;li&gt;Reordering history&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  17. Git Tags
&lt;/h1&gt;

&lt;p&gt;Create release versions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git tag v1.0.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Push tags.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push origin &lt;span class="nt"&gt;--tags&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  18. Git Ignore
&lt;/h1&gt;

&lt;p&gt;Ignore unnecessary files.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bin/
obj/

.vs/

node_modules/

.env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  19. Useful Git Aliases
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; alias.st status

git config &lt;span class="nt"&gt;--global&lt;/span&gt; alias.co checkout

git config &lt;span class="nt"&gt;--global&lt;/span&gt; alias.br branch

git config &lt;span class="nt"&gt;--global&lt;/span&gt; alias.cm commit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now simply run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git st

git co

git br
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  20. Advanced Git Features
&lt;/h1&gt;

&lt;p&gt;Explore these powerful capabilities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rebase&lt;/li&gt;
&lt;li&gt;Bisect&lt;/li&gt;
&lt;li&gt;Worktrees&lt;/li&gt;
&lt;li&gt;Reflog&lt;/li&gt;
&lt;li&gt;Hooks&lt;/li&gt;
&lt;li&gt;Submodules&lt;/li&gt;
&lt;li&gt;Sparse Checkout&lt;/li&gt;
&lt;li&gt;Git LFS&lt;/li&gt;
&lt;li&gt;Signed Commits&lt;/li&gt;
&lt;li&gt;GitHub Actions Integration&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Common Git Commands Cheat Sheet
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
git clone
git status
git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
git push
git pull
git fetch
git branch
git switch
git checkout
git merge
git rebase
git stash
git reset
git restore
git revert
git tag
git cherry-pick
git log &lt;span class="nt"&gt;--oneline&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Best Practices
&lt;/h1&gt;

&lt;p&gt;✅ Commit frequently&lt;/p&gt;

&lt;p&gt;✅ Write meaningful commit messages&lt;/p&gt;

&lt;p&gt;✅ Keep branches focused&lt;/p&gt;

&lt;p&gt;✅ Pull before pushing&lt;/p&gt;

&lt;p&gt;✅ Never commit secrets&lt;/p&gt;

&lt;p&gt;✅ Use .gitignore properly&lt;/p&gt;

&lt;p&gt;✅ Review changes before committing&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Git is much more than a tool for saving code—it's the foundation of modern software development. Mastering Git means writing code with confidence, collaborating effectively, and recovering from mistakes when they happen.&lt;/p&gt;

&lt;p&gt;Don't try to learn everything at once. Start with the basics, practice daily, and gradually explore advanced features like branching, rebasing, cherry-picking, and Git hooks. Over time, these skills will become second nature and significantly improve your development workflow.&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;If you found this guide helpful, let me know which Git command you use the most—or which advanced feature you're excited to learn next!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>softwaredevelopment</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>10 Hidden Features Every .NET Developer Should Know</title>
      <dc:creator>Abinash Behera</dc:creator>
      <pubDate>Thu, 25 Jun 2026 10:34:32 +0000</pubDate>
      <link>https://dev.to/abinash_behera_bc65de5516/10-hidden-features-every-net-developer-should-know-3e4l</link>
      <guid>https://dev.to/abinash_behera_bc65de5516/10-hidden-features-every-net-developer-should-know-3e4l</guid>
      <description>&lt;p&gt;&lt;em&gt;A practical guide to writing cleaner, safer, and more modern C# code.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The .NET ecosystem evolves rapidly, and with every release Microsoft introduces features that make development easier, cleaner, and more efficient. Unfortunately, many developers continue writing code the same way they did years ago, missing out on improvements that can simplify their daily work.&lt;/p&gt;

&lt;p&gt;In this article, we'll explore &lt;strong&gt;10 hidden (or underused) .NET features&lt;/strong&gt; that every developer should know. These aren't gimmicks—they're practical tools you can start using today in real-world applications.&lt;/p&gt;

&lt;p&gt;Whether you're building ASP.NET Core APIs, desktop applications, or cloud services, these features will help you write better code.&lt;/p&gt;




&lt;h1&gt;
  
  
  1. Collection Expressions
&lt;/h1&gt;

&lt;p&gt;One of the cleanest additions to modern C# is &lt;strong&gt;Collection Expressions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of writing:&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="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can now simply write:&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="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It also works with lists:&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;List&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="n"&gt;names&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s"&gt;"John"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;"Emma"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;"David"&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Why it matters
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Less typing&lt;/li&gt;
&lt;li&gt;Cleaner syntax&lt;/li&gt;
&lt;li&gt;Easier to read&lt;/li&gt;
&lt;li&gt;Perfect for initialization&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  2. Primary Constructors
&lt;/h1&gt;

&lt;p&gt;Dependency Injection becomes much cleaner.&lt;/p&gt;

&lt;p&gt;Old style:&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="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UserService&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;readonly&lt;/span&gt; &lt;span class="n"&gt;IUserRepository&lt;/span&gt; &lt;span class="n"&gt;_repository&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;UserService&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;IUserRepository&lt;/span&gt; &lt;span class="n"&gt;repository&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;_repository&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;repository&lt;/span&gt;&lt;span class="p"&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;Modern C#:&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="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UserService&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;IUserRepository&lt;/span&gt; &lt;span class="n"&gt;repository&lt;/span&gt;&lt;span class="p"&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;h3&gt;
  
  
  Benefits
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Removes boilerplate&lt;/li&gt;
&lt;li&gt;Cleaner classes&lt;/li&gt;
&lt;li&gt;Easier maintenance&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  3. Required Members
&lt;/h1&gt;

&lt;p&gt;Forget assigning required properties? The compiler now helps you.&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="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Employee&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;required&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&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;required&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;Email&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&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;Now this won't compile:&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="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;employee&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Correct:&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="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;employee&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Employee&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Abinash"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;Email&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"abinash@example.com"&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Benefits
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Compile-time safety&lt;/li&gt;
&lt;li&gt;Prevents null issues&lt;/li&gt;
&lt;li&gt;Better models&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  4. TimeProvider
&lt;/h1&gt;

&lt;p&gt;Instead of using:&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;DateTime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Now&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use:&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;TimeProvider&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetLocalNow&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Because DateTime.Now cannot easily be mocked during testing.&lt;/p&gt;

&lt;p&gt;TimeProvider can.&lt;/p&gt;

&lt;p&gt;Perfect for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unit Tests&lt;/li&gt;
&lt;li&gt;Scheduling&lt;/li&gt;
&lt;li&gt;Background Services&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  5. Keyed Dependency Injection
&lt;/h1&gt;

&lt;p&gt;Need multiple implementations?&lt;/p&gt;

&lt;p&gt;Example:&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;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Services&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddKeyedScoped&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;IPaymentService&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;PaypalService&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="s"&gt;"paypal"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Services&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddKeyedScoped&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;IPaymentService&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;StripeService&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;(&lt;/span&gt;&lt;span class="s"&gt;"stripe"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inject the one you need.&lt;/p&gt;

&lt;p&gt;No more huge switch statements.&lt;/p&gt;




&lt;h1&gt;
  
  
  6. Rate Limiting Middleware
&lt;/h1&gt;

&lt;p&gt;Protect your API from abuse.&lt;/p&gt;

&lt;p&gt;Enable:&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;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Services&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddRateLimiter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;UseRateLimiter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&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;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Services&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddRateLimiter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddFixedWindowLimiter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"api"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;limiterOptions&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;limiterOptions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PermitLimit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;limiterOptions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Window&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;TimeSpan&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;FromMinutes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&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;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stops spam&lt;/li&gt;
&lt;li&gt;Prevents brute-force attacks&lt;/li&gt;
&lt;li&gt;Protects servers&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  7. File-Scoped Namespaces
&lt;/h1&gt;

&lt;p&gt;Old style:&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="k"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;MyProject&lt;/span&gt;
&lt;span class="p"&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;User&lt;/span&gt;
    &lt;span class="p"&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;Modern:&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="k"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;MyProject&lt;/span&gt;&lt;span class="p"&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;User&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;Cleaner.&lt;/p&gt;

&lt;p&gt;Less indentation.&lt;/p&gt;

&lt;p&gt;Much easier to navigate.&lt;/p&gt;




&lt;h1&gt;
  
  
  8. Global Using Directives
&lt;/h1&gt;

&lt;p&gt;Instead of repeating:&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="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;Microsoft.EntityFrameworkCore&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;Microsoft.AspNetCore.Mvc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Text.Json&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In every file...&lt;/p&gt;

&lt;p&gt;Create:&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;GlobalUsings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cs&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;Microsoft.EntityFrameworkCore&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;Microsoft.AspNetCore.Mvc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Text.Json&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now every file automatically has access.&lt;/p&gt;




&lt;h1&gt;
  
  
  9. Pattern Matching
&lt;/h1&gt;

&lt;p&gt;Old:&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="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;person&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="n"&gt;Employee&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;person&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="n"&gt;Student&lt;/span&gt;&lt;span class="p"&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;Modern:&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="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;person&lt;/span&gt; &lt;span class="k"&gt;switch&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;Employee&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;Student&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Unknown"&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Much cleaner.&lt;/p&gt;

&lt;p&gt;Much more readable.&lt;/p&gt;




&lt;h1&gt;
  
  
  10. Minimal APIs
&lt;/h1&gt;

&lt;p&gt;Creating APIs has never been easier.&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="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Build&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MapGet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/users"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&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;return&lt;/span&gt; &lt;span class="n"&gt;Results&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Ok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Perfect for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Microservices&lt;/li&gt;
&lt;li&gt;Internal APIs&lt;/li&gt;
&lt;li&gt;Prototypes&lt;/li&gt;
&lt;li&gt;Serverless applications&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Bonus Features Worth Exploring
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Span&lt;/li&gt;
&lt;li&gt;Memory&lt;/li&gt;
&lt;li&gt;FrozenDictionary&lt;/li&gt;
&lt;li&gt;Source Generators&lt;/li&gt;
&lt;li&gt;Native AOT&lt;/li&gt;
&lt;li&gt;Generic Math&lt;/li&gt;
&lt;li&gt;Interceptors&lt;/li&gt;
&lt;li&gt;UTF-8 String Literals&lt;/li&gt;
&lt;li&gt;CallerArgumentExpression&lt;/li&gt;
&lt;li&gt;ConfigureAwaitOptions&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;The .NET platform keeps getting better with every release, but many of its best improvements go unnoticed because developers stick to familiar patterns.&lt;/p&gt;

&lt;p&gt;By adopting features like &lt;strong&gt;Collection Expressions&lt;/strong&gt;, &lt;strong&gt;Primary Constructors&lt;/strong&gt;, &lt;strong&gt;Required Members&lt;/strong&gt;, &lt;strong&gt;TimeProvider&lt;/strong&gt;, and &lt;strong&gt;Minimal APIs&lt;/strong&gt;, you can write code that's cleaner, safer, and easier to maintain.&lt;/p&gt;

&lt;p&gt;The best part? You don't need to learn an entirely new framework—just start incorporating these features into your existing projects one at a time.&lt;/p&gt;

&lt;p&gt;Small improvements compound over time, and modern C# gives you the tools to build applications that are both elegant and productive.&lt;/p&gt;

&lt;p&gt;Happy coding! 🚀&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;If you enjoyed this article, let me know which hidden .NET feature you use the most—or which one you plan to try next!&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why Every Developer Should Learn Git Before Learning Another Programming Language</title>
      <dc:creator>Abinash Behera</dc:creator>
      <pubDate>Wed, 24 Jun 2026 15:58:27 +0000</pubDate>
      <link>https://dev.to/abinash_behera_bc65de5516/why-every-developer-should-learn-git-before-learning-another-programming-language-a98</link>
      <guid>https://dev.to/abinash_behera_bc65de5516/why-every-developer-should-learn-git-before-learning-another-programming-language-a98</guid>
      <description>&lt;p&gt;When I started coding, I believed learning more languages would make me a better developer.&lt;/p&gt;

&lt;p&gt;I was wrong.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The skill that improved my workflow the most wasn't a new framework, library, or language—it was Git.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Reality of Software Development
&lt;/h2&gt;

&lt;p&gt;Writing code is only one part of being a developer.&lt;/p&gt;

&lt;p&gt;Real-world development involves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Managing code changes&lt;/li&gt;
&lt;li&gt;Working with teammates&lt;/li&gt;
&lt;li&gt;Tracking project history&lt;/li&gt;
&lt;li&gt;Recovering from mistakes&lt;/li&gt;
&lt;li&gt;Experimenting with new ideas safely&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Without version control, even a small mistake can become frustrating and time-consuming.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Git Is So Important
&lt;/h2&gt;

&lt;p&gt;Git acts as a safety net for developers.&lt;/p&gt;

&lt;p&gt;It allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Track every change in your project&lt;/li&gt;
&lt;li&gt;Create separate branches for new features&lt;/li&gt;
&lt;li&gt;Revert mistakes quickly&lt;/li&gt;
&lt;li&gt;Collaborate efficiently with other developers&lt;/li&gt;
&lt;li&gt;Maintain a complete history of your work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Commands Every Beginner Should Know&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;git init&lt;/p&gt;

&lt;p&gt;git add .&lt;/p&gt;

&lt;p&gt;git commit -m "Initial Commit"&lt;/p&gt;

&lt;p&gt;git branch&lt;/p&gt;

&lt;p&gt;git checkout&lt;/p&gt;

&lt;p&gt;git merge&lt;/p&gt;

&lt;p&gt;git pull&lt;/p&gt;

&lt;p&gt;git push&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You don't need to master every Git command immediately. Start with the basics and build confidence over time.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Before learning another programming language, spend some time learning Git properly.&lt;/p&gt;

&lt;p&gt;It may not seem exciting at first, but it is one of the most valuable tools in a developer's toolkit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning Git won't just save your code. It will save your time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Happy Coding! 🚀&lt;/p&gt;

&lt;h1&gt;
  
  
  git #github #programming #webdev
&lt;/h1&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>productivity</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Why We Fall Harder for People Who Avoid Us</title>
      <dc:creator>Abinash Behera</dc:creator>
      <pubDate>Wed, 24 Jun 2026 15:48:37 +0000</pubDate>
      <link>https://dev.to/abinash_behera_bc65de5516/why-we-fall-harder-for-people-who-avoid-us-1j3o</link>
      <guid>https://dev.to/abinash_behera_bc65de5516/why-we-fall-harder-for-people-who-avoid-us-1j3o</guid>
      <description>&lt;p&gt;Have you ever noticed that the people who give us the least attention sometimes occupy the most space in our minds?&lt;br&gt;
It feels like love, but often it's something deeper: the desire to be seen.&lt;br&gt;
When someone avoids us, ignores our messages, or seems emotionally unavailable, our mind starts searching for answers. We begin wondering what we did wrong, what we can change, and how we can finally earn their attention. The less recognition we receive, the more valuable it starts to feel.&lt;br&gt;
Psychology calls this intermittent reinforcement. When attention comes rarely or unpredictably, our brains can become even more attached to receiving it. A single reply, a brief smile, or a moment of warmth can feel incredibly rewarding because it is so scarce.&lt;br&gt;
But beneath that attraction is often a simple human need:&lt;br&gt;
"&lt;strong&gt;I want to be acknowledged.&lt;/strong&gt;"&lt;br&gt;
We don't just want the person. We want the feeling that we matter to them.&lt;br&gt;
Sometimes the obsession is not about love at all. It's about proving to ourselves that we are worthy of being chosen, noticed, and valued.&lt;br&gt;
The difficult truth is that recognition earned through constant chasing rarely brings lasting peace. Real connection grows where attention is given freely, not where it must be endlessly pursued.&lt;br&gt;
The healthiest relationships are not the ones that leave us questioning our worth.&lt;br&gt;
They are the ones that quietly remind us of it.&lt;br&gt;
"The strongest attraction is not always toward the person who loves us the most, but toward the person whose recognition we believe we still need to earn."&lt;/p&gt;

</description>
      <category>psychology</category>
    </item>
    <item>
      <title>share your opinion</title>
      <dc:creator>Abinash Behera</dc:creator>
      <pubDate>Thu, 18 Jun 2026 05:37:43 +0000</pubDate>
      <link>https://dev.to/abinash_behera_bc65de5516/share-your-opinion-hp5</link>
      <guid>https://dev.to/abinash_behera_bc65de5516/share-your-opinion-hp5</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/abinash_behera_bc65de5516/building-a-complete-driver-management-system-with-aspnet-core-mvc-web-api-sql-server-3fj" class="crayons-story__hidden-navigation-link"&gt;🚀 Building a Complete Driver Management System with ASP.NET Core MVC, Web API &amp;amp; SQL Server&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/abinash_behera_bc65de5516" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1656611%2Ff27c9a7a-8b01-450d-bced-2e22b3b2ad59.png" alt="abinash_behera_bc65de5516 profile" class="crayons-avatar__image" width="800" height="1000"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/abinash_behera_bc65de5516" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Abinash Behera
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Abinash Behera
                
              
              &lt;div id="story-author-preview-content-3929273" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/abinash_behera_bc65de5516" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1656611%2Ff27c9a7a-8b01-450d-bced-2e22b3b2ad59.png" class="crayons-avatar__image" alt="" width="800" height="1000"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Abinash Behera&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/abinash_behera_bc65de5516/building-a-complete-driver-management-system-with-aspnet-core-mvc-web-api-sql-server-3fj" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 18&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/abinash_behera_bc65de5516/building-a-complete-driver-management-system-with-aspnet-core-mvc-web-api-sql-server-3fj" id="article-link-3929273"&gt;
          🚀 Building a Complete Driver Management System with ASP.NET Core MVC, Web API &amp;amp; SQL Server
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/dotnet"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;dotnet&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/sql"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;sql&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/abinash_behera_bc65de5516/building-a-complete-driver-management-system-with-aspnet-core-mvc-web-api-sql-server-3fj" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/abinash_behera_bc65de5516/building-a-complete-driver-management-system-with-aspnet-core-mvc-web-api-sql-server-3fj#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            1 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>backend</category>
      <category>discuss</category>
      <category>dotnet</category>
      <category>sql</category>
    </item>
    <item>
      <title>🚀 Building a Complete Driver Management System with ASP.NET Core MVC, Web API &amp; SQL Server</title>
      <dc:creator>Abinash Behera</dc:creator>
      <pubDate>Thu, 18 Jun 2026 05:36:27 +0000</pubDate>
      <link>https://dev.to/abinash_behera_bc65de5516/building-a-complete-driver-management-system-with-aspnet-core-mvc-web-api-sql-server-3fj</link>
      <guid>https://dev.to/abinash_behera_bc65de5516/building-a-complete-driver-management-system-with-aspnet-core-mvc-web-api-sql-server-3fj</guid>
      <description>&lt;p&gt;Recently, I worked on a Driver Management System where I implemented multiple modules using ASP.NET Core MVC, Web API, Entity Framework Core, and SQL Server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features Implemented&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ Driver Management CRUD Operations&lt;/p&gt;

&lt;p&gt;✅ Driver Allowances Management&lt;/p&gt;

&lt;p&gt;✅ Driver Advances Management&lt;/p&gt;

&lt;p&gt;✅ Driver Deductions Management&lt;/p&gt;

&lt;p&gt;✅ Driver Expenses Management&lt;/p&gt;

&lt;p&gt;✅ Bulk Status Update Functionality&lt;/p&gt;

&lt;p&gt;✅ DataTables Integration&lt;/p&gt;

&lt;p&gt;✅ Search, Filter &amp;amp; Export Features&lt;/p&gt;

&lt;p&gt;✅ API and MVC Layer Integration&lt;/p&gt;

&lt;p&gt;✅ Validation and Error Handling&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technologies Used&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ASP.NET Core MVC&lt;/li&gt;
&lt;li&gt;ASP.NET Core Web API&lt;/li&gt;
&lt;li&gt;Entity Framework Core&lt;/li&gt;
&lt;li&gt;SQL Server&lt;/li&gt;
&lt;li&gt;Bootstrap&lt;/li&gt;
&lt;li&gt;jQuery&lt;/li&gt;
&lt;li&gt;DataTables&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;** Challenges Faced**&lt;/p&gt;

&lt;p&gt;One of the major challenges was handling computed SQL columns and maintaining consistency between API and MVC layers.&lt;/p&gt;

&lt;p&gt;I also optimized DataTable performance and improved user experience by implementing dynamic filtering and responsive tables.&lt;/p&gt;

&lt;p&gt;** Key Learnings**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better understanding of REST API design&lt;/li&gt;
&lt;li&gt;Entity Framework Core mappings&lt;/li&gt;
&lt;li&gt;SQL Server optimization&lt;/li&gt;
&lt;li&gt;MVC and API integration patterns&lt;/li&gt;
&lt;li&gt;Clean CRUD architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;** Final Thoughts**&lt;/p&gt;

&lt;p&gt;Working on real-world enterprise modules helps developers gain practical experience beyond tutorials.&lt;/p&gt;

&lt;p&gt;Every completed module teaches something new about scalability, maintainability, and problem-solving.&lt;/p&gt;

&lt;p&gt;Happy Coding! 🚀&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>showdev</category>
      <category>sql</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
