TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 550 subscribers
Post #608 197
چگونه یک پروژه‌ی جدید NET. را در سال 2026 شروع کنیم 🚀

شروع یک پروژه‌ی جدید NET. هیجان‌انگیز است، اما می‌تواند گیج‌کننده هم باشد. تصمیم‌های زیادی باید گرفته شوند و انتخاب‌هایی که در چند روز اول انجام می‌دهید، روی پروژه‌ی شما برای ماه‌ها یا حتی سال‌ها تأثیر خواهند گذاشت.

بیایید شروع کنیم. 🔽

1️⃣ Directory.Build.props - Set Project-Wide Standards

فایل Directory.Build.props – تنظیم استانداردهای سراسری پروژه 🧱

هر solution در NET. باید با یک فایل Directory.Build.props شروع شود.
این فایل تنظیمات سراسری پروژه را تعریف می‌کند که روی تمام پروژه‌های داخل solution اعمال می‌شود.

بدون این فایل، مجبور می‌شوید همان تنظیمات را در چندین فایل csproj. تکرار کنید.
وقتی بخواهید یک تنظیم را تغییر دهید، باید همه‌ی فایل‌های پروژه را به‌صورت دستی آپدیت کنید.
این کار باعث ناسازگاری و اتلاف زمان می‌شود. ⏳

ءDirectory.Build.props این مشکل را با متمرکز کردن تنظیمات در یک مکان حل می‌کند.
این فایل را در همان دایرکتوری فایل sln. ایجاد می‌کنید و MSBuild به‌صورت خودکار آن را روی همه‌ی پروژه‌ها اعمال می‌کند.

این کانفیگی است که من برای هر پروژه‌ی جدید استفاده می‌کنم:
<Project>
<PropertyGroup>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<AnalysisLevel>latest</AnalysisLevel>
<AnalysisMode>All</AnalysisMode>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
</Project>

در صورت نیاز، می‌توانید Directory.Build.props را در هر سطحی از ساختار دایرکتوری پروژه قرار دهید و تنظیمات را در آن سطح override کنید.

توضیح هر تنظیم:
🔸️Nullable:

قابلیت nullable reference types را فعال می‌کند و به جلوگیری از خطاهای null reference کمک می‌کند. کامپایلر زمانی که ممکن است به‌اشتباه از مقدار null استفاده کنید، هشدار می‌دهد.

🔹️ImplicitUsings:

ءnamespaceهای رایج را به‌صورت خودکار در هر فایل اضافه می‌کند. دیگر نیازی نیست بنویسید: using System; یا using System.Linq;

🔸️AnalysisLevel:

سطح آنالیز کد را روی آخرین نسخه تنظیم می‌کند. جدیدترین بررسی‌های کیفیت کد از سمت مایکروسافت فعال می‌شوند.

🔹️AnalysisMode:

تمام قوانین code analysis را فعال می‌کند و کامل‌ترین بازخورد ممکن درباره‌ی کیفیت کد را می‌دهد.

🔸️TreatWarningsAsErrors:

اگر هر هشداری وجود داشته باشد، کامپایل متوقف می‌شود. این کار شما را مجبور می‌کند مشکلات را همان لحظه حل کنید و اجازه ندهید انباشته شوند. 🚨

🔹️CodeAnalysisTreatWarningsAsErrors:

همین سخت‌گیری را روی هشدارهای code analysis هم اعمال می‌کند.

🔸️EnforceCodeStyleInBuild:

بررسی style کد را در زمان build اجرا می‌کند، نه فقط داخل IDE. یعنی در CI/CD هم تخلفات استایل شناسایی می‌شوند.

این تنظیمات یک پایه‌ی بسیار قوی برای کیفیت کد ایجاد می‌کنند.
مشکلات را زود شناسایی می‌کنند و یکپارچگی را در کل solution حفظ می‌کنند. 🧠

2️⃣ Add Static Code Analysis Packages

اضافه کردن پکیج‌های Static Code Analysis 🔍

کیفیت کد چیزی است که باید از روز اول به آن اهمیت بدهید.
پیروی از best practiceها بسیار راحت‌تر از این است که بعداً بخواهید آن‌ها را اصلاح کنید.
برای این کار از static code analysis استفاده می‌کنیم. static analyzerها کد شما را بدون اجرا بررسی می‌کنند.
آن‌ها اشتباهات رایج را پیدا می‌کنند، استانداردهای کدنویسی را enforce می‌کنند و باگ‌های احتمالی را قبل از رسیدن به production شناسایی می‌کنند.

این analyzerها هنگام کامپایل اجرا می‌شوند، پس هم در IDE و هم در CI/CD بازخورد فوری می‌گیرید. ⚡️
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →