کتابخانههای بسیاری هستند که به زبانهای C ، C++ ، Rust و امثال آن تهیه شدهاند. دات نت 6، قابلیت جدید استفادهی از این نوع کتابخانهها را بدون نیاز به تبدیل کدهای آنها به #C، به برنامههای سمت کلاینت Blazor Web Assembly اضافه کرده که در این مطلب، نمونهای از آنرا با استفاده از بانک اطلاعاتی SQLite در برنامههای Blazor WASM 6x، بررسی خواهیم کرد. یعنی یک برنامهی SPA سمت کلاینت که بدون نیاز به سرور و Web API، تنها با استفاده از EF-Core و ...
تولید برنامههای اجرایی تک فایلی در زمان NET Core 3x. ارائه شد؛ اما به همراه این مسائل نیز بود:
- فایل اجرایی تک فایلی تولید شده در اصل یک فایل zip خود باز شونده بود که در یک مکان موقتی به صورت خودکار باز و اجرا میشد. این حالت با آنتیویروسها و یا سیستمهایی که قسمتهای اصلی آنها جهت کاربران عادی قفل شدهاند، مشکلاتی را ایجاد میکرد.
- حجم فایل نهایی تولید شده قابل توجه بود. برای نمونه یک برنامهی کنسول Hello world آن ...
دات نت 6 به همراه source generatorهای توکاری است که میتوانند کار serialization و deserialization نوع JSON را با کارآیی بسیار بیشتری انجام دهند؛ با آزمایشهایی که این بهبود را در حد 40 درصد سریعتر نسبت به حالت متداول آن نمایش میدهند و ... این مساله بسیار مهم است. از این جهت که این روزها، JSON را در همهجا مشاهده میکنیم؛ در Web APIها، در تنظیمات برنامهها، در ارسال پیامها بین برنامهها و غیره. بنابراین هرگونه بهبودی در زمینهی کارآیی se ...
فرض کنید با استفاده از روش متداول زیر، کار ثبت یک واقعه را انجام دادهاید: public class TestController
{
private readonly ILogger<TestController> _logger;
public TestController(ILogger<TestController> logger)
{
_logger = logger;
}
[HttpGet("/")]
public string Get()
{
_logger.LogInformation("hello world");
return "Hello world!";
}
}
در ...
در طی سالهای قبل، نحوهی آغاز برنامههای ASP.NET Core دچار تغییرات زیادی شدهاست که حداقل سه مورد مهم آنها به صورت زیر است:
- استفاده از WebHost.CreateDefaultBuilder: این روش جهت تنظیم شروع به کار یک برنامهی ASP.NET Core 2x مورد استفاده قرار میگرفت.
- استفاده از Host.CreateDefaultBuilder: روش پیشفرض آغاز برنامههای وب NET Core 3x. و NET 5x. که با معرفی generic host، امکان تهیهی Worker services را م ...
اگر یک پروژهی جدید ASP.NET Core 6x را شروع کنیم، دو فایل قدیمی Program.cs و Startup.cs آن یکی شدهاند و اینبار فقط یک Program.cs قابل مشاهدهاست؛ با چنین محتوای ساده شدهای: var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
که مفاهیم C# 10.0 مانند « ساده سازی تعریف فضاهای نام در C# 10.0 » و « کاهش تعداد بار تعریف usingها در C# 10.0 و N ...
قبل از شروع این مقاله بهتر است ابتدا یک خاطرهی کوچک را تعریف کنم. مدتی پیش بود که برای سایت داکیومنتیشن یکی از پروژههای Open-Source سعی داشتم از vuepress که یک static site generator هست استفاده کنم. متاسفانه نسخهی بتایی که استفاده میکردم یک فیچر مورد نیازم را نداشت و مجبور شدم خودم بهآن این فیچر را اضافه کنم. سوروس را گرفتم، فیچر اضافه شد و ماجرا از اینجا شروع میشود ... commit lint : اول اجازه نداد که کامیت را انجام ...
یکی از مزایای Blazor، استفاده از دانش C# / HTML / CSS (که خیلی از ما اینها را هم اکنون بلد هستیم) برای نوشتن برنامههای وب (SPA / PWA)، برنامههای Android / iOS / Windows و وبسایتهایی با قابلیت Pre Rendering و SEO Friendly است. با یک بار کدنویسی به کمک Blazor، ولی با Configurationهای متفاوت میتوان خروجیهای مختلفی را برای پلتفرمهای مختلف گرفت؛ برای مثال Blazor Hybrid خروجی Android / iOS / Windows و Blazor Web Assembly خروجی PWA / SPA ...
با ارائه net core.، شاهده استفادهی گسترده از DateTimeOffset بجای DateTime بودیم و این استفاده به مرور در کدهای خودمان هم ورود کرد. DateTimeOffset به شما این اجازه را میدهد که دقیقا بدانید ساعت وارد شده در سیستم، دقیقا مربوطه به چه منطقه زمانی است. در پروژهای که مدتی است با نسخهی Asp.net core 3.1 در حال طراحی و به روزرسانی بخشهای مختلف آن هستیم، یکی از موارد، سیستم زمانی آن است که باید در زمانهای مناسب و مدنظر کاربر، فعالیتهای تنظی ...
عموما زمانیکه میخواهیم تمام وظایف مدنظر، به صورت موازی اجرا شوند، آنها را Task.WhenAll میکنیم . برای مثال 10 هزار درخواست HTTP را به صورت وظایفی، WhenAll میکنیم و ... در این حالت ... سرور ریموت، IP شما را خواهد بست! چون کنترلی بر روی تعداد وظیفهی در حالت اجرای موازی وجود ندارد و یک چنین عملی، شبیه به یک حملهی DDOS عمل میکند! برای مدیریت بهتر یک چنین مواردی، در دات نت 6 متدهای Parallel.ForEachAsync ارائه شدهاند تا دیگر نیازی به است ...