مطالب
پردازش فایل‌های XML با استفاده از jQuery

فرض کنید مثال دریافت اطلاعات API فیدبرنر را بخواهیم با استفاده از jQuery پیاده سازی کنیم، یعنی امکان برنامه نویسی سمت سرور را نداریم و می‌خواهیم با استفاده از جاوا اسکریپت، تعداد مشترکین فید یک سایت را نمایش دهیم.
برای مثال آدرس دریافت اطلاعات مربوط به API فیدبرنر وبلاگ جاری به صورت زیر است:

و در حالت کلی :
http://api.feedburner.com/awareness/1.0/GetFeedData?uri=<feeduri>

که حاصل آن برای مثال یک فایل XML با فرمت زیر می‌باشد:

<rsp stat="ok">
<feed id="fhphjt61bueu08k93ehujpu234" uri="vahidnasiri">
<entry date="2009-01-23" circulation="153" hits="276" reach="10"/>
</feed>
</rsp>

همانطور که مطلع هستید چند روزی است که jQuery 1.3.1 ارائه شده است. جهت استفاده از آخرین نگارش موجود آن تا این زمان، می‌توان از گوگل به عنوان هاست این کتابخانه به صورت زیر استفاده کرد:

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js' type='text/javascript'></script>

نحوه خواندن مقدار circulation فایل xml ذخیره شده بر روی کامپیوتر:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>FeedBurner API</title>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js' type='text/javascript'>
</script>
<script type="text/javascript">
function parseXml(xml){
//find every entry and print the circulation
$(xml).find("entry").each(function(){
$("#output").append($(this).attr("circulation"));
});
}

$(document).ready(function(){
$.ajax({
type: "GET",
url: "GetFeedData_local.xml",
dataType: "xml",
success: parseXml
});
});
</script>
</head>
<body>
<div dir="rtl" style="font-family:tahoma; font-size:12px;">
تعداد مشترکین تغذیه خبری سایت:
<div id="output">
</div>
</div>
</body>
</html>

با استفاده از قابلیت Ajax کتابخانه jQuery ، اطلاعات فایل محلی GetFeedData_local.xml دریافت شده و محتوای آن به تابع parseXml پاس می‌شود (توسط قسمت success). سپس در این تابع تمام تگ‌های entry یافت شده و مقدار circulation آن‌ها به یک div با ID معادل output اضافه می‌شود.
مثال فوق در مورد خواندن اطلاعات از یک فایل xml می‌تواند برای مثال این کاربرد را در یک سایت داشته باشد:
نمایش اتفاقی سخن روز یا سخن بزرگان و امثال آن بدون برنامه نویسی سمت سرور جهت انجام این کار از یک فایل xml تهیه شده، بدون نیاز به استفاده از دیتابیس خاصی.

تا اینجای کار مشکلی نیست. اما همانطور که در مطلب مقابله با حملات CSRF نیز ذکر شد، مرورگرهای جدید امکان ارسال یا دریافت اطلاعات به صورت Ajax را بین سایت‌ها ممنوع کرده‌اند (ماجرا هم از آنجا شروع شد که یکبار جی‌میل این باگ امنیتی را داشته است). بنابراین اگر شما بجای url قسمت Ajax فوق، آدرس سایت فید برنر را قرار دهید با خطای زیر متوقف خواهید شد:

Access to restricted URI denied

تمام موارد دیگری هم که در jQuery برای دریافت اطلاعات از یک فایل یا url موجود است (مثلا تابع load یا get و امثال آن) فقط به سایت جاری و دومین جاری باید ختم شوند در غیر اینصورت توسط مرورگرهای جدید متوقف خواهند شد.

اشتراک‌ها
آموزش ساخت برنامه موبایل Uber با استفاده از React Native

Use Tailwind CSS with RN for awesome styling!

Use the Google Distance Matrix API to calculate Travel time and Distance (+ Cost!)

Use the Directions Google API for real navigation!

Use Google places API for real navigations!

Use apple & google maps for iOS & Android 

Use React Native Navigation to navigate between screens!

Use React Native Elements to elevate your app design! 

آموزش ساخت برنامه موبایل Uber با استفاده از React Native
اشتراک‌ها
کتابخانه jquery.WebRating
  • Easy to configure
  • Precision upto 0.01
  • Use stars, hearts, smiles or your logo
  • Integrate with your own database
  • CSS based coloring
  • Customized toop-tip option
  • Callback functions on click & hover
  • Limit number of clicks per page view
  • Use cookies to limit clicks per visitor 
کتابخانه jquery.WebRating
پاسخ به بازخورد‌های پروژه‌ها
تگ a در گزارش
سلام آقای نصیری. رفتم StackOverflow  سوالایی که تو تگ iTextSharp مطرح شده بودند نگاه کردم این سوال مرتبط با سوال من بود.(http://stackoverflow.com/questions/18131992/css-styles-not-being-applied-to-pdf-with-itextsharp)
ولی این کد که وارد می‌کنم کلاس StyleAttrCSSResolver نمی‌شناسه. پرسیدم تو استک اورفلو ولی کسی جواب نداد. لطف می‌کنید جوابم بدید؟
لینک سوالمhttp://stackoverflow.com/questions/18202418/which-class-or-namespace-must-add-for-use-class-styleattrcssresolver-in-itextsha
می‌دونم نباید بپرسم اینجا ولی می‌دونم شما جواب سوالم می‌دونید...ممنون
اشتراک‌ها
افزونه‌ی Text Sharp

The free Text Sharp extension lets you adjust text clarity in Visual Studio 2015, Visual Studio 2013, Visual Studio 2012 and Visual Studio 2010 IDEs (Professional, Premium, Ultimate and LightSwitch). You can select Aliased, Grayscale or ClearType text rendering mode for Visual Studio menu, tabs and editor windows. An easy way to turn off ClearType. (Aliased rendering looks terrible when text scale is changed from default 100% in text views, so Text Sharp doesn't override VS settings when Aliased+Display is selected and zoom level is not 100%.)

افزونه‌ی Text Sharp
نظرات مطالب
استفاده از Full text search توسط Entity Framework
چند نکته بسیار مهم درباره قابلت  Full Text Search که دوستان باید مد نظر داشته باشند عبارتست : 
1- ابتدا باید در هنگام نصب این قابلیت را در SQL Server فعال کرده باشید 

2- برای اینکه بتوان بر روی ستون‌های مورد نظر Full text Serach زد باید index‌های لازم و همچنین کاتولوگ‌های لازم را تعریف نمود.

//ایجاد کاتالوگ 
 use AdventureWorks
 create fulltext catalog FullTextCatalog as default

 select *
 from sys.fulltext_catalogs

//تعریف ایندکس بر روی ستون  مورد نظر
 create fulltext index on Production.ProductDescription(Description)
 key index PK_ProductDescription_ProductDescriptionID

3- توجه داشته باشید برای حجم داده‌های کم قابلیت Full text Search بسیار کند و زمان بر‌تر از جست و جوهای پایه نظیر استفاده از Like می‌باشد و زمانی که حجم داده‌ها زیاد می‌باشد باید از قابلیت  Full text Search استفاده شود

4- خروجی جست وجوی Full Text Search و جست و جوی معمولی برای داده‌های زیاد یکسان نمی‌باشد ، کافی است در یک دیتا بیس با حجم بالای داده‌ها جست و جو را با هر دو روش انجام دهید ، آن وقت خواهید دید که جست و جوی سنتی (نظیر استفاده از دستور  LIKE) بسییار دقیق‌تر می‌باشد و تمامی اطلاعات خواسته شده را درست بر خواهد گرداند، امام با استفاده از Full Text Search این اطلاعات کامل نمی‌باشد! کافی است خودتان امتحان کنید 

نظرات مطالب
اجرای وظایف زمان بندی شده با Quartz.NET - قسمت دوم
البته نگفتید که منظورتون desktop یا وب هست، با این فرض که در مورد desktop می‌پرسید، یکی از روش‌ها اینه که یک متغیر عمومی تعریف کنید که ارجاعی به فرمی که قرار هست آپدیت باشه داشته باشه:
using System.Windows.Forms;

public static class GlobalData
{
    public static Form ScheduleForm { get; set; }
}
در سازنده‌ی فرم می‌تونید اون رو به فرم جاری مقداردهی کنید:
GlobalData.ScheduleForm = this;
با این فرض که قرار هست عنوان یک دکمه در فرم با نام myButton به My Text تغییر کنه، کلاس پیاده ساز اینترفیس IJob به صورت زیر خواهد بود.
namespace SchedulerDemo.Jobs
{
    using System.Linq;
    using System.Windows.Forms;
    using Quartz;

    public class HelloJob : IJob
    {
        private delegate void ButtonTextWriter(string buttonId, string text);
        
        MainForm form = GlobalData.ScheduleForm as MainForm;

        private void SetButtonText(string buttonId, string text)
        {
            (form.Controls.Find(buttonId, true).FirstOrDefault() as Button).Text = text;
        }

        public void Execute(IJobExecutionContext context)
        {
            form.BeginInvoke(new ButtonTextWriter(SetButtonText), new object[] { "myButton", "My Text" });
        }
    }
}

اشتراک‌ها
ASP.NET Core .NET 5 Preview 8 منتشر شد

Here’s what’s new in this release:

  • Azure Active Directory authentication with Microsoft.Identity.Web
  • CSS isolation for Blazor components
  • Lazy loading in Blazor WebAssembly
  • Updated Blazor WebAssembly globalization support
  • New InputRadio Blazor component
  • Set UI focus in Blazor apps
  • Influencing the HTML head in Blazor apps
  • IAsyncDisposable for Blazor components
  • Control Blazor component instantiation
  • Protected browser storage
  • Model binding and validation with C# 9 record types
  • Improvements to DynamicRouteValueTransformer 
  • Auto refresh with dotnet watch 
  • Console Logger Formatter
  • JSON Console Logger 
ASP.NET Core .NET 5 Preview 8 منتشر شد
مطالب
Arrow Functions در ES6
توابع Arrow در خیلی از زبان‌های سطح بالا مثل #C و Java8 وجود دارد. حال این امکان به جاوااسکریپت نیز اضافه شده‌است که syntax ایی مشابه lambda expression در سی شارپ دارد. در این مقاله سعی بر معرفی تابع arrow در جاوا اسکریپت داریم و خواهیم گفت که به منظور خلاصه کردن سینتکس و اشتراک گذاری this نحوی با قلمروی والد خود بکار می‌روند. اجازه دهید تا به هر کدام از آنها به صورت جزیی‌تر بپردازیم.

یک سینتکس جدید برای توابع

Arrow Functions راه میانبری را برای نوشتن توابع بی نام (anonymous functions) در جاوا اسکریپت ارایه می‌کنند و در خیلی از قسمت‌ها با هم یکی هستند ولی با کد نویسی کمتر. به این مثال که در ES5 احتمالا دیده‌اید توجه کنید:
var myFunction = function(arg) {
    return arg.toUpperCase(); 
};
حالا آن را می‌توان به سادگی در ES6 نوشت:
var myFunction = (arg) => arg.toUpperCase();
کجا از Arrow Functions استفاده کنیم؟
به طور معمول Arrow Functions‌ها برای پاس دادن یک تابع بی نام به تابعی دیگر استفاده می‌شوند. برای مثال می‌توان به توابع filter و map اشاره کرد. به مثال زیر توجه کنید. 
var digits = [1,2,3,4,5,6];
var even = digits.filter( x => x%2 === 0); // فیلتر بر اساس یک شرط
var evenSquares = even.map( x => x*x ); 
console.log(even, evenSquares);
//[2,4,6] [4,16,36]
نکات مهمی که باید به آنها توجه شود:
  • توابع arrow زمانیکه داخل بدنه‌ی آنها بیش از یک عبارت قرار گیرد لازم است که به طور صریح از کلید واژه return استفاده شود.
  • برای برگشت یک شیء خالی باید از سینتکس زیر استفاده کنیم:
const emptyObject = () => {};
emptyObject(); // ? در این حالت یک باگ به حساب می‌آید

//باید دقت شود که اکولاد‌ها را در بین پرانتز‌ها قرار دهیم تا تابع به درستی کار کند

const emptyObject = () => ({});
emptyObject(); // {}
  • تمامی ویژگی‌هایی را که برای پارمترها گفته شد، می‌توان برای توابع arrow بکار برد.
function () { return arguments[0]; }
(...args) => args[0]
توابع arrow سازنده نیستند. به این معنا که نمی توان عملکرد new را روی آن‌ها بکار برد. به عبارتی دیگر، نوشتن کد زیر به شما خطا خواهد داد.
let NotGood = () => {};
let wontWork = new NotGood();

this لکسیکال (lexical) یا نحوی

یکی از مشکلات موجود در ES5 مساله this در توابع است. به طور پیش فرض this در یک تابع به محیط فعلی آن تابع اشاره می‌کند. ولی زمانیکه می‌خواهید از this در توابعی که به تابعی دیگر داده شده‌اند استفاده کنیم دو حالت داریم. اگر از strict مد جاوا اسکریپت استفاده کنیم ("use strict;") آنگاه this مقدار undefined خواهد داشت و در غیر این صورت this به محیط global اشاره می‌کند که این یک مشکل در ES5 است! به مثال زیر توجه کنید:
$('.current-time').each(function () {
  setInterval(function () {
    $(this).text(Date.now());
  }, 1000);
});

که برنامه نویسان از راه حل زیر استفاده می‌کنند.
$('.current-time').each(function () {
  var self = this;
 
  setInterval(function () {
    $(self).text(Date.now());
  }, 1000);
});
یا به این صورت:
$('.current-time').each(function () { 
  setInterval(function () {
    $(this).text(Date.now());
  }.bind(this), 1000);
});

ولی حال در ES6 به راحتی می‌توان این مشکل را با خود تابع arrow حل کرد؛ به صورت زیر:
$('.current-time').each(function () {
  setInterval(() => $(this).text(Date.now()), 1000);
});
و این مورد به دلیل این است که this در توابع arrow یک this نحوی است و به همان ترتیبی که تابع در کد قرار می‌گیرد آن this به محیط تابع فعلی اشاره می‌کند و این تغییر مهمی است که خیلی از دردسر‌ها را کم می‌کند.