نظرات مطالب
ارسال فایل و تصویر به همراه داده‌های دیگر از طریق jQuery Ajax
برای ارسال آرایه توسط FormData، نباید آرایه را مستقیما Append کرد؛ بدین شکل:
var formData = new FormData();
var splitedKeywords = $('#keywords').val().split(',');
formData.append('Keywords', JSON.stringify(splitedKeywords));
در این صورت خروجی در سمت سرور به این شکل خواهد بود؛ آرایه ایی تک عضوی با این مقدار:
"\"کلمه اول\",\"کلمه دوم\""

برای ارسال یک آرایه (لیست) باید به صورت زیر عمل شود :
var formData = new FormData();
var splitedKeywords = $('#keywords').val().split(',');
for (var counter = 0; counter < splitedKeywords.length; counter++) {
    formData.append('Keywords', JSON.stringify(splitedKeywords[counter]));
}
تمام آرایه تک به تک اضافه شود.
نظرات مطالب
سفارشی سازی ASP.NET Core Identity - قسمت سوم - نرمال سازها و اعتبارسنج‌ها
یک نکته‌ی تکمیلی: چگونه پس از نصب SDK 3x جدید، بتوانیم همان پروژه‌ی قبلی را بدون به روز رسانی یا هیچگونه تغییری در آن، باز هم استفاده کنیم؟

با توجه به اینکه امضای یکسری از اینترفیس‌های نگارش 3x با 2x یکی نیست (مانند ILookupNormalizer)، پس از نصب SDK 3x، دیگر قادر به اجرای برنامه‌های 2x خود نخواهید شد؛ چون پروژه‌های NET Core. همواره از آخرین نگارش SDK نصب شده استفاده می‌کنند. برای قفل کردن شماره SDK یک Solution به نگارش 2x به صورت زیر عمل کنید:
dotnet --list-sdks
dotnet new globaljson --sdk-version 2.2.106
دستور اول لیست SDKهای نصب شده را نمایش می‌دهد و دستور دوم یک فایل global.json جدید را بر اساس شماره‌ای که از طریق اجرای دستور اول یافته‌اید، تولید می‌کند. این فایل باید در ریشه‌ی Solution قرار گیرد.
نظرات مطالب
توسعه برنامه های Cross Platform با Xamarin Forms & Bit Framework - قسمت چهارم
دو برنامه Mono Shared Runtime و Xamarin Android Support هستن. این دو، آیکون ای در Home Screen گوشی/امولاتور شما اضافه نمی‌کنند، بلکه فقط در قسمت Settings سیستم عامل، در جایی که تمامی App‌ها لیست شده اند، دیده می‌شوند. مطمئنا هر دو رو دارید که الآن تونستید دیباگ کنید. این که تغییر آنی Xaml روی امولاتور کار می‌کنه، ولی روی گوشی نه، احتمالا به خاطر این هست که گوشی و کامپیوتر تو یه شبکه نیستن، یا Firewall ای چیزی در بین هست. اعمال آنی تغییرات CSharp هم مختص UWP هست و در Android/iOS کار نمی‌کنه.
نظرات مطالب
ارتقاء به ASP.NET Core 1.0 - قسمت 6 - سرویس‌ها و تزریق وابستگی‌ها
- تنظیمات شما اسمبلی حاوی IMessagesService را اسکن می‌کند و تمام کلاس‌هایی را که از کلاس MessagesService مشتق شده باشند، به لیست سرویس‌های ثبت شده‌ی سیستم تزریق وابستگی‌ها اضافه خواهد کرد. یعنی هیچ کلاسی را.
- شما در عمل به دنبال اسکن کل اسمبلی و ثبت و اتصال IClassName‌ها به ClassName‌ها با طول عمر Transient هستید (چیزی شبیه به عملیات اسکن پیش‌فرض StructureMap) که در اینجا چنین شکلی را پیدا می‌کند:
public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.Scan(scan => scan.FromAssemblyOf<IMessagesService>()
                                  .AddClasses()
                                  .AsMatchingInterface() // Registers all <`IClassName`, `ClassName`>
                                  .WithTransientLifetime()
               );
نظرات مطالب
غیرمعتبر شدن کوکی‌های برنامه‌های ASP.NET Core هاست شده‌ی در IIS پس از ری‌استارت آن
- services.AddDataProtection یعنی همان مقدمه‌ی بحث؛ یا ذخیره سازی کلیدها در حافظه به صورت پیش‌فرض. مابقی بحث جهت دائمی کردن این کلیدها است. البته دائمی کردن هم طول عمری دارد.
- در سرورهای اشتراکی یا از روش «یک نکته‌ی تکمیلی: روش ذخیره سازی کلید موقتی تولید شده در بانک اطلاعاتی بجای حافظه‌ی سرور » استفاده کنید، یا با هاست تماس بگیرید و تنظیم گزینه‌ی 2 یا همان Load user profile به true را به آن‌ها اعلام کنید (چون تنظیمات برنامه‌های ASP.NET Core با نگارش‌های قبلی یکی نیست؛ این یک مورد را هم بهتر است به لیست تنظیمات اولیه‌ی برنامه اضافه کنند).
- در حالت سوم، ذکر Certificate برای رمزنگاری اطلاعات ضروری است؛ در غیراینصورت این کلیدها به صورت معمولی و واضح ذخیره خواهند شد.
نظرات مطالب
کار با یک مخزن کد GitHub‌ از طریق VSCode
یک نکته ، چنانچه در مرحله "ایجاد یک Clone از مخزن موجود GitHub توسط VSCode    " با خطای " it looks like git is not installed on your system   " یا خطای "error git.clone not found  " مواجه شدید مراحل زیر را انجام دهید:
  •   ctrl+shift+p   را فشرده و Setting را جستجو نمایید .
  •  در کادر باز شده User Settings را انتخاب کرده تا در چپ تنظیمات پیش فرض و در سمت راست تنظیمات کاربر نمایش داده شود.
  •  از لیست موجود  Git  را باز نمایید
  • در صورتی که مقدار  "git.path"  برابر با null   بود ، از منوی سمت راست آن را با مسیر مناسب مثلا "D:\\Programs\\Git\\bin\\git.exe   " جایگزین نمایید .
  • VSCode را ری استارت کنید.
نظرات مطالب
نوشتن پرس و جو در Entity Framework‌ با استفاده از LINQ To Entity قسمت سوم
در کد زیر چرا  لیست Order‌های مشتری در forech اول برگشت داده می‌شوند در حالیکه هنوز Customer.Orders اجرا نشده و همچنین هیچ Inculde ای به جدول Order زده نشده است؟

در ضمن کلاس‌های Customer و Order به صورت زیر است و LazyLoading هم غیر فعال نیست:
 public class Customer
    {
        public Customer()
        {
           Orders = new ObservableCollection<Order>();  
        }
      
        public virtual ICollection<Order> Orders { get; set; }
    }

 public class Order
    {
        public virtual Customer Customer { get; set; }
   }
نظرات مطالب
استفاده از Froala WYSIWYG Editor در ASP.NET
- با تشکر از نکته‌ی تکمیلی شما.
- فقط در حین delete و کلا کار با مسیرهای دریافتی از کاربران، نکته‌ی «باگ Directory Traversal در سایت» را حتما مدنظر داشته باشید.
- به علاوه اینکه ممکن است کاربری شروع کند به درج مسیرهایی که قبلا وجود داشته‌اند و درخواست حذف یکی یکی آ‌ن‌ها را ارسال کند. در کل، وجود حذف فیزیکی را به موارد نادر محدود کنید. فایل‌های ارسالی را در قسمت admin سایت لیست کنید (یک گزارش ساده از پوشه‌ی آپلودها) و فقط با دسترسی ادمین امکان حذف را قرار دهید. 
نظرات مطالب
صفحه بندی و مرتب سازی خودکار اطلاعات به کمک jqGrid در ASP.NET MVC
زمانیکه از AutoMapper استفاده می‌کنید، یک سری «نگاشت» اولیه برای آن لازم هست که مشخص کند، کدام خاصیت مدل باید به کدام خاصیت ویوو مدل متصل شود و همچنین یک سری پیش‌فرض‌هایی هم دارد؛ مانند نگاشت خودکار خواص هم‌نام. در اینجا هم شبیه به همین «نگاشت‌ها» را «خودتان» باید ایجاد کنید. مراجعه کنید به سورس مرتبط و متد getPredicate را اصلاح کنید. اینجا جایی هست که فیلدها به صورت پویا به کوئری اضافه می‌شوند. در این متد فرصت خواهید داشت تا تغییرات مدنظر خودتان را اعمال کنید. مثلا به این کلاس یک دیکشنری اضافه کنید که لیست نگاشت‌ها را دریافت کند. بعد اگر این دیکشنری دارای عضوی بود، در ابتدای متد یاد شده، نام فیلد دریافتی را با فیلد موجود در دیکشنری تعویض کنید.
نظرات مطالب
EF Code First #1
قبلا هم سعی کردم بسازم ولی میگه این یوزر وجود داره و در لیست لاگین‌ها هم نیست و در جست و جو‌ها هم نمیاد
در صورتی که با همین یوزر من به سیستم مدیریت MSSQL لاگین میکنم
یک نکته دیگه اینکه من با همین رشته اتصالی دارم به یک دیتابیس دیگه هم لاگین میکنم

ویرایش:
مشکل از لاگین نیست .ساخت دیتابیس بود. از طریق migration کد sql رو خروجی گرفتم و دیتابیس رو دستی ساختم و مشکل حل شد
ولی جالب اینه که بقیه برنامه‌ها دیتابیس رو با همین کانکشن استرینگ ساختن و اگر محدودیتی باشد ، باید برای بقیه هم باشد.