نظرات مطالب
EF Code First #11
و فکر می کنم یک دلیل مهم برای ایجاد انتزاعی (Abstraction) به نام Service پیش بینی همچین مهاجرتی هست. من Service رو لایه BLL نمیدونم (شخصا و طبق تحلیل و تجربه خودم؛ درست و غلطش رو نمیدونم) بلکه یه لایه واسط بین BLL و DAL میدونم. به این ترتیب همیشه یه DAL کاملا مستقل و منتزع از بقیه برنامه دارم. هر وقت خواستم از EF به NH برم -یا تجربه واقعی تر این که اگه خواستم به یه تکنولوژی جدیدتر کوچ کنم- کافیه لایه DAL جدیدم رو بنویسم و فقط نحوه دسترسی در سرویس تغییر میکنه. پس باز هم انتزاع مورد نیاز رو دارم.
اما در مورد UoW خوب باز هم طبق تجربه حتی با وجود DbContext (و Session در NH) فکر میکنم وجودش خیلی مفیده. مثلا تو برنامه های وب UoWم رو برپایه HttpModule قرار میدم و موقع Dispose شدن ماژول، تغییرات رو ذخیره میکنم.
در مورد M در MVC کاملا با آقای نصیری موافقم. این بحثو مدتی پیش با یه دوستی هم داشتیم که زیر بار نرفت. مثالی که اونجا زدم اینجا میزارم، فکر کنم مفیده.
فکر کنید شیئی به نام Member دارید با مثلا 20 پراپرتی. و این 20 خاصیت، در 5 ویوی مختلف نمایش داده میشن. یعنی یه ویو 6 تا، یه ویو 3 تا و همینطور تا آخر. خوب عاقلانه نیست که وقتی که به هر 20 خاصیت نیاز نداریم، همشو واکشی کنیم. پس دو تا راه داریم. یا باید اون 3 4 تا خاصیتی که نیاز داریم رو جداگانه (مثلا تو یه Tuple یا Anon یا حتی متغیرهای منحصر) واکشی کنیم و در اختیار ویو بذاریم؛ یا بیایم و یه ساختمون (class یا struct) تعریف کنیم مخصوص اون 3 4 تا پراپرتی. خوب من روش دوم رو ترجیح میدم که همون view-model های منو میسازه. یا نمایی رو در نظر بگیرید که لازمه از ترکیبی از دو یا چند مدل داده استفاده کنه. تو همون مثال Member، فرض کنید نمایی هست که نام کاربری و نام و نام خانوادگی رو از Member و تعداد ارسال ها رو از Comments و آخرین فعالیت رو از MemberActivitis و آدرس ایمیل عمومی رو از AuthTokens میخونه! چه میکنید؟

ضمنا به فلسفه وجودی مثلا AutoMapper هم فکر کنیم.
مطالب
پردازش فایل‌های 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 و امثال آن) فقط به سایت جاری و دومین جاری باید ختم شوند در غیر اینصورت توسط مرورگرهای جدید متوقف خواهند شد.

نظرات اشتراک‌ها
نحوه انتقال از Gmail به Outlook.com
سلام
در شرایط فعلی که قرار است گوگل فیلتر شود، گزینه بسیار مناسبیست.
در این شرایط برای فید خوانی چه گزینه جایگزینی وجود دارد؟(شما از چی استفاده میکنید)
امیدوارم سوالم زیاد نامربوط نباشد
نظرات اشتراک‌ها
دریافت نصاب آفلاین Visual Studio 2012 نسخه Ultimate
نسخه RTM آن یک ماه قبل منتشر شد (در اکثر سایت‌ها هست یا نسخه تورنت آن هم موجود است) و با این نگارش هیچ تفاوتی ندارد. بگردید نسخه RTM را دانلود کنید که محدودیتی ندارد.
برای جستجو این هش را در گوگل بررسی کنید.

اشتراک‌ها
برتری کوانتومی گوگل

گوگل موفق شده اولین کامپیوتر کوانتومی جهان را بسازد که یک انقلاب بزرگ در تکنولوژی محسوب می‌شود. عملیات پردازشی که برای قوی‌ترین ابررایانه فعلی ده‌هزارسال طول می‌کشد، با این کامپیوتر در عرض ۲۰۰ ثانیه قابل انجام است!

برتری کوانتومی گوگل
اشتراک‌ها
سیاست "پرداخت ناعادلانه" در شرکت گوگل

در شرکت گوگل، ممکن است دو نیرو در یک پست و در یک واحد، حقوق و پاداش متفاوت‌تری بعضا تا 100 درصد دریافت کنن. در این مقاله به توضیح این سیاست مدیریتی و علت اتخاذ آن پرداخته شده است.

سیاست "پرداخت ناعادلانه" در شرکت گوگل
اشتراک‌ها
دریافت کتابخانه های جاوا

منبعی بزرگ از فایل‌های باینری جاوا که میتوانید در برنامه‌های اندرویدی به صورت وابستگی maven استفاده کنید یا اینکه فایل باینری خود را در آن به به اشتراک بگذارید.

کتابخانه jcenter گوگل نیز بر روی این سایت قرار دارد

دریافت کتابخانه های جاوا
نظرات مطالب
غیرمعتبر کردن توکن و یا کوکی سرقت شده در برنامه‌های مبتنی بر ASP.NET Core

یک نکته‌ی تکمیلی: گوگل برای مواجه شدن با یک چنین مشکلاتی،‌ در حال پیاده سازی «device bound sessions» است. همچنین نحوه‌ی رمزنگاری اطلاعات کوکی‌های کروم نیز در ویندوز به‌روز خواهد شد و دیگر صرفا از API خود ویندوز استفاده نمی‌کنند.

نظرات مطالب
تبدیل زیرنویس‌های خاص پلورال‌سایت به فرمت SRT - قسمت دوم
- در متد runDownloadTask همان کلاس، encoding دریافت را هم مشخص کنید:
using (var webClient = new WebClient { Encoding = Encoding.UTF8 })
- البته ترجمه فارسی آن ماشینی و به احتمال زیاد توسط مترجم آنلاین گوگل انجام شده و ... فاقد ارزش است.
نظرات مطالب
استفاده از Froala WYSIWYG Editor در ASP.NET
مشکل این ادیتور یا افزونه‌ی نوشته شده نیست. اگر از یک فشرده کننده HTML استفاده می‌کنید، ممکن است خطوط جدید را حذف کرده باشد. برای مثال این مورد در «بلاگر» گوگل مرسوم است. راه حل آن:
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
برای مطالعه بیشتر