Skip to content

Latest commit

 

History

History
154 lines (130 loc) · 6.28 KB

File metadata and controls

154 lines (130 loc) · 6.28 KB

Language Notice: View in English (الإنجليزية) |

مُولِّد حلول ثلاثية الطبقات

C# .NET SQL Server

نظرة عامة

هذه الأداة المبنية بلغة C# تُنشئ تلقائيًا حلًا كاملاً ببنية ثلاثية الطبقات بناءً على مخطط قاعدة بيانات SQL Server الخاص بك. تقوم الأداة بإنشاء أربعة مشاريع:

  1. DTO (كائنات نقل البيانات)
  2. DAL (طبقة الوصول إلى البيانات)
  3. BLL (طبقة المنطق التجاري)
  4. ConsoleApp (طبقة العرض)

يتضمن الحل المُنشأ عمليات CRUD كاملة لجميع الجداول وواجهة تعتمد على الكونسول للتفاعل مع قاعدة البيانات.

الميزات

  • 🚀 إنشاء تلقائي لمشاريع البنية ثلاثية الطبقات
  • 🔍 قراءة مخطط قاعدة بيانات SQL Server (جداول، أعمدة، مفاتيح أساسية، مفاتيح أجنبية)
  • 📦 إنشاء فئات DTO لجميع جداول قاعدة البيانات
  • 💾 توليد تنفيذ نمط المستودع في DAL
  • 🧠 إنشاء طبقة المنطق التجاري بطرق مؤقتة
  • 💻 بناء تطبيق كونسول للتفاعل مع قاعدة البيانات
  • 🔄 عمليات CRUD كاملة لجميع جداول قاعدة البيانات
  • 📂 إنشاء ملف حل ومراجع المشاريع
  • ⚙️ إنشاء تلقائي لملف App.config بسلسلة الاتصال

بدء الاستخدام

المتطلبات الأساسية

  • .NET Framework 4.8
  • مثيل SQL Server
  • Visual Studio 2019 أو أحدث (لفتح الحل المُنشأ)

التثبيت

  1. استنسخ المستودع:
    git clone https://github.com/MohmdAliMohmd/3-Tier-Architecture-Solution-Generator.git
  2. افتح الحل في Visual Studio
  3. قم ببناء الحل

طريقة الاستخدام

  1. شغل الملف القابل للتنفيذ بعد التجميع
  2. قدم تفاصيل اتصال SQL Server:
    • اسم الخادم
    • اسم قاعدة البيانات
    • طريقة المصادقة (Windows أو SQL Server)
    • بيانات الاعتماد (إذا كنت تستخدم مصادقة SQL Server)
  3. حدد مسار الإخراج للحل المُنشأ
  4. ستنشئ الأداة بنية الحل الكاملة

الإعداد اليدوي بعد التوليد

  1. افتح الحل المُنشأ في Visual Studio
  2. أضف مراجع المشروع:
    • ConsoleApp → BLL
    • BLL → DAL
    • DAL → DTO
  3. تحقق من سلسلة الاتصال في ConsoleApp/App.config

هيكل الحل

الحل المُنشأ/
├── BLL/
│   ├── [اسم الجدول]Service.cs
│   └── BLL.csproj
├── DAL/
│   ├── [اسم الجدول]Repository.cs
│   └── DAL.csproj
├── DTO/
│   ├── [اسم الجدول]DTO.cs
│   └── DTO.csproj
├── ConsoleApp/
│   ├── App.config
│   ├── Program.cs
│   └── ConsoleApp.csproj
└── DatabaseSolution.sln

المكونات المُنشأة

مشروع DTO

  • إنشاء فئات [اسم الجدول]DTO بخصائص تعكس أعمدة قاعدة البيانات
  • التعامل مع إمكانية القيم الفارغة بناءً على مخطط قاعدة البيانات
  • مثال:
    public class CustomerDTO
    {
        public int CustomerID { get; set; }
        public string Name { get; set; }
        public string Email { get; set; }
        public DateTime? RegistrationDate { get; set; }
    }

مشروع DAL

  • إنشاء فئات مستودع بعمليات CRUD كاملة:
    • GetAll[اسم الجدول]s()
    • Get[اسم الجدول]ById()
    • Add[اسم الجدول]()
    • Update[اسم الجدول]()
    • Delete[اسم الجدول]()
  • استخدام ADO.NET للوصول إلى قاعدة البيانات
  • التعامل مع استعلامات معلمة والقيم الفارغة

مشروع BLL

  • إنشاء فئات خدمة تعمل كوسيط
  • تحتوي على أماكن مؤقتة لمنطق التحقق
  • مثال:
    public void AddCustomer(CustomerDTO item)
    {
        // أضف منطق التحقق والأعمال هنا
        _repository.AddCustomer(item);
    }

تطبيق الكونسول

  • نظام قوائم ديناميكي لجميع الجداول
  • واجهة CRUD كاملة:
    • عرض جميع السجلات
    • عرض تفاصيل السجل
    • إضافة سجلات جديدة
    • تحديث السجلات الموجودة
    • حذف السجلات
  • التعامل التلقائي مع أنواع البيانات
  • عرض بيانات جدولي

القيود

  • يدعم حاليًا SQL Server فقط
  • يفترض أن المفاتيح الأساسية الرقمية هي أعمدة هوية
  • تحتاج عمليات CRUD في تطبيق الكونسول إلى التنفيذ
  • معالجة أخطاء محدودة في الكود المُنشأ
  • لا يدعم الإجراءات المخزنة
  • قد تتطلب العلاقات المعقدة تعديلات يدوية

المساهمة

المساهمات مرحب بها! يرجى عمل "فورك" للمستودع وإنشاء طلب سحب (pull request) بتحسيناتك.

الترخيص

هذا المشروع مرخص تحت رخصة MIT - راجع ملف LICENSE للتفاصيل.

ملاحظات

  • الحل المُنشأ يستهدف .NET Framework 4.8
  • قد تحتاج إلى ضبط التعامل مع القيم الفارغة لأنواع بيانات محددة
  • طبقة المنطق التجاري تحتوي على أماكن مؤقتة للتحقق المخصص
  • تطبيق الكونسول يوفر نقطة بداية لتطوير الواجهة

لأي أسئلة أو مشكلات، يرجى فتح "إيشو" على GitHub.