اشتراک‌ها
بهبودهای LINQ در دات نت شش

متدهای کاربردی زیادی در دات نت شش برای کار با دیتابیس و لیست‌ها اضافه شده است که برای پیاده سازی برخی از اونها قبلا باید کلی وقت صرف میشد.  

همانند:

  • MinBy
  • MaxBy
  • DistinctBy
  • ExceptBy
  • IntersectBy
  • UnionBy 
بهبودهای LINQ در دات نت شش
نظرات مطالب
فارسی نویسی و iTextSharp
ممنونم، فقط این کار در زمانی که از html استفاده میکنم جواب نمیده.
یعنی با html هم کار میکنه؟ مشکل کار من کجاست؟ باید کار اضافه ای کنم که نمیکنم؟؟؟
لطفا راهنمایی بفرمایید
مسیرراه‌ها
ASP.NET MVC
              مطالب
              استفاده از WCF Data Services در برنامه های وب به کمک JQuery
              در مطالب قبلی با پروتکل OData و WCF Data Service  و قرارداد‌های کوئری نویسی آن آشنا شدید. حال می‌خواهیم با استفاده از Jquery به داده‌های وب سرویس WCF Data Service دسترسی یابیم. اما پیش نیاز‌های لازم است 

              پیش نیاز اول : دسترسی به خروجی Json وب سرویس WCF Data

              خروجی پیش فرش وب سرویس WCF Data Services ساختار Xml دارد پس می‌بایست وب سرویس را متوجه سازیم که ما با خروجی Json نیاز داریم. از نسخه 5 به بعد اگر MaxProtocolVersion را بر روی V3 قرار دهیم دیگر با Accept Header برابر application/json کار نخواهد کرد و می‌بایست از  application/json;odata=verbose استفاده نمود یا نسخه پروتکل را بر روی V2 یا پایین‌تر تنطیم کنید. علاوه بر آن کتابخانه‌های و قطعه کد‌های تهیه شده است که با پارامتر format$ این کار را برای ما انجام می‌دهد در زیر آدرس دو نمونه آورده شده است.

              1. DataServicesJSONP
              2. WCF Data Services Toolkit 
              قطعه کد اول یک Attribute است که با اضافه کردن آن به بالای کلاس WebService  و استفاده از پارامتر format=json$ در آدرس وب سرویس این کار را برای ما انجام می‌دهد.
              [JSONPSupportBehavior]
              public class Northwind : DataService<NorthwindEntities>
              و نمونه آدرس
              http://localhost:8358/Northwind.svc/Products?$format=json
              دومی کتابخانه ای است که مانند روش اول عمل می‌کند اما به جای ارث برای از کلاس DataService می‌بایست از کلاس ODataService استفاده نماییم.
              نکته: در صورتی که بخواهیم از نسخه V3 استفاده نماییم Accept Header را باید به  application/json;odata=verbose تغییر دهیم
              public class Northwind : ODataService<NorthwindEntities>

              استفاده از WCF Data Services به کمک Jquery
              تابع getJSON  مخصوص درخواست‌های است خروجی بصورت json برگردانده می‌شود اما با نسخه V3 سازگار نمی‌باشد و از روش پارامتر format$ می‌توان استفاده نمود
              $.getJSON("Northwind.svc/Products?$format=json", function (data) {
                              $.each(data.d, function (i, item) {
                                  $("<p/>").html(item.Product_Name + " " + item.Unit_Price).appendTo("#products");
                              });
                          });

              همچنین از تابع Ajax که امکاتات بیشتری را در اختیارمان قرار می‌دهد به راحتی می‌توان استفاده نمود به مثال زیر دقت کنید:
               $.ajax('Northwind.svc/Products', {
                              dataType: "json",
                              beforeSend: function (xhr) {
                                  xhr.setRequestHeader("Accept", "application/json;odata=verbose");
                                  xhr.setRequestHeader("MaxDataServiceVersion", "3.0");
                              },
                              success: function (data) {
                                  $.each(data.d, function (i, item) {
                                      $("<p/>").html(item.Product_Name + " " + item.Unit_Price).appendTo("#products");
                                  });
                              }
                          });
              با اسفاده از beforeSend مقدار Accept Header  و MaxDataServiceVersion را تعیین نموده ایم. 
              بنابراین به کمک قرارداده‌های کوئری نویسی که در مطالب قبلی گفته شد می‌توان با استفاده از Url تابع Ajax به داده مورد نظر خود رسید.
              نظرات مطالب
              اعتبارسنجی مبتنی بر کوکی‌ها در ASP.NET Core 2.0 بدون استفاده از سیستم Identity
              اینطور نیست. مثال مطلب جاری با jQuery Ajax پیاده سازی شده و بدون مشکل کار می‌کند. عدم ارسال کوکی‌ها مرتبط است به درخواست‌هایی که شرایط CORS را دارند: «برای رفع این مشکل نیاز است خاصیت withCredentials را به true تنظیم کنید ، در انتهای آن مطلب»
              نظرات مطالب
              محاسبه ی اختلاف زمان رخدادی در گذشته با زمان فعلی به فارسی
              با سلام و عرض  ادب
               بنده نیاز به یک تابع جاوا اسکریپتی ترجیحاً با Jquery دارم که بتونه تاریخ شمسی مثلا 1392/01/11  را بگیره و بگه که تا امروز چند سال و چند ماه گذشته. یعنی یک جور محاسبه سایقه کار برحسب سال و ماه را  می‌خواهم روز و ساعتش مهم نیست. با تشکر 
              نظرات مطالب
              Image Annotations
              ضمن تشکر، فقط نکته استفاده از JSON.stringify در حین کار با jQuery Ajax رو بهتره اعمال کنید تا در دراز مدت و حالت‌های مختلف ورودی به مشکل برنخورید. به صورت خلاصه اطلاعات ارسالی رو جمع نزنید و تبدیل به رشته نکنید. یک شیء کامل درست کنید و اجازه بدید JSON.stringify اون رو تبدیل کنه.
              نظرات مطالب
              تبدیل پلاگین‌های jQuery‌ به کنترل‌های ASP.Net
              سلام.
              از کنترلی که طراحی کردید درون یک JQuery UI دیالوگ استفاده کردم (درون محتویات Dialog در یک Update Panel هست).
              اما پس از قرار دادن کنترل Dialog از کار افتاد.
              نکته : Dialog را از سمت Server پس از Postback اجرا کردم.
              به نظرتون مشکل از کجا هست؟
              ممنون
              مطالب
              چگونه یک اسکریپت گریس مانکی بنویسیم؟

              گریس مانکی یکی از افزونه‌های فایرفاکس است که توسط آن می‌توان اسکریپت‌هایی را بر روی صفحات وب در حال مشاهده، جهت تغییر آن‌ها اجرا کرد. این نوع تغییرات بیشتر در جهت بالا بردن کارآیی یا خوانایی سایت‌ها صورت می‌گیرد. مثلا بررسی وجود لینک‌های ارائه شده در یک صفحه وب (قبل از اینکه به آن‌ها رجوع کنیم، مشخص شود که آیا وجود دارند یا خیر) و هزاران مثال شبیه به این که در سایت اسکریپت‌های آن قابل دریافت هستند.
              گریس مانکی به خودی خود کار خاصی را انجام نمی‌دهد و فقط میزبان اجرایی اسکریپت‌هایی است که برای آن تهیه شده اند. به این اسکریپت‌ها user scripts گفته می‌شود و جهت تهیه آن‌ها از زبان جاوا اسکریپت استفاده می‌گردد.
              مطابق اصول نامگذاری آن، فایل این اسکریپت‌ها حتما باید به .user.js ختم شود تا توسط افزونه گریس مانکی قابل شناسایی باشد.

              اسکریپت سلام دنیای گریس مانکی!
              // ==UserScript==
              // @name Hello World
              // @namespace http://diveintogreasemonkey.org/download/
              // @description example script to alert "Hello world!" on every page
              // @include *
              // @exclude http://diveintogreasemonkey.org/*
              // @exclude http://www.diveintogreasemonkey.org/*
              // ==/UserScript==
              alert('Hello world!');

              فرمت کلی و آناتومی یک اسکریپت گریس مانکی مطابق چند سطر فوق است. در ابتدا نامی را که برای اسکریپت مشخص کرده‌اید، ذکر خواهید نمود. سپس فضای نام آن مشخص می‌گردد. این فضای نام یک آدرس وب خواهد بود (مثلا سایت شخصی شما) . به این طریق گریس مانکی می‌تواند اسکریپت‌های هم نام را بر اساس این فضاهای نام مختلف مدیریت کند. سپس توضیحات مربوط به اسکریپت ارائه می‌شود. در قسمت include مشخص خواهید کرد که این اسکریپت بر روی چه سایت‌ها و آدرس‌هایی اجرا شود و در قسمت exclude سایت‌های صرفنظر شونده را تعیین خواهید نمود. در مثال فوق، اسکریپت بر روی تمامی سایت‌ها اجرا خواهد شد، منهای دو سایت و زیر سایت‌هایی که در قسمت exclude مشخص شده‌اند.
              در پایان مثلا نام آن‌را hello.user.js خواهیم گذاشت (همانطور که ذکر شد قسمت user.js آن باید رعایت شود). برای نصب آن فقط کافی است این فایل را به درون پنجره فایر فاکس کشیده و رها کنیم (drag & drop).

              استفاده از jQuery در اسکریپت‌های گریس مانکی

              عمده کاربردهای اسکریپت‌های گریس مانکی در جهت اعمال تغییرات بر روی document object model صفحه (DOM) هستند. کتابخانه jQuery اساسا برای این منظور تهیه و بهینه سازی شده است.

              مثال:
              فرض کنید قصد داریم به نتایج خروجی جستجوی گوگل، fav icon سایت‌های یافت شده را اضافه کنیم (در کنار هر لینک، آیکون سایت مربوطه را نمایش دهیم). گوگل این‌کار را انجام نداده است. اما ما علاقمند هستیم که این قابلیت را اضافه کنیم!
              // ==UserScript==
              // @name Google FavIcon
              // @namespace http://userscripts.org
              // @description Shows favicon for Google searches results
              // @include http://*.google.*/search?*

              // ==/UserScript==

              loadJquery();

              $(document).ready(function(){
              $("h3.r > a.l").each(function(){
              var $a = $(this);
              var href = $a.attr("href");
              var domain = href.replace(/<\S[^><]*>/g, "").split('/')[2];
              var image = '<img src="http://' + domain + '/favicon.ico" style="border:0;padding-right:4px;" />';
              //GM_log(">image:> " + image);
              $(this).prepend(image);
              });

              });

              نحوه پیاده سازی تابع loadJquery را در سورس مربوطه می‌توانید مشاهده نمائید.
              دریافت سورس این مثال

              در اینجا ابتدا لینک‌های حاصل از جستجو پیدا می‌شوند. سپس نام دومین مربوطه استخراج می‌گردد (با استفاده از regular expressions) و در ادامه از این نام دومین یک آدرس استاندارد http://domain/favico.ico ساخته شده و از آن یک تگ img درست می‌شود. در آخر این تگ به قبل از لینک‌های گوگل اضافه می‌شود.

              شاید سؤال بپرسید از کجا مشخص شد که باید به دنبال h3.r > a.l گشت؟ به تصویر زیر دقت نمائید (نمایی است از یکی از توانایی‌های افزونه fireBug فایرفاکس).



              هنگامیکه صفحه بارگذاری شد، بر روی آیکون سوسک موجود در status bar فایرفاکس کلیک کنید تا FireBug ظاهر شود (البته من اینجا سوسک دیدم شاید موجود دیگری باشد :) )
              سپس بر روی دکمه inspect در نوار ابزار آن کلیک کنید. در همین حال اشاره‌گر ماوس را به یکی از لینک‌های نتیجه جستجوی گوگل نزدیک کنید. بلافاصله تگ‌ها و کلاس‌های مورد استفاده آن به شکل زیبایی ظاهر خواهند شد. به این صورت صرفه جویی قابل ملاحظه‌ای در وقت صورت خواهد گرفت.

              نتیجه اجرای اسکریپت فوق (پس از نصب) به صورت زیر است:



              نکته: نحوه دیباگ کردن اسکریپت‌های گریس مانکی

              اگر نیاز به مشاهده مقدار متغیرها در لحظه اجرای اسکریپت داشتید، یکی از راه‌حل‌های موجود استفاده از تابع GM_log مربوط به API گریس مانکی است که خروجی آن‌را در قسمت messages مربوط به error console فایرفاکس می‌توان دید.