چرا EF انتخاب خوبی برای پروژه های Domain-Driven نیست؟
200, OK
http://hadiahmadi.ir/2015/02/ef-not-a-good-orm-in-ddd/ icon

در سال‌های اخیر شاهد فراگیرتر شدن رویکرد DDD و استفاده از آن در پروژه‌های Enterprise بوده ایم. بسیاری از شرکت‌ها از Entity Framework در پروژه‌های Domain-Driven خود نیز استفاده میکنند. در این مقاله قصد داریم تا به بررسی مشکلات EF و کمبود‌های آن برای پیاده سازی تکنیک‌های DDD بپردازیم. 

چرا EF انتخاب خوبی برای پروژه های Domain-Driven نیست؟
  • #
    ‫۹ سال و ۸ ماه قبل، یکشنبه ۱۹ بهمن ۱۳۹۳، ساعت ۱۳:۱۲

    زمانیکه متدهای 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‌ها به پست زیر مراجعه کنید :