تا قسمت قبل موفق شدیم فایل 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، هماهنگی خاصی ...
مشکل: ممکن است بخواهید در برنامههای Blazor از یک قطعه کد آماده استفاده نمایید که در آن از دستورات Javascript استفاده شده باشد و تعدادی رویداد برای المانهای صفحه تعریف کرده باشند؛ به عنوان مثال من از قالب آماده Nice Admin استفاده میکنم که در آن برای تمام قالب، از یک فایل به نام main.js استفاده شدهاست و در آن برای مخفی و ظاهر نمودن منو، از یک دکمه toggle استفاده کردهاست. برای این عملیات، یک رویداد کلیک در این فایل تعریف شده: ...
در سری مقالات پیاده سازی CQRS توسط کتابخانه MediatR، مطالبی جهت آشنایی و نحوه استفاده از این کتابخانه بیان شدهاست که در بخش چهارم ، به رفتارها ( Behavior )ها جهت اعمالی از جمله اعتبارسنجی، ثبت وقایع و ... پرداخته شدهاست. در این مقاله قصد داریم با استفاده از رفتارها، اقدام به پیاده سازی کش، برای خروجی حاصل از کوئریها نماییم. با استفاده از رفتارها، تمامی کدهای لازم برای خواندن و ثبت دادهها از کش، در Behavior مربوطه پیاده سازی ...
زمانیکه یک رشته را با استفاده از ILogger ثبت میکنید، در پنل مربوط به نمایش لاگها گاهی اوقات نیازمند آن هستیم که یکسری فیلتر یا مرتب سازی را بر روی لاگهای ثبت شده انجام دهیم. (در این مثال از Kibana برای نمایش لاگها استفاده شده است) برای مثال کد زیر را در نظر بگیرید که یک رشته را ثبت میکند: public IActionResult Get()
{
var userData = new User
{
Name = "Farhad",
Family = "Zamani"
};
_lo ...
اگر پیشتر با SQL Server کار کرده باشید، حالت پیشفرض حساس بودن جستجوی SQLite به بزرگی و کوچکی حروف را انتظار نخواهید داشت؛ تا زمانیکه هنگام لاگین، اکانت A dmin بتواند وارد سیستم شود و اکانت a dmin خیر. در این مطلب نحوهی انجام تنظیمات مرتبط با جستجوی غیرحساس به بزرگی و کوچکی حروف را در SQLite و EF-Core، بررسی خواهیم کرد.
Collations و حساسیت به بزرگی و کوچکی حروف
پردازش متون در بانکهای اطلاعاتی پیچیده ...
در این مطلب، روش ساخت یک برنامهی دسکتاپ چندسکویی Blazor 6x را که امکان به اشتراک گذاری کدهای خود را با یک برنامهی WinForms دارد، بررسی خواهیم کرد.
ایجاد برنامههای ابتدایی مورد نیاز
در ابتدا دو پوشهی جدید BlazorServerApp و WinFormsApp را ایجاد میکنیم. سپس از طریق خط فرمان در اولی دستور dotnet new blazorserver و در دومی دستور dotnet new winforms را اجرا میکنیم تا دو برنامهی خالی Blazor Server و همچنین Wi ...