در حین کار با بانکهای اطلاعاتی، ممکن است Timeout رخ دهد، یا اتصال برای لحظهای قطع شود و یا خطای قفل بودن جدولی مشاهده شود و امثال اینها. در این حالات، اعمال نتیجهی عملیات Migration با شکست مواجه خواهد شد. بنابراین اضافه کردن امکان سعی مجدد عملیات شکست خورده به آن، ضروری است. پشتیبانی توکار EF Core از سعی مجدد یک عملیات شکست خورده
EF Core بدون نیاز به کتابخانه و یا راه حل ثالثی میتواند یک عملیات شکست خورده را مجددا ا ...
فرض کنید قصد دارید خاصیت Id مدل مورد استفادهی در یک View را رمزنگاری کنید تا در سمت کلاینت به سادگی قابل تغییر نباشد. همچنین این Id زمانیکه به سمت سرور ارسال شد، به صورت خودکار رمزگشایی شود و بدون نیاز به تغییرات خاصی در کدهای متداول اکشن متدها، اطلاعات نهایی آن قابل استفاده باشند. برای این منظور در ASP.NET Core میتوان یک Action Result رمزنگاری کننده و یک Model binder رمزگشایی کننده را طراحی کرد. نیاز به علامتگذاری خواصی که باید رم ...
عموما بستههای نیوگت تولید شده، قابلیت دیباگ ضعیفی را دارند. برای بالابردن بهبود تجربهی کاربری آنها میتوان توزیع فایلهای PDB و فعالسازی قابلیت Source Link را به آنها اضافه کرد.
فعالسازی توزیع فایلهای PDB به همراه بستههای NuGet
وجود فایلهای PDB، برای اجرای برنامهها ضرورتی ندارند؛ اما اگر ارائه شوند، به کمک آنها میتوان گزارشهای استثناءهای بسیار کاملتری را به همراه نام فایل و شماره سطرهای مرتبط موجود در ...
تغییر پویای رشتهی اتصالی به بانک اطلاعاتی در نگارشهای پیشین EF، مشکل بودند که نمونههایی از آن را پیشتر در مطالب زیر مشاهده کردهاید:
- « تنظیم رشته اتصالی Entity Framework به بانک اطلاعاتی به وسیله کد »
- « استفاده از چندین بانک اطلاعاتی به صورت همزمان در EF Code First »
اما EF Core نه تنها این مشکل را پوشش را دادهاست، بلکه امکان تزریق وابستگیها و استفادهی از سرویسهای مختلف را نیز در این حین، پیش بینی کر ...
ممکن است در حین توسعهی یک برنامه، یکبار سرویسهای مدنظر را توسط قابلیت اسکن کتابخانههایی مانند Scrutor به برنامه اضافه کنید و یکبار هم به اشتباه تعدادی از آنها را دستی ثبت کنید و یا ممکن است کتابخانههای ثالثی را که مورد استفاده قرار دادهاید، دست آخر سبب ثبت بیش از اندازهی سرویسهای مشخصی شدهاند. در ادامه روش گزارشگیری از این سرویسهای تکراری ثبت شده را بررسی میکنیم. یافتن سرویسهایی که به اشتباه بیش از یکبار ثبت شدهاند ...
فرض کنید قصد دارید عملیات نرمال سازی اطلاعات را بر روی یک رشته انجام داده و برای مثال اعداد فارسی و انگلیسی موجود در یک رشته را یکدست کنید. اولین روشی که برای اینکار به ذهن میرسد، استفاده از متد 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 ...