به همراه دات نت 6، دو ساختار دادهی جدید DateOnly و TimeOnly نیز معرفی شدهاند که امکان کار کردن سادهتر با قسمتهای فقط تاریخ و یا فقط زمان DateTime را میسر میکنند. این دو نوع جدید نیز همانند DateTime، از نوع struct هستند و بنابراین value type محسوب میشوند. در فضای نام System قرار گرفتهاند و همچنین با نوعهای date و time مربوط به SQL Server، سازگاری کاملی دارند. روش استفاده از نوع DateOnly در دات نت 6
نوعهای جدید مع ...
datatable js، کتابخانهای جهت ساخت جداول است و نسبت به رقیب اصلی خودش یعنی kendo telerik، از سادگی بیشتری برخوردار هست و امکانات خوبی هم دارد.
اگر برای جداول صفحات خود، از کتابخانهی جیکوئری datatable استفاده میکنید، بعد از مدتی که تعداد رکوردها زیاد میشوند، شاهد کند شدن صفحه خود خواهید شد. برای رفع این مشکل نیاز به پیاده سازی pagination دارید که ...
اگر برای پروژههای خود تست نویسی انجام میدهید، یکی از موارد مهم، Code coverage مربوط به تستها میباشد که نشان میدهد چند درصد از کدهای شما تست شده، کدام قسمت از کد، تست نشدهاست و ... .
در این مطلب نحوهی استفاده از ReportGenerator را برای ایجاد گزارش مربوط به Code coverage، ارائه میدهیم. ReportGenerator دیتاهای تولید شدهی توسط coverlet, Op ...
اگر شما هم مثل بنده در حال نگهداری از یک سیستم قدیمی میباشید، به احتمال زیاد همیشه با یک سری مسائل مثل آپدیت پکیجها، اضافه کردن یا حذف کردن فایلی از پروژه، مدیریت وابستگیها، خروجی گرفتن از یک پروژه کنسول و ... درگیر هستید؛ مسائلی که سالهاست با روی کار آمدن «دات نت کور» و پس از آن «دات نت ۵» حل شدهاست. این حجم از مشکلات به حدی بود که گاهاً کدنویسی را با مشکل مواجه میکرد و امروز تصمیم گرفتم این مشکل را برای پروژه شرکت حل کنم. ابتدا با ...
در ادامهی طراحی مبتنی بر مینیمالیسم C# 10.0، پس از پیشفرض شدن « top level programs » و همچنین « کاهش تعداد بار تعاریف usingها »، تغییر سوم صورت گرفتهی در قالبهای پروژههای مبتنی بر دات نت 6، ساده سازی تعاریف فضاهای نام است. برای مثال یک کنترلر، به این صورت تعریف شدهاست: namespace mvc.Controllers;
public class HomeController : Controller
{
}
که به آن «File-Scoped Namespaces» هم گفته میشود.
بررسی مفهوم «F ...
در مطلب « روش بازگشت به قالبهای کلاسیک پروژهها در دات نت 6 » مشاهده کردیم که قالب پیشفرض یک برنامهی کنسول دات نت 6، چنین فایل Program.cs ای را تولید میکند: // See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
که در حقیقت همان اجبار به استفادهی از سبک « Top Level Programs » ارائه شدهی در C# 9.0 است. اما اگر به همین دو سطر هم دقت کنید، یک تفاوت مهم را با نمونهی C# 9.0 ...
نگارش نهایی دات نت 6، حدود یک ماه دیگر منتشر میشود و اگر برای نمونه RC2 آنرا نصب کرده باشید، با ایجاد یک پروژهی کنسول جدید مبتنی بر آن ... شگفت زده خواهید شد! شاید انتظار داشته باشید که با چنین فایلی مواجه شوید: using System;
namespace MyVerboseApp
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
...
متد جدید ()Chunk در دات نت 6، به مجموعهی LINQ اضافه شدهاست. این متد امکانی را فراهم میکند که بتوان مجموعهای را به گروههای کوچکتر، تقسیم کنیم . وضعیت فعلی پیاده سازی این قابلیت در نسخههای قبلی دات نت، چنین قابلیتی برای تقسیم یک مجموعه، به مجموعههای کوچکتر بصورت توکار وجود ندارد. مجموعهی زیر را در نظر بگیرید: int[] numbers = new int[] {6, 5, 1, 9, 18, 5, 3, 21}; این عملیات تقس ...
این الگو اجازهی تعریف کردن عملیاتی جدید را برای مجموعهای از شیءها، بدون تغیر دادن ساختار خود شیءها، میدهد. همچنین اجازهی جدا کردن کلاس را از منطقی که کلاس پیاده سازی میکند، به ما میدهد. عملیات بیشتری میتوانند در شیء Visitor کپسوله سازی شوند. شیءها میتوانند یک متد visit داشته باشند که یک شیء Visitor را دریافت میکند. Visitor میتواند تغییرات مورد نیاز را ایجاد کند و عملیاتی را بر روی شیءهایی که دریافت کردهاست، انجام دهد. ...
الگوی command، اجازهی کپسوله سازی درخواستها و عملیات را در شیءهای جداگانهای میدهد. این الگو، شیءهایی که درخواستها را ارسال میکنند، از شیءهایی که مسئول اجرا کردن درخواستها هستند، جدا میکند. یک مثال را در نظر بگیرید؛ جائیکه یک کلاینت قرار است، دسترسی به متدهای یک API را به صورت مستقیم داشته باشد. چه اتفاقی خواهد افتاد اگر پیاده سازی آن APIها تغییر کند؟ هر جائیکه API، در حال استفاده شدن است، باید تغییرات صورت گیرد. برای اجتناب ...