شاید شما هم در پروژه خودتان نیاز داشته باشید تا اتصالات MediatR را بررسی یا به نوعی از صحت کدهایی که بر پایه MediatR زدید مطمئن شوید. در اینجا به بررسی نحوه Assert کردن اتصالات MediatR میپردازم. اول از همه باید به این فکر کرد که چه چیزی را میخواهیم تست کنیم؟ طبیعتا وقتی یک Command را ایجاد میکنیم، انتظار داریم که یک CommandHandler مختص به آن نیز ایجاد شده باشد. پس ما به بررسی ساختار کد میپردازیم. برای شروع، یک Interface را با متد IsVal ...
معمولا معماریهای ارائه شد،ه بر اساس جداسازی لایههای نرمافزار میباشد. برای مثال در معماری Hexagonal که آنرا به Port & Adaptor هم میشناسیم، نرمافزار، با استفاده از لایههای Domain، Application، Infra و ... تفکیک میشوند. منطق تجاری در Domain پیاده سازی میشود و رابطهای مربوط به کار با دیتا تعریف میشوند. در لایهی Application، Portها و Adaptorهای مورد نیاز برای استفاده، پیادهسازی میشوند. در لایهی Infra، رابطهای تعریف شده در ...
در ادامهی بررسی نکات مرتبط با Minimal API's در دات نت 6، در این قسمت به افزودن متادیتای قابل درک توسط Open API و Swagger خواهیم پرداخت. معادل این نکات را در MVC، در سری « مستند سازی ASP.NET Core 2x API توسط OpenAPI Swagger » پیشتر مشاهده کردهاید.
معادل IActionResult در Minimal API's
در Minimal API's دیگر خبری از IActionResultها نیست؛ اما بجای آن IResult را داریم. برای مثال فرض کنید میخواهیم بدنهی l ...
تا قسمت قبل موفق شدیم فایل Program.cs برنامهی Minimal API's را خلوت کنیم و همچنین زیرساختی را برای توسعهی مبتنی بر ویژگیها، ارائه دهیم. اما ... هنوز endpoints ما چنین شکلی را دارند: endpoints.MapGet("/api/authors", async (MinimalBlogDbContext ctx) =>
{
var authors = await ctx.Authors.ToListAsync();
return authors;
});
endpoints.MapPost("/api/authors", async ( ...
در معماری vertical slices با features سر و کار داریم؛ برای مثال برنامهی ما دو ویژگی نویسندهها و بلاگها را خواهد داشت و هر ویژگی، کاملا متکی به خود است. برای نمونه هر ویژگی میتواند به همراه یک ماژول باشد که به صورت مستقل، تمام سرویسها، endpoints و میانافزارهای مورد نیاز خودش را ثبت میکند. در این معماری، تمام قسمتهای مورد نیاز جهت کارکرد یک ویژگی، در کنار هم قرار میگیرند تا یافتن آنها و درک ارتباطات بین آنها سادهتر شود.
...
در دو قسمت قبل، ساختار ابتدایی برنامهی Minimal API's بلاگ دهی را ایجاد کردیم. در این قسمت میخواهیم بررسی کنیم، معادلهای کنترلرهای MVC و اکشن متدهای آنها در سیستم جدید Minimal API، به چه صورتی ایجاد میشوند. ایجاد اولین endpoint از نوع Get مبتنی بر Minimal API
برای افزودن اولین endpoint برنامه، به فایل Program.cs برنامه مراجعه کرده و آنرا به صورت زیر تکمیل میکنیم: // ...
app.UseHttpsRedirection();
app. ...
در قسمت قبل ، ساختار ابتدایی یک پروژهی Minimal API's مبتنی بر معماری Vertical slices را تشکیل دادیم. در ادامه موجودیتها و DbContext آنرا تشکیل میدهیم.
ایجاد مدلها و موجودیتهای برنامهی Minimal Blog
در مثال این سری، هر نویسنده میتواند بلاگ خاص خودش را داشته باشد و در هر بلاگ، تعدادی مقاله منتشر کند. هر مقاله هم میتواند تعدادی تگ یا گروه مرتبط را داشته باشد.
ساختار ابتدایی موجودیت نویسندگان مطالب ب ...
یکی از مهمترین تغییرات دات نت 6، ارائهی Minimal API's به همراه آن است که نسبت به MVC و سایر مشتقات ASP.NET Core، کمتر به همراه پیشفرضهای نظری خاص و بسیار مقید و متعصبانه (opinionated) است؛ که این مورد خود مزیتی است جهت انجام امور متداول، به نحوی دیگر و دلخواه و با آزادی عمل بیشتری در طراحی endpoints مورد نیاز و کل برنامه. خصوصا این سبک جدید، با معماری برشهای عمودی ( vertical slices ) ارائه شدهی توسط نویسندهی AutoMapper، هماهنگی خاصی ...
در سری مقالات پیاده سازی CQRS توسط کتابخانه MediatR، مطالبی جهت آشنایی و نحوه استفاده از این کتابخانه بیان شدهاست که در بخش چهارم ، به رفتارها ( Behavior )ها جهت اعمالی از جمله اعتبارسنجی، ثبت وقایع و ... پرداخته شدهاست. در این مقاله قصد داریم با استفاده از رفتارها، اقدام به پیاده سازی کش، برای خروجی حاصل از کوئریها نماییم. با استفاده از رفتارها، تمامی کدهای لازم برای خواندن و ثبت دادهها از کش، در Behavior مربوطه پیاده سازی ...
معماری میکروسرویس (یا به اختصار: میکروسرویس) یک سبک معماری نرم افزار میباشد که در آن یک نرم افزار، به مجموعهای از سرویسها خرد میشود؛ به نحوی که هر سرویس مسئولیت انجام بخشی از منطق کسب و کار را به عهده داشته باشد.
این تقسیم بندی مزایای متعددی را به همراه دارد که نهایتا پیاده سازی و توسعه راحتتر نرم افزارهای بزرگ و پیچیده را ممکن مینماید. از جمله مزایای این معماری میتوا ...