/ الدليل / الملعب / .NET Skills
● مجتمع Aaronontheweb ⚡ فوري

.NET Skills

بواسطة Aaronontheweb · Aaronontheweb/dotnet-skills

.NET 8/9 محلي الأسلوب في Claude — مهارات لاختبار xUnit وأداء BenchmarkDotNet وتغليف NuGet وصحة async/await وأسلوب C#.

مهارات .NET لـ Aaron Stannard هي حزمة مختبَرة في المعارك لمطوري .NET الجادين. تتجاوز توليد الكود البسيط لتغطي الأجزاء التي يخطئ فيها النموذج باستمرار: إلغاء async والتعامل مع ConfigureAwait وIDisposable والمفاضلة بين struct وclass وأنماط BenchmarkDotNet وبيانات تعريف تغليف NuGet وأسلوب xUnit + FluentAssertions الحديث.

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

جاهز

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "dotnet-skills-aaronontheweb": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Aaronontheweb/dotnet-skills",
        "~/.claude/skills/dotnet"
      ],
      "_inferred": true
    }
  }
}

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "dotnet-skills-aaronontheweb": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Aaronontheweb/dotnet-skills",
        "~/.claude/skills/dotnet"
      ],
      "_inferred": true
    }
  }
}

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "dotnet-skills-aaronontheweb": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Aaronontheweb/dotnet-skills",
        "~/.claude/skills/dotnet"
      ],
      "_inferred": true
    }
  }
}

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "dotnet-skills-aaronontheweb": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Aaronontheweb/dotnet-skills",
        "~/.claude/skills/dotnet"
      ],
      "_inferred": true
    }
  }
}

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "dotnet-skills-aaronontheweb",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/Aaronontheweb/dotnet-skills",
        "~/.claude/skills/dotnet"
      ]
    }
  ]
}

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

~/.config/zed/settings.json
{
  "context_servers": {
    "dotnet-skills-aaronontheweb": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/Aaronontheweb/dotnet-skills",
          "~/.claude/skills/dotnet"
        ]
      }
    }
  }
}

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add dotnet-skills-aaronontheweb -- git clone https://github.com/Aaronontheweb/dotnet-skills ~/.claude/skills/dotnet

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: .NET Skills

مراجعة خدمة لصحة async/await

👤 فرق .NET للواجهة الخلفية ⏱ ~45 min advanced

متى تستخدمه: ورثت خدمة تُصاب بـ deadlock بشكل متقطع وتشك في مشكلات async.

المتطلبات الأساسية
  • المهارة مُثبَّتة — git clone https://github.com/Aaronontheweb/dotnet-skills ~/.claude/skills/dotnet
الخطوات
  1. المسح
    dotnet-skills async audit on src/. Flag: missing ConfigureAwait(false) in libraries, .Result/.Wait, async void (non-event), missing CancellationToken propagation.✓ تم النسخ
    → قائمة محددة file:line مع الخطورة
  2. إصلاح مجموعة واحدة
    Pick the highest-severity cluster (deadlock risk). Propose patches, file by file. Show diffs.✓ تم النسخ
    → تصحيحات جراحية، لا إعادة كتابة للملف بالكامل

النتيجة: نظافة async مُحسَّنة؛ مصدر deadlock متقطع واحد أُزيل.

المزالق
  • إصلاح ConfigureAwait يكسر كود UI thread — تُميِّز المهارة بين كود المكتبة والتطبيق؛ احترم ذلك الحد
اجمعها مع: filesystem

قياس أداء المسار الحار بـ BenchmarkDotNet

👤 مطورو .NET المهتمون بالأداء ⏱ ~60 min advanced

متى تستخدمه: يُشير المُحلِّل إلى دالة؛ تحتاج أرقاماً دقيقة.

الخطوات
  1. بناء هيكل benchmark
    Skill: scaffold a BenchmarkDotNet project for OrderCalc.Compute. Multiple input sizes. Memory diagnoser on. Markdown exporter.✓ تم النسخ
    → مشروع benchmark يتجمَّع؛ يعمل تحت Release
  2. التشغيل + التفسير
    Run the bench. Report mean, allocated, gen0. What's the leading allocation?✓ تم النسخ
    → إسناد محدد للمُخصِّص (على الأرجح string concat أو LINQ)
  3. التصحيح + إعادة benchmark
    Replace LINQ with a hand-rolled loop. Re-run. Show before/after.✓ تم النسخ
    → تنخفض التخصيصات بشكل ملحوظ

النتيجة: تحسُّن أداء مُقاس، لا مجرد شعور.

المزالق
  • تشغيل builds Debug — BenchmarkDotNet يرفض Debug؛ تأكد من Release

تحضير مكتبة لإصدار NuGet

👤 مؤلفو مصادر مفتوحة ⏱ ~30 min intermediate

متى تستخدمه: أول إصدار NuGet لمكتبتك؛ تريده مصقولاً.

الخطوات
  1. مراجعة التغليف
    dotnet-skills: audit MyLib.csproj for NuGet readiness. Check Description, Authors, License, RepositoryUrl, source-link, multi-targeting.✓ تم النسخ
    → قائمة محددة بالحقول المفقودة
  2. مراجعة سطح API
    Generate the public API surface; flag any leaked internal types or oddly-named publics.✓ تم النسخ
    → قائمة سطح API مع المخاوف المُشار إليها

النتيجة: حزمة نظيفة جاهزة للرفع.

المزالق
  • عدم تطابق الترخيص (ملف LICENSE مقابل <PackageLicenseExpression>) — تكتشف المهارة ذلك؛ وحِّدهما

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

dotnet-skills-aaronontheweb + filesystem

تطبيق التصحيحات عبر المشروع

Apply the async_audit patches across src/. One commit per file.✓ تم النسخ
dotnet-skills-aaronontheweb + github

رفع PR بنتائج benchmark

Open a PR with the perf patch + before/after benchmark in the description.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
async_audit path فحص صحة قاعدة الكود 0
scaffold_benchmark target_method عمل الأداء 0
interpret_bench bench_md بعد تشغيل benchmark 0
nuget_audit csproj قبل الإصدار 0
api_surface assembly_or_proj مراجعة API 0
test_conventions_check test_path مراجعة PR 0

التكلفة والحدود

تكلفة التشغيل

حصة API
لا ينطبق
الرموز لكل استدعاء
المراجعات تمسح الكود = استخدام tokens أكبر؛ 5k–30k لكل تمريرة
التكلفة المالية
مجاني
نصيحة
راجع مشروعاً واحداً في كل مرة؛ لا تُوزِّع على monorepo بالكامل دفعة واحدة

الأمان

الصلاحيات والأسرار ونطاق الأثر

الحد الأدنى من الصلاحيات: filesystem-read filesystem-write
تخزين بيانات الاعتماد: لا شيء
نقل البيانات الخارجي: لا شيء

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

المراجعة ضوضاء كثيرة

حدِّد عتبة الخطورة؛ الافتراضي يُظهر الكل

لن يعمل Benchmark

يجب أن يكون Release build؛ BenchmarkDotNet يرفض Debug

تحقق: dotnet build -c Release
سطح API يشمل أنواعاً داخلية

تأكد من ضبط InternalsVisibleTo بشكل صحيح؛ المهارة تُبلِّغ كما هو مُعدَّ

البدائل

.NET Skills مقابل البدائل

البديلمتى تستخدمهاالمقايضة
Roslyn analyzers in repoتريد تطبيق وقت CIإعداد أكثر؛ أقل تفاعلية
ReSharper / Riderتريد إصلاحات وقت IDEمدفوع؛ لا يُشغَّل بـ LLM
Aspire / .NET Cloud Native skillsتركيز cloud-nativeنطاق مختلف

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills