کدهای این قسمت بهروزرسانی شده و از این ریپازیتوری قابل دسترسی است. Event Sourcing
در این قسمت قصد داریم تا اطلاعات Commandهای خود را بعد از Process، داخل یک دیتابیس Append-Only ذخیره کنیم. با استفاده از این روش میتوانیم بفهمیم در یک تاریخ مشخص ، با چه ورودیهایی ( Request ...
در قسمت قبل سناریوهای مختلف مرتبط با طراحی موجودیتهای سیستم را بررسی کردیم. در این قسمت به طراحی DTOهای متناظر با موجودیتها به همراه اعتبارسنجهای مرتبط و در نهایت به پیاده سازی سرویسهای CRUD آنها خواهیم پرداخت. قراردادها، مفاهیم و نکات اولیه
برخلاف بسیاری از طراحیهای موجود، بر فراز هر موجودیت اصلی (منظور AggregateRoot) باید یک DTO که از این پس با عنوان Model از آنها یاد خواهیم کرد، تعریف شود. هیچ ...
در این قسمت قصد داریم به بررسی Behavior ها در فریمورک MediatR بپردازیم. کدهای این قسمت بهروزرسانی و از این ریپازیتوری قابل دسترسی است. با استفاده از Behaviorها امکان پیاده سازی AOP را براحتی خواهید داشت. Behaviorها، مانند Filter ها در ASP.NET MVC هستند. همانطور که با استفاده از متدهای OnActionExecuting و OnActionExecuted میتوانستیم اعمالی را قبل و بعد از اجرای یک اکشنمتد انجام دهیم، چنین قابلیتی را با Behaviorها در Me ...
در قسمت قبلی روش استفاده از IRequest و IRequestHandler را در MediatR که نقش پیاده سازی Command/Query را در CQRS بر عهده دارند، بررسی کردیم. کدهای این قسمت در این ریپازیتوری بهروزرسانی شده و قابل دسترسی است.
Command ما که نقش ایجاد یک مشتری را داشت ( CreateCustomerCommand )، هیچ Validation ای برای اعتبار سنجی مقادیر ورودی از سمت کاربر را ندارد و کاربر با هر مقادیری میتواند این Command را فراخو ...
در این مطلب قصد داریم به بررسی امکانات داخلی فریمورک MediatR بپردازیم. سورس این قسمت مقاله در این ریپازیتوری قابل دسترسی است. نصب و راه اندازی در ابتدا یک پروژه جدید ASP.NET Core از نوع API را ایجاد میکنیم و با استفاده از Nuget Package Manager ، پکیج MediatR را داخل پروژه نصب میکنیم: Install-Package MediatR
...
در مطالب قبلی ( 1 , 2 ) الگوی CQRS معرفی شد. همانطور که میبینید، پیاده سازی این الگو هرچند با فریمورک آمادهای همچون SimpleCQRS ، دارای پیچیدگی زیادی است و باعث نوشتن حجم زیادی کد میشود. فریمورک MediatR توسط توسعه دهنده کتابخانهی محبوب AutoMapper ایجاد شدهاست. این فریمورک پیاده سازی کاملی از الگوی طراحی Mediator در NET. است که داخل خود، تمام پیچیدگیهای پیاده سازی CQRS را Abstract کرده و با حداقل کد ممکن، میتوانید بهراح ...
در قسمت قبلی با معماری CQRS و Event Sourcing بصورت مختصر آشنا شدیم. برای درک بیشتر مطلب پیشین، احتیاج به پیاده سازی آن به صورت عملیاتی و نه فقط تئوری محض میباشد و در این مرحله قصد پیاده سازی این مدل را به سادهترین صورت ممکن داریم. برای مطالعهی ادامهی این مقاله، نیاز به آشنایی با مباحث مطرح شده در قسمت قبل وجود دارد. پس از توضیحات اضافه بر روی قسمتهای زیر گذشته و فرض بر آن است که آشنایی با این قسمتها وجود دارد. از این مدل میتوان در ...
به صورت عام، functionality اکثر پروژههای نرم افزاری تجاری خلاصه میشود به مخفف معروفی به نام CRUD، که objectها را میسازیم، آنها را میخوانیم و تغییر میدهیم. اپلیکیشنهای طراحی شده بدین صورت، قابلیت خوانایی بالایی خواهند داشت و دیاگرام طراحی آنها چیزی شبیه به تصویر زیر میباشد در واقع ما یک سیستمی داریم که شامل مدلی است از دیتاهای ما و از این مدل برای کوئری گرفتن از دیتابیس استفاده میشود، که البته برای بیشتر پروژههای نرم افزا ...