در سالهای اخیر شاهد فراگیرتر شدن رویکرد DDD و استفاده از آن در پروژههای Enterprise بوده ایم. بسیاری از شرکتها از Entity Framework در پروژههای Domain-Driven خود نیز استفاده میکنند. در این مقاله قصد داریم تا به بررسی مشکلات EF و کمبودهای آن برای پیاده سازی تکنیکهای DDD بپردازیم.
مطالب مشابه
- اشتراکها
آشنایی با 3 مفهوم پایه ی Domain-Driven Designاشتراکها
پیاده سازی Domain-Driven Design با EFاشتراکها
انتشار کتاب Entity Framework 6 Recipesاشتراکها
سری پیاده سازی DDD در برنامههای ASP.NET Coreاشتراکها
مجموعه Awesome Domain-Driven Designاشتراکها
پیاده سازی DDD با EFاشتراکها
طراحی مبتنی بر دامنه Domain Driven Designاشتراکها
روش پیاده سازی DDDاشتراکها
نمونه معماری پیاده سازی شده با ASP.NET Core و Angular و DDDنظرات مطالب
Repository ها روی UnitOfWork ایده خوبی نیستند
#
۹ سال و ۸ ماه قبل، یکشنبه ۱۹ بهمن ۱۳۹۳، ساعت ۱۳:۱۲زمانیکه متدهای Add و Remove به داخل entityها منتقل میشن، الگویی حاصل میشه به نام Active record. این الگو در اصل یک ضد الگو هست به این دلایل:
- متدهای CRUD به اینترفیس عمومی موجودیتها منتقل شدن.
- تست پذیری این نوع اشیاء پایین هست.
- SRP را نقض میکنند.
#
۹ سال و ۸ ماه قبل، یکشنبه ۱۹ بهمن ۱۳۹۳، ساعت ۱۳:۳۸سلامخیر دوست عزیز، روش استفاده شده ActiveRecord نیست. در این مثال چون Order و OrderItem در یک Aggregate قراردارند و Order به عنوان AggregateRoot مشخص شده است و مسئولیت چک کردن Invariantها را برعهده دارد، لذا از ایجاد و حذف مستقیم OrderItem جلوگیری شده و به جای آن از متدهای Add و Remove بر روی Entity استفاده شده است. اینجا بحث Object مطرح هست و نه دیتابیس. برخلاف ActiveRecord که بر روی متد Add، شی را در دیتابیس Insert میکند، اینجا OrderItem تنها به شیء Order اضافه شده است.برای اطلاعات بیشتر در مورد Aggregateها و Invariantها به پست زیر مراجعه کنید :