۵ سال و ۸ ماه قبل، چهارشنبه ۵ دی ۱۳۹۷، ساعت ۲۲:۰۸
۵ سال و ۸ ماه قبل، سهشنبه ۴ دی ۱۳۹۷، ساعت ۱۸:۵۷
- بله. برای نمونه تریگر Save بر روی حالت InProgress، در مثال جاری وجود دارد.
- آیا برنامهی وب یا چند ریسمانی هست؟ اگر بله از روشهای قفل گذاری روی قسمتی از کد، برای جلوگیری از دسترسی همزمان به آن (حتی چند کلیک پشت سر هم کاربر هم در عمل همین معنا را پیدا میکند) استفاده کنید:
// فقط یک ترد امکان دسترسی به کد را داشته باشد private static readonly SemaphoreSlim _semaphoreSlim = new SemaphoreSlim(1,1); public async Task RunAsync() { // شروع تمام تردها معلق خواهند شد تا این سمافور به پایان برسد // پس از پایان کار ترد جاری، فقط یک ترد در حال انتظار، مجوز دسترسی به قطعه کد بعدی را خواهد یافت و به همین ترتیب برای سایر تردها await _semaphoreSlim.WaitAsync(); try { await Task.Delay(20000); // Your code here } finally { _semaphoreSlim.Release(); } }
۵ سال و ۸ ماه قبل، دوشنبه ۳ دی ۱۳۹۷، ساعت ۱۴:۴۸
۵ سال و ۸ ماه قبل، دوشنبه ۳ دی ۱۳۹۷، ساعت ۱۴:۳۹
بهتر است برای Parse دقیقتر تاریخ شمسی، از متدهای الحاقی ToGregorianDateTime و IsValidPersianDateTime استفاده کنید که حالتهای بیشتری را پوشش میدهند و نیازی به این if/elseها دیگر نخواهد بود.
۵ سال و ۹ ماه قبل، پنجشنبه ۲۹ آذر ۱۳۹۷، ساعت ۲۲:۴۷
Docker Community Edition ای که در اینجا مورد استفاده قرار گرفته، مجوز سورس باز Apache 2.0 را دارد. یک نگارش Enterprise هم دارد که از یک سری اجزای تجاری تشکیل شدهاست.
۵ سال و ۹ ماه قبل، پنجشنبه ۲۹ آذر ۱۳۹۷، ساعت ۰۱:۲۱
وجود نقشها و claims در این پروژه، جهت جلوگیری از انجام یک چنین کارهایی است. یک کاربر پس از لاگین میتواند نقش ادمین را داشته باشد یا نقش یک کاربر معمولی را و یا هر نقش دیگری که صلاح است (در این حالت نیازی به چندین صفحهی لاگین وجود ندارد). در سایت (یا حتی صفحهی جاری) roles و claims را جستجو کنید، اطلاعات بیشتری را در مورد کاربردهای آنها میتوانید پیدا کنید.
۵ سال و ۹ ماه قبل، چهارشنبه ۲۸ آذر ۱۳۹۷، ساعت ۱۰:۴۹
مطلب «ارتقاء به ASP.NET Core 2.0 - معرفی بستهی Microsoft.AspNetCore.All» را مطالعه کنید. خصوصا این دو قسمت را در نظرات تکمیلی آن:
-
ارتقاء به ASP.NET Core 2.1 - معرفی بستهی Microsoft.AspNetCore. App
- یک نکتهی مهم: روش صحیح به روز رسانی وابستگیهای پروژههای NET Core.
۵ سال و ۹ ماه قبل، سهشنبه ۲۷ آذر ۱۳۹۷، ساعت ۱۱:۵۴
موردی که مدنظر شما است تزریق وابستگیها نام ندارد و الگوی service locator است. اگر بخواهید از آن در ASP.NET Core استفاده کنید، نظرات و نکات تکمیلی مطلب «ارتقاء به ASP.NET Core 1.0 - قسمت 6 - سرویسها و تزریق وابستگیها» را مطالعه کنید و خصوصا عبارات « GetService » و یا « GetRequiredService » را در آن جستجو کنید؛
مانند Request.HttpContext.RequestServices.GetService.
۵ سال و ۹ ماه قبل، دوشنبه ۲۶ آذر ۱۳۹۷، ساعت ۱۱:۵۴
اینکه کلاس مشتق شدهی از آن تنها یک متد دارد در اینجا و یا کلا در طراحی شیءگرا، اهمیتی ندارد. کاربرد اصلی طراحی بر اساس اینترفیسها یا کلاسهای abstract، در تزریق وابستگیها و همچنین unit testing است. زمانیکه بر اساس اینترفیسها کار میکنید، میتوانید پیاده سازیهای مختلفی را در اختیار استفاده کنندگان قرار دهید (الگوی استراتژی)، وابستگی مستقیم لایههای مختلف برنامه را نسبت به یکدیگر کاهش دهید (تزریق وابستگیها) و همچنین سادهتر میتوانید عملیات mocking را پیاده سازی کنید (سهولت unit testing). در طراحی کتابخانههای شما حتی اگر نیازی به الگوی استراتژی هم نباشد، وجود اینترفیسها، آیندهنگری است جهت سهولت عملیات unit testing قسمتهای مختلف آن. همچنین حتی اگر خود شما در کتابخانهای که ارائه میکنید از الگوی استراتژی استفاده نکنید، در آینده ممکن است شخصی از پیاده سازی قسمتی از کتابخانهی شما رضایت نداشته باشد و در این حالت به سهولت میتواند با تغییر تنظیمات تزریق وابستگیهای شما، پیاده سازی دیگری را به کتابخانهای که دیگر توسعه پیدا نمیکند، اعمال کند (قسمتی از آنرا به سلیقهی خودش تغییر دهد و جایگزین کند)؛ به عبارتی کتابخانهی شما «افزونه پذیر» میشود.
۵ سال و ۹ ماه قبل، شنبه ۲۴ آذر ۱۳۹۷، ساعت ۲۲:۴۸
استخراج متن PDF، به همراه ساختار متن آن نیست. فقط text است که در متن جاری توضیح داده شدهاست. اگر نیاز به بررسی ساختاری سطح پایین آنرا دارید، نیاز است با نرم افزاری به نام itextrups آشنا شوید. در دو مطلب زیر، از این نرم افزار برای تحلیل ساختار فایل PDF و سپس دستکاری آن استفاده شدهاست: