mvc-inspect

محلّل بنيوي ساكن مبني على محرّك Roslyn لاستخراج الشجرة التركيبية الكاملة لمشاريع ASP.NET Core MVC

يُحصي كل صنف وواجهة وتعداد ومفوّض وبنية مع تحليل الفجوات بين المشاريع

التثبيت العام:
dotnet tool install --global MvcStructureInspector
57 اختبار وحدة
6 محرّكات تحليل
100% شيفرة مفتوحة

تحليل بنيوي عميق باستخدام شجرة التركيب المجرّدة

استخراج الشجرة البنيوية

اجتياز شامل لشجرة التركيب المجرّدة (AST) عبر محرّك Roslyn لاستخلاص فضاءات الأسماء، الأصناف، الواجهات، التعدادات، المفوّضات، البُنى، مع إحصاء دقيق للتوابع والخصائص والحقول

محرّك تحليل الفجوات

مقارنة بنيوية بين مشروعين لرصد الملفات المفقودة، التوابع المتباينة التوقيعات، وعناصر العرض (Razor Views) غير المتطابقة مع تقرير تفصيلي مُصنّف

تحليل ملفات بيئة المشروع

فحص ومقارنة ملفات .csproj و .sln لتحديد فروقات أُطُر العمل المستهدفة، حزم NuGet، ومرجعيات المشاريع عبر الحلّ (Solution)

حارس أمان المخرجات

طبقة حماية تمنع الكتابة فوق الملفات التنفيذية والمصدرية (.exe, .dll, .cs, .wasm) مع ضمان الترقيم الزمني الفريد لكل تقرير للحفاظ على السجل التاريخي

العرض الديناميكي للتقارير

الفتح الآلي للتقارير المُنتجة عبر المعامل --open أو الأمر الفرعي open لعرضها مباشرة في المحرّر الافتراضي للنظام

الحفظ الزمني المتسلسل

نظام ترقيم زمني تلقائي بصيغة (yyyyMMdd_HHmmss) يضمن عدم فقدان أي تقرير ويتيح المقارنة التتبعية بين عمليات الفحص المتعاقبة

خط أنابيب التحليل

01

التحليل المعجمي

يستقبل المحلّل مسار المشروع ويفهرس جميع ملفات .cs و .cshtml مع استبعاد المجلدات المولّدة آلياً (bin/, obj/, Migrations/)

02

بناء الشجرة التركيبية

يُمرَّر كل ملف إلى محرّك Roslyn الذي يولّد شجرة التركيب المجرّدة (AST) ويستخرج العقد النحوية: الأصناف، الواجهات، التعدادات، المفوّضات، البُنى

03

تنسيق المخرجات

يُعاد بناء البيانات المستخرجة في شجرة نصية هرمية مع مؤشرات الفروع (├── / └──) وإحصاءات الأعضاء لكل كيان برمجي

محرّك Roslyn .NET 8 C# 12 أداة عالمية CodeQL CycloneDX SBOM

واجهة سطر الأوامر

توليد الشجرة البنيوية
mvc-inspect --path ./MyProject --out report.txt
تحليل الفجوات بين مشروعين
mvc-inspect --compare ./ProjectA --path ./ProjectB --out gap.txt
مقارنة بيئة المشروع (.csproj / .sln)
mvc-inspect --compare ./ProjectA --path ./ProjectB --with-proj
الفتح الآلي للتقرير
mvc-inspect --path ./MyProject --open
استعراض تقرير سابق
mvc-inspect open ./mvc-structure_20261205_143000.txt

معاملات واجهة سطر الأوامر

المعامل الوصف النوع
--path <dir> مسار الدليل الجذري للمشروع المراد تحليله سلسلة نصية
--out <file> مسار ملف الإخراج (اختياري — الافتراضي: ترقيم زمني تلقائي) سلسلة نصية
--compare <dir> مسار المشروع المرجعي لتحليل الفجوات (المشروع الأول في المقارنة) سلسلة نصية
--with-proj تضمين تحليل ملفات بيئة المشروع (.csproj) والحلّ (.sln) في المقارنة راية منطقية
--open فتح التقرير المُنتَج تلقائياً في المحرّر الافتراضي للنظام راية منطقية
--no-views استبعاد عناصر العرض (Razor Views) من عملية التحليل راية منطقية
--cs-only تقييد التحليل لملفات الشيفرة المصدرية C# فقط راية منطقية
--no-migrations استبعاد ملفات ترحيل قاعدة البيانات (Migrations) من نطاق الفحص راية منطقية
open <file> أمر فرعي لفتح ملف تقرير محدد مباشرة أمر فرعي

خط أنابيب التكامل المستمر والنشر المستمر (CI/CD)

CodeQL

تحليل أمني ساكن يُنفَّذ تلقائياً على كل عملية دفع (Push) وأسبوعياً لاكتشاف الثغرات الأمنية المحتملة

اختبارات الوحدة

57 حالة اختبار تغطي محرّكات التحليل وحارس الأمان ومحلّل ملفات المشروع — تُنفَّذ إلزامياً قبل كل عملية نشر

قائمة مواد البرمجيات (SBOM)

توليد تلقائي لقائمة مواد البرمجيات بمعيار CycloneDX مُرفقة مع كل إصدار لضمان الشفافية الكاملة للتبعيات

حماية الامتدادات

قائمة سوداء صارمة تمنع الكتابة إلى الامتدادات المحمية (.exe, .dll, .wasm, .cs, .csproj) لضمان نزاهة الشيفرة المصدرية

جميع تقارير الأمان والتحليل متاحة في تبويب الإصدارات بمستودع المشروع.

التطور الزمني للأداة

v2.5.0
الإصدار الحالي

إضافة حارس أمان المخرجات (SecurityGuard)، مجموعة اختبارات شاملة (57 حالة اختبار)، وبنية التكامل المستمر والنشر المستمر (CI/CD) على GitHub Actions

v2.4.0

دعم تحليل ومقارنة ملفات بيئة المشروع (.csproj) والحلّ (.sln) عبر المعامل --with-proj

v2.3.0

إضافة المعامل --open والأمر الفرعي open <file> للعرض الديناميكي للتقارير

v2.2.1

نظام الترقيم الزمني التلقائي لمنع الكتابة فوق السجلات السابقة والحفاظ على المسار التدقيقي

v2.0.0

محرّك تحليل الفجوات بين المشاريع مع تقارير GAP التفصيلية المُصنّفة

v1.0.0

الإصدار التأسيسي: محلّل الشجرة البنيوية النصية عبر محرّك Roslyn