نظرات مطالب
ASP.NET MVC #18
یک تاریخچه‌ی ضروری

- این مطلب با مباحث ASP.NET Identity 2.x به طور کامل جایگزین شده‌است.
- ASP.NET Identity 2.x دیگر در فاز توسعه‌ی اصلی قرار ندارد:
Identity 2.0 is no longer under primary development. No new features will be added, only bugs will be considered
 مخزن کد انتقالی آن از CodePlex در اینجا قرار دارد.
- نگارش جدید و فعال آن صرفا ASP.NET Core Identity است و مخزن کد آن هم در اینجا است.
نظرات مطالب
ارتقاء به ASP.NET Core 2.0 - معرفی بسته‌ی Microsoft.AspNetCore.All
در NET Core 3x. دیگر بسته‌های نیوگت Shared framework به صورت جداگانه تولید و توزیع نمی‌شوند

فرض کنید کتابخانه‌ای را مخصوص ASP.NET Core 2x تولید کرده‌اید و این کتابخانه، وابستگی را به بسته‌ی Microsoft.AspNetCore.Mvc.Core دارد و اکنون قصد دارید نگارش 3x آن‌را تهیه کنید.  اگر به نیوگت مراجعه کنید، آخرین نگارشی که از آن موجود است، 2.2.5 است و دیگر هیچ خبری، حتی از نگارش‌های preview مربوط به 3x، در اینجا وجود ندارد. علت اینجا است که تیم ASP.NET Core تصمیم گرفته‌است، دیگر بسته‌های نیوگت زیر مجموعه‌ی Microsoft.AspNetCore.App را به صورت جداگانه تولید و منتشر نکند (و دیگر آخرین نگارش‌های آن‌ها را در سایت نیوگت نخواهید یافت).
همچنین نحوه‌ی تعریف متاپکیج Microsoft.AspNetCore.App اینبار از طریق PackageReferenceها صورت نمی‌گیرد و بر اساس معرفی FrameworkReferenceها انجام شده‌است:
<ItemGroup>
   <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
 به همین جهت فایل csproj نگارش 3x، دیگر شامل Microsoft.AspNetCore.App نیست (حتی تعریف FrameworkReference فوق را نیز به همراه ندارد). علت اینجا است که اگر TargetFramework پروژه‌ی وب، به netcoreapp3.0 اشاره کند، به صورت خودکار می‌توانید از آخرین نگارش Microsoft.AspNetCore.App نصب شده‌ی توسط SDK، در برنامه‌ی خود استفاده کنید و نیاز به هیچ نوع تنظیم اضافه‌تری ندارد و ذکر netcoreapp3.0، به معنای استفاده‌ی خودکار از تمام بسته‌های نیوگت به همراه Shared framework همراه با SDK جاری است. بدیهی است هر وابستگی دیگری که در لیست Microsoft.AspNetCore.App قرار نداشته باشد، باید همانند سابق نصب شود.

یک نکته: تمام بسته‌های جدید تولید شده، بر اساس netcoreapp3.0 تهیه شده‌اند؛ منهای بسته‌های Microsoft.Extensions و همچنین Entity Framework Core که هنوز بر پایه‌ی NET Standard. تهیه می‌شوند. بنابراین فایل پروژه‌ی یک class library که بخواهد از بسته‌های مبتنی بر netcoreapp3.0 استفاده کند و همچنین بسته‌های Microsoft.AspNetCore.App را نیز لحاظ کند، چنین شکلی را پیدا می‌کند (و TargetFramework آن دیگر برای مثال netstandard2.0 نمی‌تواند باشد):
<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
      <TargetFramework>netcoreapp3.0</TargetFramework>
   </PropertyGroup>
   <ItemGroup>
      <FrameworkReference Include="Microsoft.AspNetCore.App" />
   </ItemGroup>
</Project>
اشتراک‌ها
آشنایی با CORS یا Cross-origin resource sharing
CORS کوتاه‌شده‌ی عبارت Cross-origin resource sharing است. محل کاربرد CORS در مرورگرهای مدرن و برای بررسی اجازه‌ی دسترسی از راه دور به منابع و سرویس‌های تحت وب است. برای مثال در حالت عادی امکان استفاده از فایل‌های فونت از روی یک سرور دیگر وجود ندارد یا امکان ارسال یک درخواست AJAX از روی دامنه‌ای غیر از دامنه‌ی فعلی ناممکن است.CORS ابزاری است که روشی برای حذف این محدودیت در اختیار برنامه‌نویسان قرار می‌دهد.
آشنایی با CORS یا Cross-origin resource sharing
اشتراک‌ها
کنترولر های چاق در ASP.NET MVC!
What is fat controller ?
  • there is a lot of code that should be in some other layer,
  • controller has many methods for AJAX responses,
  • controller has many methods to return JSON data
کنترولر های چاق در ASP.NET MVC!
اشتراک‌ها
Yahoo Mail و استفاده از ReactJS


1999 First gen C++, HTML Ajax for world peace
2004 Oddpost Java, Python, JS
2008 Classic PHP, JS
2010 The One PHP, YUI, JS
2015 Next gen NodeJS, React + Flux, MicroJS

Yahoo Mail و استفاده از ReactJS
نظرات مطالب
ارتقاء به ASP.NET Core 1.0 - قسمت 20 - بررسی تغییرات فیلترها
خوب توضیح ندادم. من یک فیلتر سفارشی نوشتم. در این فیلتر در قسمت onActionExecuting یک متغیر IsPermission دارم که اگر true باشه اکشن باید انجام بشه و اگه false باشه نباید وارد اکشن بشه و کد خطا و متن خطا رو برام به عنوان پاسخ به ajax سمت کلاینت ارسال کنه. چه طوری میتونم این کار رو انجام بدم؟ ممنون.
نظرات مطالب
شروع به کار با EF Core 1.0 - قسمت 14 - لایه بندی و تزریق وابستگی‌ها
آیا با تغییر این قسمت 
services.AddScoped<IUnitOfWork, ApplicationDbContext>();
به AddTransient ایا کارایی برنامه به مشکل میخوره ؟ چون در عملیات Ajax بروی Controller با توجه به وهله ای که انجام میشه برای Update  در حالت AddScope با خطای زیر مواجه میشم 
Cannot create a ModificationFunction for an entity in state 'Unchanged'.

نظرات مطالب
پیاده سازی Unobtrusive Ajax در ASP.NET Core 1.0
فعالسازی نمایش خطاهای سمت سرور به کاربر، پس از پایان عملیات ای‌جکسی
سمت سرور:
return BadRequest(error: "کاربر مورد نظر یافت نشد");
سمت کاربر:
- تغییرات فرم:
<form
...
...
data-ajax-failure="dataAjaxFailure">
- متد جاوا اسکریپتی متناظر:
function dataAjaxFailure(xhr, status, error) {
    alert(xhr.responseText);
}
نظرات مطالب
اعتبارسنجی درخواست های http$ با استفاده از یک Interceptor

 چه شرایطی ممکن است رخ دهد که اشتباه کار کند ؟

اگر این درخواست دستی صادر بشه (یک ربات باشه) یا اگر فایروال خاصی در این میان هدرهای Ajax رو حذف کنه. مورد اول مهم نیست، چون نیازی نیست تا ربات را به صفحه‌ی لاگین هدایت کرد (مرورگر باز شده‌ای نداره). مورد دوم هم خیلی خیلی بعید هست. یعنی من ندیدم که در عمل فایروال‌های شرکت‌ها هدرهای HTTP رو تا این حد دستکاری کنند.

نظرات مطالب
jQuery Ajax و نحوه صحیح ارسال مقادیر به یک وب سرویس
من کد زیر رو ارسال می‌کنم ولی مشکلی که وجود داره این هست که نه پارمترها ارسال میشه و نه درخواست آژاکسی هست.صفحه رو واقعا هدایت میکنه به آدرس مورد نظر.
//new group
    $("#NewGroup").on('click', function () {
        var catName = 'new';// $("#appendNodeText").val();
        $.ajax({
            dataType: "json",
            type: "POST",
            url: "@Url.Action(MVC.Categories.NewCategory())",
            data: { name: catName }

        }).done(function (data) {
            alert(data);
        });
    });