Entity Framework - بنية المشاريع عند استخدام EF Core (فصل الطبقات - Layered Architecture)

Entity Framework - بنية المشاريع عند استخدام EF Core (فصل الطبقات - Layered Architecture)

عند بناء تطبيق باستخدام Entity Framework Core، من الأفضل أن تتبع أسلوب فصل الطبقات (Layered Architecture) لتقسيم المشروع إلى أجزاء منظمة وقابلة للصيانة.


🔹 ما معنى فصل الطبقات؟

فصل الطبقات يعني تقسيم المشروع إلى أجزاء (Projects أو Folders) بناءً على الوظيفة، بحيث كل طبقة تكون مسؤولة عن جزء معين من التطبيق، مما يجعل الكود أنظف وأسهل في التوسعة والصيانة.


🔸 الطبقات الأساسية في مشروع EF Core

اسم الطبقة الوصف ملاحظات
Entities / Models تحتوي على الكلاسات التي تمثل جداول قاعدة البيانات. تُستخدم من قبل جميع الطبقات الأخرى.
Data Access Layer (DAL) تحتوي على DbContext وجميع عمليات الوصول إلى البيانات. قد تتضمن Repositories.
Business Logic Layer (BLL) تحتوي على منطق المعالجة والقيود الخاصة بالتطبيق. قد تستدعي DAL داخليًا.
Presentation Layer (UI/API) واجهة المستخدم (Blazor, MVC, API, إلخ). تستهلك الخدمات من BLL.

🔧 مثال عملي على المجلدات أو المشاريع


MyProject/
├── MyProject.Entities
│   └── Student.cs
├── MyProject.DAL
│   └── AppDbContext.cs
│   └── IStudentRepository.cs
│   └── StudentRepository.cs
├── MyProject.BLL
│   └── StudentService.cs
├── MyProject.API (أو UI)
    └── StudentController.cs

✅ يمكنك استخدام Dependency Injection لربط الطبقات ببعضها بسهولة في .NET Core.


📌 لماذا نستخدم هذه البنية؟

  • فصل المسؤوليات (Separation of Concerns).
  • سهولة الاختبار (Unit Testing).
  • قابلية التوسعة والصيانة.
  • إعادة استخدام الكود في أكثر من مشروع (مثلاً: Web + API).


تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework