نظرات مطالب
Blazor 5x - قسمت 34 - توزیع برنامه‌های Blazor بر روی IIS
- اسمبلی‌های دات نتی را که هربار به صورت خودکار دریافت می‌کند. یکی از کارهای اسکریپتی که در انتهای فایل index.html درج شده، دقیقا بررسی امضای دیجیتال موارد موجود در کش مرورگر و موارد بر روی سرور هست. بنابراین غیرممکن است که اسمبلی‌های جدید WASM، از کش خوانده شوند.
- تنها مواردی که ممکن است از کش خوانده شوند، فایل‌های استاتیک برنامه هستند که دو رویه‌ی تنظیم هدر کش فایل‌های استاتیک (تنظیمات کش کردن چندسکویی فایل‌های ایستا در ASP.NET Core) و استفاده از روش‌های cache busting را باید مدنظر داشته باشید (مانند قرار دادن یک کوئری استرینگ بیانگر نگارش در انتهای فایل‌های css و js شبیه به asp-file-version) و این مورد در تمام برنامه‌های وب، یکسان است.
نظرات مطالب
ذخیره‌ی سوابق کامل تغییرات یک رکورد در یک فیلد توسط Entity framework Core
سلام خواهش می‌کنم، ببینید بستگی به سناریو و پروژه‌ی ما این مورد می‌تونه متغیر باشه طوری که برای پروژه‌های سبک با بار کم سناریوی بالا می‌تونه خیلی مفید و دم دستی باشه ولی برای پروژه‌های سنگین‌تر می‌تونیم از روش جدول جداگانه استفاده کنیم که هم نیاز به  عملیات Serialize/Deserialize نخواهیم داشت هم این جدول می‌تونه اصلا توی یک دیتابیس دیگ و روی یه سرور دیگ باشه. برای برنامه‌های خیلی سنگین هم میشه از سناریوهای پیشرفته‌تر مثل ذخیره در دیتابیس‌های غیر SQL Server مثل Elasticsearch و با روش‌های ایجاد صف و غیره استفاده کرد.
نظرات مطالب
React 16x - قسمت 10 - ترکیب کامپوننت‌ها - بخش 4 - یک تمرین
- روش‌های cloning ای مانند let user = Object.assign({}, this.state.user) و let user = {...this.state.user}، فقط یک اصطلاحا shallow copy را انجام می‌دهند. یعنی اگر شیء clone شده، تو در تو بود، این اشیاء تو در تو را فقط توسط ذکر مجدد ارجاعات به آن‌ها (copied by reference) کپی می‌کند و نه با کپی کامل مقدار متناظر با آن‌ها. بنابراین در این حالت تغییر یک شیء تو در توی کپی شده، معادل است با تغییر شیء اصلی.
- یکسری کتابخانه‌ی کمکی هم در اینجا برای cloning وجود دارند مانند immutable-js و immutability-helper
- ساده‌ترین روش ایجاد clone اشیاء تو در تو، بدون استفاده از کتابخانه‌های جانبی (البته الزاما بهترین کارآیی را ندارد):
let copy1 = JSON.parse(JSON.stringify(originalObject));
نظرات مطالب
طراحی گردش کاری با استفاده از State machines - قسمت دوم
- بله. برای نمونه تریگر 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();
   }
}
- خطاها هم می‌توانند یک state جدید مانند Rejected مثال این مطلب باشند.
نظرات مطالب
اعتبارسنجی مبتنی بر JWT در ASP.NET Core 2.0 بدون استفاده از سیستم Identity
صفحات وب به همراه لینک‌ها و یا window.location و امثال آن امکان تنظیم header سفارشی درخواست‌های وب را ندارند؛ مگر اینکه یک درخواست async از نوع XMLHttpRequest به سمت سرور را سبب شوند. به همین جهت در حالت پیش‌فرض، تنظیم JWT Token به همراه آن‌ها میسر نیست. بنابراین در اینجا در صورت نیاز کار با Viewهای رندر شده‌ی در سمت سرور، از همان روش‌های Ajax که امکان تنظیم هدر را دارند، مانند نکات مطلب «بارگزاری PartialView با استفاده از jQuery در زمان اجرا» می‌توانید استفاده کنید. یا اینکه کلا برنامه‌ی وب خود را SPA تهیه کنید (مانند Angular) که مدیریت این قسمت از سرور جدا شده و به سمت کلاینت محول شود. در نظرات قبلی واژه‌ی SPA را در این صفحه جستجو کنید؛ چندین بار به آن ارجاع شده و توضیحات کافی داده شده‌است که هدف از مطلب جاری در عمل چیست.
نظرات مطالب
رویه های ذخیره شده خوب یا بد؟!
از دیگر نکات مثبت استفاده از SP ها می‌توان به انعطاف بیشتر آنها در تغییرات روش و شیوه محاسبات در حین اجرای سیستم، اشاره کرد. به این معنا که در اتوماسیون‌های بزرگ، دائما روش‌های محاسبه بسته به خواسته مشتری و یا بخشنامه جدید در ارگان‌های دولتی در حال تغییر هستند و اگر منطق این محاسبات داخل کلاس‌های برنامه پیاده سازی شود، ما مجبوریم برای هر لحظه، ورژن جدیدی از برنامه و در حالتی بد‌تر ورژنی برای هر مشتری ایجاد کنیم. ولی با استفاده از Sp‌ها (فقط در همین موارد و نه کلیه کوئری ها) خیلی راحت و سریع می‌توان نیاز‌های مشتری را پاسخ داد.
نظرات مطالب
آموزش Linq - بخش ششم : عملگرهای پرس و جو قسمت سوم
کاربرد عملگر TypeOF
در حین مطالعه دوره Implementaion Entity Framework For MVC  در جلسه Managing Relationship  موضوع ارث بری در EF بیان می‌شود.
در مثال دوره ، کلاسی با نام Artist وجود دارد و یک subclass به نام SoloArtist از آن ارث بری می‌کند.یکی از روش‌های جدا کردن رکورد هایی که از نوع Solo Artist هست از جدول Artist  ایجاد شده در بانک اطلاعاتی از طریق EF استفاده از عملگر  TypeOF  باشد.
  public List<SoloArtist> GetSolatrArtists()
  {
return DbSet.OfType<SoloArtist>().ToList();
  }

نظرات مطالب
کار با اسکنر در برنامه های تحت وب (قسمت دوم و آخر)
این خطا رو که جستجو کنید راه حل‌های متنوعی برای اون گفته شده که در پروژه بنده همین روشی که اینجا معرفی کردم کار می‌کرد و متاسفانه با روش‌های دیگه به جواب نمی‌رسیدم! (^ )
شاید اگر شما از اون روش‌ها استفاده کنید جواب بگیرید.
یک راه اینکه کد‌های زیر رو به Web.Config پروژه WEB API خودتون اضافه کنید:
<httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
      </customHeaders>
</httpProtocol>


 
نظرات مطالب
Accord.NET #3
- در مورد کرنل همانطور که در مطلب قبل هم صحبت شد، می‌توان گفت که Kernel عملا نگاشتی را بین خط تفکیک کننده نمونه‌های کلاس‌ها با ابرصفحه جداکننده برقرار می‌کند و با این شرایط می‌توان SVM را به نوعی غیر خطی در نظر گرفت. مثلا در تصویر زیر با پارامتر $ \Phi $ ، فضای اولیه داده‌های ما را به فضای ویژگی هایی نگاشت می‌شود که می‌توان با همان SVM خطی دسته بندی کرد (+ )

- اگر منظورتان از الگوریتم یادگیری روش Sequential Minimal Optimization است می‌توان گفت SMO یکی از روش‌های متداول و سریع برای آموزش SVM به حساب می‌آید که عملا یک مسئله بهینه سازی است که به دنبال بهترین ضرایب همان کرنل است (+)

- درباره پیشنهادتون در خصوص استفاده از فضای نام Accord.Imaging هم ضمن تشکر، می‌توان گفت که فعلا قصد ورود به فضای نام ی از آکورد دات نت به جز Accord.MachineLearning نداریم ولی در آینده حتما معرفی و استفاده خواهند شد.
نظرات مطالب
Url Routing در ASP.Net WebForms
- از روش‌های ابداعی برای encoding رشته‌ها در وب استفاده نکنید. کمی بالاتر توضیح دادم که باید از Uri.EscapeDataString استفاده کنید؛ از این جهت که حروفی که باید escape شوند، به یک فاصله‌ی ساده ختم نمی‌شوند. یک لیست طولانی دارد.
- اگر قصدتان تولید slug است، از متد GenerateSlug مطرح شده در مطلب «بهینه سازی برنامه‌های وب ASP.NET برای موتورهای جستجو (SEO)» ایده بگیرید. در انتهای آن یک متد Trim هم فراخوانی شده‌است (برای حذف فواصل خالی در ابتدا و انتهای رشته).