پیاده سازی Structured Logging در ASP.NET Core با استفاده از Serilog
زمانیکه یک رشته را با استفاده از ILogger ثبت میکنید، در پنل مربوط به نمایش لاگها گاهی اوقات نیازمند آن هستیم که یکسری فیلتر یا مرتب سازی را بر روی لاگهای ثبت شده انجام دهیم. (در این مثال از Kibana...
View Articleجستجوی غیر حساس به بزرگی و کوچکی حروف در SQLite توسط EF-Core
اگر پیشتر با SQL Server کار کرده باشید، حالت پیشفرض حساس بودن جستجوی SQLite به بزرگی و کوچکی حروف را انتظار نخواهید داشت؛ تا زمانیکه هنگام لاگین، اکانت Admin بتواند وارد سیستم شود و اکانت admin خیر....
View Articleامکان ساخت برنامههای دسکتاپ چندسکویی Blazor در دات نت 6
در این مطلب، روش ساخت یک برنامهی دسکتاپ چندسکویی Blazor 6x را که امکان به اشتراک گذاری کدهای خود را با یک برنامهی WinForms دارد، بررسی خواهیم کرد. ایجاد برنامههای ابتدایی مورد نیاز در ابتدا دو...
View Articleامکان استفاده از کتابخانههای native در Blazor WASM 6x
کتابخانههای بسیاری هستند که به زبانهای C ، C++ ، Rust و امثال آن تهیه شدهاند. دات نت 6، قابلیت جدید استفادهی از این نوع کتابخانهها را بدون نیاز به تبدیل کدهای آنها به #C، به برنامههای سمت...
View Articleبهبودهای تولید برنامههای اجرایی تک فایلی در NET 6x.
تولید برنامههای اجرایی تک فایلی در زمان NET Core 3x. ارائه شد؛ اما به همراه این مسائل نیز بود: - فایل اجرایی تک فایلی تولید شده در اصل یک فایل zip خود باز شونده بود که در یک مکان موقتی به صورت خودکار...
View Articleبهبود کارآیی استفاده از JSON در دات نت 6 با معرفی Source generators آن
دات نت 6 به همراه source generatorهای توکاری است که میتوانند کار serialization و deserialization نوع JSON را با کارآیی بسیار بیشتری انجام دهند؛ با آزمایشهایی که این بهبود را در حد 40 درصد سریعتر...
View Articleتغییرات Logging در ASP.NET Core 6x
فرض کنید با استفاده از روش متداول زیر، کار ثبت یک واقعه را انجام دادهاید:public class TestController { private readonly ILogger<TestController> _logger; public...
View Articleنگاهی به تغییرات فایل Program.cs در نگارشهای مختلف ASP.NET Core تا نگارش 6
در طی سالهای قبل، نحوهی آغاز برنامههای ASP.NET Core دچار تغییرات زیادی شدهاست که حداقل سه مورد مهم آنها به صورت زیر است: - استفاده از WebHost.CreateDefaultBuilder: این روش جهت تنظیم شروع به کار یک...
View Articleارتقاء فایلهای آغازین برنامههای ASP.NET Core 5x به 6x
اگر یک پروژهی جدید ASP.NET Core 6x را شروع کنیم، دو فایل قدیمی Program.cs و Startup.cs آن یکی شدهاند و اینبار فقط یک Program.cs قابل مشاهدهاست؛ با چنین محتوای ساده شدهای:var builder =...
View Articleچرا باید از Git Hooks استفاده کنیم؟ معرفی Husky.Net
قبل از شروع این مقاله بهتر است ابتدا یک خاطرهی کوچک را تعریف کنم. مدتی پیش بود که برای سایت داکیومنتیشن یکی از پروژههای Open-Source سعی داشتم از vuepress که یک static site generator هست استفاده کنم....
View Articleتقویم شمسی کاملا Native برای Blazor
یکی از مزایای Blazor، استفاده از دانش C# / HTML / CSS (که خیلی از ما اینها را هم اکنون بلد هستیم) برای نوشتن برنامههای وب (SPA / PWA)، برنامههای Android / iOS / Windows و وبسایتهایی با قابلیت Pre...
View Articleبهبود Time ZoneInfo در دات نت 6
با ارائه net core.، شاهده استفادهی گسترده از DateTimeOffsetبجای DateTime بودیم و این استفاده به مرور در کدهای خودمان هم ورود کرد. DateTimeOffset به شما این اجازه را میدهد که دقیقا بدانید ساعت وارد شده...
View Articleمعرفی Async Parallel.ForEach در دات نت 6
عموما زمانیکه میخواهیم تمام وظایف مدنظر، به صورت موازی اجرا شوند، آنها را Task.WhenAll میکنیم. برای مثال 10 هزار درخواست HTTP را به صورت وظایفی، WhenAll میکنیم و ... در این حالت ... سرور ریموت، IP...
View Articleبررسی ساختارهای جدید DateOnly و TimeOnly در دات نت 6
به همراه دات نت 6، دو ساختار دادهی جدید DateOnly و TimeOnly نیز معرفی شدهاند که امکان کار کردن سادهتر با قسمتهای فقط تاریخ و یا فقط زمان DateTime را میسر میکنند. این دو نوع جدید نیز همانند...
View Articleاستفاده از پلاگین DataTables کتابخانه jQuery در برنامههای ASP.NET Core
datatable js، کتابخانهای جهت ساخت جداول است و نسبت به رقیب اصلی خودش یعنی kendo telerik، از سادگی بیشتری برخوردار هست و امکانات خوبی هم دارد. اگر برای جداول صفحات خود، از کتابخانهی جیکوئری datatable...
View Articleساخت گزارش Code coverage مربوط به تستها
اگر برای پروژههای خود تست نویسی انجام میدهید، یکی از موارد مهم، Code coverage مربوط به تستها میباشد که نشان میدهد چند درصد از کدهای شما تست شده، کدام قسمت از کد، تست نشدهاست و ... . در این مطلب...
View Articleبه روز رسانی قالب فایلهای csproj پروژههای قدیمی
اگر شما هم مثل بنده در حال نگهداری از یک سیستم قدیمی میباشید، به احتمال زیاد همیشه با یک سری مسائل مثل آپدیت پکیجها، اضافه کردن یا حذف کردن فایلی از پروژه، مدیریت وابستگیها، خروجی گرفتن از یک پروژه...
View Articleساده سازی تعریف فضاهای نام در C# 10.0
در ادامهی طراحی مبتنی بر مینیمالیسم C# 10.0، پس از پیشفرض شدن «top level programs» و همچنین «کاهش تعداد بار تعاریف usingها»، تغییر سوم صورت گرفتهی در قالبهای پروژههای مبتنی بر دات نت 6، ساده سازی...
View Articleکاهش تعداد بار تعریف using ها در C# 10.0 و NET 6.0.
در مطلب «روش بازگشت به قالبهای کلاسیک پروژهها در دات نت 6» مشاهده کردیم که قالب پیشفرض یک برنامهی کنسول دات نت 6، چنین فایل Program.cs ای را تولید میکند:// See https://aka.ms/new-console-template...
View Articleروش بازگشت به قالبهای کلاسیک پروژهها در دات نت 6
نگارش نهایی دات نت 6، حدود یک ماه دیگر منتشر میشود و اگر برای نمونه RC2 آنرا نصب کرده باشید، با ایجاد یک پروژهی کنسول جدید مبتنی بر آن ... شگفت زده خواهید شد! شاید انتظار داشته باشید که با چنین...
View Article