فرض کنید قصد دارید عملیات نرمال سازی اطلاعات را بر روی یک رشته انجام داده و برای مثال اعداد فارسی و انگلیسی موجود در یک رشته را یکدست کنید. اولین روشی که برای اینکار به ذهن میرسد، استفاده از متد Replace است: private static string toPersianNumbersUsingReplace(string data)
{
if (string.IsNullOrWhiteSpace(data)) return string.Empty;
return
data
.Replace("0", "\u06F0")
.Replace("1", "\u06F1")
...
عموما برنامههای بزرگ NET.، به چندین زیر پروژه شکسته میشوند تا مدیریت آنها سادهتر شود. مهمترین مشکلی که در این حالت پس از مدتی بروز میکند، هماهنگ نگه داشتن شماره نگارشهای ارجاعات NuGet این پروژهها است و همچنین به روز رسانی مکرر و هر بارهی تمام این فایلهای csproj. به همین جهت ایدهی مدیریت مرکزی شماره نگارشهای ارجاعات پروژههای NuGet قرار است به نگارش بعدی آن اضافه شود که البته هم اکنون نیز قسمتی از آن در NET Core SDK 3.1.300. به ...
پیشتر مطلب « نحوه صحیح تولید Url در ASP.NET MVC » را در این سایت مطالعه کردهاید و خلاصهی آن به این صورت است که اگر در جائی از برنامهی خود، مسیر Home/Details/1 را به صورت دستی وارد کردهاید، با تغییر الگوی مسیریابی برنامه برای مثال به صورت " uni/ {controller=Home}/{action=Index}/{id?}" در آینده، مسیر یاد شده دیگر معتبر و قابل دسترسی نبوده و نیاز خواهید داشت تمام مسیرهای دستی وارد شدهی اینگونه را در سراسر برنامه اصلاح کنید. به همین جهت د ...
فرض کنید اکشن متد Web API شما قرار است اطلاعات رکوردی را بازگشت دهد: using Microsoft.AspNetCore.Mvc;
namespace Core3xWebApi.Controllers
{
[ApiController]
[Route("[controller]")]
public class HomeController : ControllerBase
{
[HttpGet]
public ActionResult<string> Get()
{
return null;
}
}
}
و در این حالت خاص، خروجی کوئری مدنظر، نال است ...
اگر پروژهی ما فقط از یک Web API تشکیل شده و نیاز است در قسمتهای مختلف آن، مانند کنترلرها، سرویسها، اعتبارسنجها و غیره از منابع بومی شده استفاده شود، میتوان از یک راه حل سادهی «SharedResource» استفاده کرد؛ با این مزایا و شرایط:
- تمام تعاریف بومی سازی مورد نیاز برنامه در یک تک فایل SharedResource.fa.resx قرار میگیرند. این فایل نیز در یک اسمبلی مستقل از برنامهی اصلی اضافه میشود.
- با استفاده از تزریق سرویس IS ...
در مورد حذف منطقی در EF 6x، پیشتر مطالبی را در این سایت مطالعه کردهاید:
- « پیاده سازی حذف منطقی در Entity framework »
- « Soft Delete در Entity Framework 6 »
حذف منطقی، یکی از الگوهای بسیار پرکاربرد در برنامههای تجاری است. توسط آن بجای حذف فیزیکی اطلاعات، آنها را تنها به عنوان رکوردی حذف شده، «علامتگذاری» میکنیم. مزایای آن نیز به شرح زی ...
TOTP یک الگوریتمی است که از ساعت برای تولید رمزهای یکبارمصرف استفاده میکند. به این صورت که در هر لحظه یک کد منحصر به فرد تولید خواهد شد. اگر با برنامه Google Authenticator کار کرده باشید این مفهوم برایتان اشناست. در این مطلب میخواهیم سناریویی را پیاده سازی کنیم که برای فراخوانی APIها باید یک رمز منحصر به فرد همراه توکن ارسال کنند. برای انجام این کار هر کاربر و یا کلاینتی که بخواهد از API استفاده کند در ابتدا باید لاگین کند و بعد از ...
در مطلب قبلی ، مدل EAV را معرفی کردیم و گفتیم که این نوع پیادهسازی در واقع یک SQL Smell است؛ زیرا کوئری نویسی را سخت میکند و همچنین به دلیل عدم امکان تعریف constraints، کنترلی بر روی صحت دیتاهای وارده شد نخواهیم داشت. در نهایت با برنامهای روبرو خواهیم شد که درک صحیحی از ماهیت دیتا ندارد. اما اگر در شرایطی مجبور به استفادهی از این مدل هستید، بهتر است از فرمت JSON برای ذخیرهسازی دیتای داینامیک استفاده کنید. بیشتر دیتابیسهای رابطهایی ...
جدول اعضای این مجموعه، خود ارجاع دهنده طراحی شدهاست: namespace EFCorePgExercises.Entities
{
public class Member
{
// ...
public virtual ICollection<Member> Children { get; set; }
public virtual Member Recommender { set; get; }
public int? RecommendedBy { set; get; }
// ...
}
}
در اینجا RecommendedBy، یک کلید خارجی نال پذیر است که به Id همین ...
یکی از چالشهای دیتابیسهای رابطهایی، ذخیرهسازی دادههایی با ساختار داینامیک است. در حالت عادی، یک جدول مجموعهایی از موجودیتها است. هر موجودیت نیز شامل یکسری ویژگیهای (Attributes) مشخص میباشد. اما شرایطی را در نظر بگیرید که تعداد این ویژگیها به صورت مشخص و ثابتی نباشد؛ یعنی برای هر موجودیت، ویژگیهای متفاوتی داشته باشیم. یک روش پیادهسازی اینچنین سناریوهایی، استفاده از مدلی با نام Entity Attribute Value است. در این روش ستونهای داین ...