TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 550 subscribers
Post #609 143
این پکیج‌ها را به فایل Directory.Build.props اضافه کنید:
<Project>
<PropertyGroup>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<AnalysisLevel>latest</AnalysisLevel>
<AnalysisMode>All</AnalysisMode>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Meziantou.Analyzer" Version="2.0.257">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.16.0.128591">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Roslynator.Analyzers" Version="4.14.1">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="xunit.analyzers" Version="1.26.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>

نقش هر analyzer:
🔸️SonarAnalyzer.CSharp:

روی کیفیت کد، آسیب‌پذیری‌های امنیتی و code smell تمرکز دارد. متدهای پیچیده، کدهای تکراری و باگ‌های احتمالی را شناسایی می‌کند.

🔹️Meziantou.Analyzer:

مشکلات performance، ضعف‌های امنیتی و استفاده‌ی نادرست از APIها را پیدا می‌کند. صدها قانون برای async/await، LINQ، string handling و موارد دیگر دارد.

🔸️Roslynator.Analyzers:

پیشنهادهای refactoring و تحلیل کد ارائه می‌دهد و کمک می‌کند کد تمیزتر و idiomaticتری در #C بنویسید.

🔹️xunit.analyzers:

درست نوشتن تست‌ها را enforce می‌کند و اشتباهات رایج مثل نبود assertion یا attribute اشتباه را شناسایی می‌کند.

تنظیم IncludeAssets باعث می‌شود این analyzerها فقط در زمان کامپایل اجرا شوند و وارد خروجی نهایی برنامه نشوند. 📦

با فعال بودن TreatWarningsAsErrors، اگر هر analyzer مشکلی پیدا کند، build شکست می‌خورد.
شاید سخت‌گیرانه به نظر برسد، اما جلوی انباشته شدن technical debt را می‌گیرد.

شما همیشه باید تلاش کنید پروژه‌تان صفر هشدار داشته باشد. بسیاری از توسعه‌دهنده‌ها هشدارها را نادیده می‌گیرند، اما هشدارها معمولاً نشانه‌ی مشکلات واقعی هستند که بعداً تبدیل به باگ می‌شوند. 🐞

3️⃣ Enforce Coding Standards
اعمال استانداردهای کدنویسی 📏

ءAnalyzerها مشکلات را شناسایی می‌کنند، اما شما همچنین باید مشخص کنید کدام قوانین برای تیم شما مهم هستند و میزان سخت‌گیری آن‌ها چقدر باشد.

فایل editorconfig. استانداردهای کدنویسی را تعریف می‌کند و سطح severity هر قانون analyzer را مشخص می‌کند. شما می‌توانید قوانین را به‌صورت error، warning، suggestion علامت‌گذاری کنید یا کاملاً غیرفعالشان کنید.

این فایل را در همان دایرکتوری فایل sln. قرار دهید. همه‌ی توسعه‌دهندگان تیم شما، بدون توجه به اینکه از چه IDEای استفاده می‌کنند، به‌صورت خودکار از یک مجموعه قوانین یکسان پیروی خواهند کرد. 🤝

یک فایل پایه‌ی editorconfig. برای شروع:
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 →