مطالب
معرفی WPF Extended toolkit

یکی از نکات جالبی که در مورد Silverlight وجود دارد این است که هر چند تنها قسمتی از WPF را به ارث برده (برای اینکه حجم افزونه‌ی آن قابل قبول باشد)، اما بیشتر از خود WPF مورد توجه مایکروسافت است! شاید یک دلیل آن استفاده از Silverlight در Windows phone 7 باشد. به عبارتی اگر برنامه نویس Silverlight هستید، هم اکنون برنامه نویس Windows phone 7 نیز می‌باشید.
این توجه بیشتر در Silverlight toolkit کاملا مشخص است. Silverlight toolkit از یک سری ابزار و کامپوننت برای توسعه‌ی ساده‌تر برنامه‌های Silverlight به صورت سورس باز و تهیه شده توسط مایکروسافت، تشکیل شده است. حجم WPF toolkit که آن هم توسط مایکروسافت به صورت سورس باز ارائه و به روز می‌شود حدود 2 مگابایت است؛ اما حجم Silverlight toolkit حدود 18 مگابایت می‌باشد! بسیاری از کنترل‌ها و امکانات Silverlight toolkit را در WPF نمی‌توانید پیدا کنید مانند BusyIndicator ، ChildWindow ، DataForm و غیره. نمونه‌ی دیگر این توجه WCF RIA Services است. هدفگیری اصلی این مورد نیز Silverlight است و نه WPF (که از آن در Visual studio LightSwitch هم استفاده کرده‌اند).
اخیرا یک گروه خیّر کار تبدیل و انتقال کنترل‌های Silverlight toolkit به WPF toolkit را شروع کرده است که حاصل آن از آدرس ذیل قابل دریافت است: (این هم یکی از مزیت‌های پروژه‌های سورس باز است)



مطالب
آشنایی با الگوی M-V-VM‌ - قسمت چهارم

در این قسمت، MVVM Light Toolkit مورد بررسی قرار گرفته است (دریافت، نصب، به همراه ارائه 4 مثال جهت معرفی توانمند‌ی‌های آن)

فهرست مطالب:
فصل 4- آشنایی با MVVM Light Toolkit
  • سایر کتابخانه‌ها و Framework های موجود MVVM
  • نصب قالب‌های MVVM Light Toolkit مخصوص VS.Net 2008
  • نصب قالب‌های MVVM Light Toolkit مخصوص VS.Net 2010
  • نصب Code Snippets مجموعه MVVM Light Toolkit در VS.Net 2008/2010
  • نصب فایل‌های بایناری کتابخانه‌ی MVVM Light Toolkit
  • نصب قالب‌های MVVM Light Toolkit مخصوص Expression Blend
  • بررسی صحت نصب کتابخانه‌ی MVVM Light Toolkit
  • استفاده از Code Snippets نصب شده
  • مثال اول - بررسی RelayCommand
  • مثال دوم - بررسی Messenger
  • مثال سوم - بررسی Blendability
  • مثال چهارم - بررسی EventToCommand


دریافت قسمت چهارم
دریافت مثال‌های قسمت چهارم

نظرات مطالب
اعتبارسنجی مبتنی بر JWT در ASP.NET Core 2.0 بدون استفاده از سیستم Identity
- «... اما نمی‌خوام از ajax استفاده کنم. پس نمی‌تونم طبق الگو به اون صورت که در مخزن اومده header رو پر کنم ...»
این مورد ربطی به Ajax بودن درخواست ندارد. اصل کار رعایت و ارسال پیامی توسط پروتکل HTTP است.
- برای نمونه مراجعه کنید به مثال کلاینت غیر وب آن؛ یک مثال برنامه‌ی کنسول است که از HttpClient برای ساخت و ارسال پیام HTTP استفاده شده‌است. برای اجرای آن ابتدا مراجعه کنید به پوشه‌ی ASPNETCore2JwtAuthentication.WebApp و فایل _1-dotnet_run.bat آن‌را اجرا کنید تا سرور در آدرس http://localhost:5000 راه اندازی شود. سپس این برنامه‌ی کنسول را جداگانه اجرا کنید تا به سرور در حال اجرا متصل شود. 
نظرات مطالب
پیاده سازی JSON Web Token با ASP.NET Web API 2.x
قسمت «نحوه‌ی ارسال درخواست‌های Ajax ایی به همراه توکن صادر شده» را مطالعه کنید. اگر توکنی به سمت سرور ارسال نشود و هدر نهایی حاوی key/value مربوط به authorization ذکر شده نباشد:
    $.ajax({
        headers: { 'Authorization': 'Bearer ' + jwtToken },
مقدار access token در سمت سرور قابل بازیابی نخواهد بود.
با استفاده از developer tools مرورگرها بررسی کنید که آیا هدر authorization را به شکل زیر به سمت سرور ارسال می‌کنید یا خیر؟ (این هدر ویژه هست که actionContext.Request.Headers.Authorization را وهله سازی می‌کند)

نظرات مطالب
ساخت DropDownList های مرتبط به کمک jQuery Ajax در MVC
$('#dbcat').change(function () {
    var selectedItem = $(this).val();
    $.post( "-----url----", { item: selectedItem } );
});
+ عنصر خارج از فرم را نمی‌شود توسط submit معمولی به سرور ارسال کرد؛ مگر اینکه از Ajax استفاده کنید و عناصر مورد نیاز را از قسمت‌های مختلف صفحه جمع‌آوری و به سرور ارسال کنید؛ مانند کدهای فوق. یا اینکه در رخداد change، یک فیلد مخفی داخل فرم را با مقدار value انتخابی مقدار دهی کنید. به این ترتیب چون این فیلد مخفی، داخل فرم هست، قابلیت ارسال به سرور را از طریق دکمه‌ی استاندارد و غیر Ajax ایی submit، خواهد یافت.
نظرات مطالب
نحوه اضافه کردن Auto-Complete به جستجوی لوسین در ASP.NET MVC و Web forms
افزونه‌ی مورد استفاده در آن به نام jquery.autocomplete.js سورسش پیوست هست. ajax را در آن جستجو کنید به مورد ذیل خواهید رسید:
$.ajax({
    //...
    data: $.extend({
             q: lastWord(term),
             limit: options.max
             }, extraParams),
       //...
});
در اینجا q مشخص است و extraParams آن متغیر. بنابراین برای ارسال اطلاعات اضافی باید extraParams را مانند کدهای ذیل مقدار دهی کرد. نحوه‌ی دریافت عناصر آن در سمت سرور، مانند نحوه‌ی دریافت q است.
    $(document).ready(function () {
        $("#term").autocomplete(url, {
            // ..... 
            extraParams: { id: 12, xyz: "test" }
        }).result(function (evt, row, formatted) {
            // .....
        });
    });
نظرات مطالب
ASP.NET MVC #17
با سلام و عرض خسته نباشید.
من در پروژه ام به شکل ذیل عمل کردم؛ آیا اشتباه است؟
1- بجای آنکه ابتدای هر فرم Html.AntiForgeryToken@ را قرار بدهم، فقط یکبار در Layout.cshtml_ و در Body آنرا ذکر کردم.
2-تمامی ارسال‌ها به سرور را توسط Post Ajax انجام میدهم؛ چه درخواست نمایش یک View باشد چه ثبت کالای جدید در دیتابیس همه توسط کدی مثل کد ذیل به سرور Post میشوند:
var token = $('[name=__RequestVerificationToken]').val();
data.__RequestVerificationToken = token;
...
...
...
 $.ajax({
  url: url,
  type: "POST",
  data: data
});
ممنون