در قسمتهای قبل سعی شد یک دید کلی از نحوه استفاده از این زیرساخت ارائه شود؛ در این قسمت علاوه بر بررسی مکانیزم Eventing، با جزئیات بیشتری به استفاده از سرویسهای پیادهسازی شده پرداخته خواهد شد. مکانیزم Eventing استفاده از رخدادها، یکی از راهحلهای رسیدن به طراحی با Loose Coupling (اتصال سست و ضعیف، وابستگی ضعیف) میباشد؛ همچنین برای حذف چرخه در فرآیند وابستگی مولفههای سیستم نیز مورد استفاده قرار میگیرد. در این ...
پس از معرفی DNTFrameworkCore ، طراحی موجودیتهای سیستم و پیادهسازی DTOها، اعتبارسنجها و سرویسهای متناظر آنها، در این مطلب روش پیاده سازی CRUD API یکسری موجودیت فرضی را با استفاده از امکانات این زیرساخت بررسی خواهیم کرد. برای شروع لازم است بسته نیوگت زیر را نصب کنید: PM> Install-Package DNTFrameworkCore.Web همچنین برای اعمال خودکار مهاجرتهای بانک اطلاعاتی، بسته نیوگت زیر را نصب کنید: PM> Install- ...
در قسمت قبل سناریوهای مختلف مرتبط با طراحی موجودیتهای سیستم را بررسی کردیم. در این قسمت به طراحی DTOهای متناظر با موجودیتها به همراه اعتبارسنجهای مرتبط و در نهایت به پیاده سازی سرویسهای CRUD آنها خواهیم پرداخت. قراردادها، مفاهیم و نکات اولیه
برخلاف بسیاری از طراحیهای موجود، بر فراز هر موجودیت اصلی (منظور AggregateRoot) باید یک DTO که از این پس با عنوان Model از آنها یاد خواهیم کرد، تعریف شود. هیچ ...
در قسمت قبل ، امکانات این زیرساخت را ملاحظه کردیم. در این مطلب و مطالب آینده، روش طراحی بخشهای مختلف یکسری سیستم فرضی را با استفاده از امکانات مذکور و با جزئیات بیشتر، بررسی خواهیم کرد. به منظور اعمال خودکار یکسری مفاهیم توسط زیرساخت، نیاز است موجودیتهای شما قراردادهای مورد نظر را پیاده سازی کرده باشند یا اینکه از موجودیتهای پایه که آن قراردادها را پیاده سازی کردهاند، به عنوان میانبر، از آنها ارث بری کنید. برای دسترسی به این موجود ...
پروژه DNTFrameworkCore که قصد پشتیبانی از آن را دارم، یک زیرساخت سبک وزن و توسعه پذیر با پشتیبانی از طراحی چند مستاجری، با تمرکز بر کاهش زمان و افزایش کیفیت توسعه سیستمهای تحت وب مبتنی بر ASP.NET Core، توسعه داده شده است. اهدافی که این زیرساخت دنبال میکند ارائه ساختارهای مشترک بین پروژههای مختلف از جمله Cross-Cutting Concernها و ... دنبال کردن اصل DRY به منظور متمرکز شدن صرف برروی منطق تجاری سی ...
شرایطی را در نظر بگیرید که نیاز است از تغییرات یک Entity در سیستم آگاه شویم. برای مثلا در زمان ثبت سفارش جدید در فروشگاه، ایمیلی به مدیر فروشگاه ارسال شود، یک Business Rule نیز چک شود و همچنین بنابر نیاز مشتری، تعداد آنها روز به روز ممکن است افزایش یابد و چه بسا در اعمال این Ruleها، موجودیتهای مختلفی درگیر باشند. در این صورت است که خواسته یا ناخواسته اتصال بین کلاسها خیلی افزایش خواهد یافت. یکی از راه حلهای رهایی از این پیچیدگی و اتصال ...