بعد از مدت زیادی دوری از بلاگ نویسی و دهها مقالهای که قصد نوشتنش بود و نوشته نشد، تصمیم گرفتم با این مقاله مجددا شروع به نوشتن کنم. دلیل انتخاب این موضوع مدتی درگیری کاری با این موضوع[1] و بسته بودن اطلاعات و منابع مربوط و همینطور عدم وجود مقاله فارسی در موردش هست. در مقالات بعدی، در مورد روشهای مخفی نگاری، روشهای محاسبه Hash و کلا اطلاعات جانبی مورد نیاز جهت ایجاد پیامهای مناسب این استاندارد نیز صحبت خواهد شد.
استاندارد ISO 8583 توسط سازمان بینالمللی استانداردسازی (International Organization for Standardization) به عنوان استانداردی جهت انتقال اطلاعات مالیِ مبتنی بر کارت تعریف شده. این استاندارد دارای دو نسخه دیگر (نسخه های 1993 و 2003) نیز هست که در برخی تعاریف متفاوتند.
بطور کلی امکان دارد تراکنشهای مبتنی بر کارت از چندین سختافزار/لایه مختلف عبور کنند. به عنوان مثال تراکنشهایی که از طریق POS (کارتخوان) یا ATM (خودپرداز) یا از طریق شرکتهای ثالث (بوسیله ارتباط با سوئیچ بانکی) انجام میپذیرد، باید به سیستمی منتقل شود که اطلاعات تراکنش را مورد ارزیابی و پردازش قرار دهد. استاندارد ISO 8583، روشی برای انتقال این اطلاعات بین دستگاههای مختلف است.
به عنوان مثال، در یک تراکنشِ دریافت مانده کارت، این استاندارد مشخص میکند اطلاعات مربوط به این تراکنش، مثل شماره کارت، رمز، نوع درخواست و … به چه شکلی بین لایههای ارتباطی منتقل میشود. بیشتر...
c5582dea-0351-47e8-a998-d2b640ee4c6d|1|5.0|27604f05-86ad-47ef-9e05-950bb762570c
در مقاله قبلی در مورد نحوه های فراخوانی relation ها در Entity Framework نسخه 4.1 صحبت کردم.
در این مقاله، دو متد را برای راحتتر شدن فراخوانی relation ها به روش Explicit Loading معرفی خواهم کرد.
مشاهده کردید که برای استفاده از روش Explicit Loading، باید به صورت زیر عمل می شد: بیشتر...
ff414306-6efc-4993-b236-97292980f888|3|4.7|27604f05-86ad-47ef-9e05-950bb762570c
قصد داشتم مقاله نسبتا جامعی در مورد استفاده از روش Code-First در Entity Framework منتشر کنم که متاسفانه فعلا کمبود وقت مانع تکمیلش شده.
در این مقاله در مورد نحوه Load کردن اشیاء مرتبط با یک شیء (Related Entity Objects) در Entity Framework صحبت شده.
مثال ساده زیر را در نظر بگیرید: بیشتر...
e62e0a77-1c82-4f44-bb35-3d8ec6221271|3|4.3|27604f05-86ad-47ef-9e05-950bb762570c
مدتی پیش، در شرکت برنامه ای را توسعه می دادیم که قرار بود به کاربر نهایی این اجازه را دهد که مستقیما کدی را داخل برنامه نوشته و اجرا کند.
این قطعه کد قبلا توسط شخصی نوشته شده بود و ما فقط از آن استفاده کردیم و متاسفانه دسترسی ای به سورس نداشتم. اما لذت فهم این مساله، باعث شد پروژه مشابهی بنویسم.

پروژه پیوست این مقاله، حاوی یک کتابخانه dll برای compile کردن کد #C و پروژه Winforms نمونه ای برای نمایش نحوه استفاده از این کتابخانه هست.
اضافه می کنم برای Visual Basic، می توانید از Microsoft.VisualBasic Namespace و برای JScript، از Microsoft.JScript Namespace استفاده کنید. اما توضیحات کار: بیشتر...
a0339953-8535-4ab2-b46d-4fa851a61ca5|5|3.8|27604f05-86ad-47ef-9e05-950bb762570c
با استفاده از الگوی طراحی Repository، شما می توانید لایه ای بین DAL (مخفف Data Access Layer) و BLL (مخفف Business Logic Layer) ایجاد کنید. این مساله می تواند به شما کمک کند تا هنگام تغییر دیتابیس، کمترین تغییرات را در کد خود داشته باشد.
در الگوی طراحی Generic Repository، شما به جای تعریف یک Repository برای هر Entity، اقدام به تعریف یک Repository عمومی برای تمام Enitity هایتان می کنید.
ساختار نهایی Reference های پروژه های این مقاله به شکل زیر است (A->B یعنی پروژه A به پروژه B یک Reference دارد.)
BusinessObjects => X
DAL (Data Access Layer) => BusinessObjects
BLL (Business Logic Layer) => DAL, BusinessObjects
WebApplication (UI) => BLL, BusinessObjects
پروژه ای که من در اینجا پیاده سازی خواهم کرد، نمونه ساده شده پروژه ای است که آقای Huyrua، در این آدرس معرفی کردند. بیشتر...
f8fba4eb-a62b-4ba0-99a4-fd4bd7b8e7f8|6|4.3|27604f05-86ad-47ef-9e05-950bb762570c
پروسه Debug کردن یک نرم افزار، بیشتر به یک Flow یا جریان شبیه هست. به این معنی که شما پله به پله، بر اساس مسیر اجرا، در کد به جلو می روید. یکی از مواردی که همیشه در Wish list من بود، نوعی روش debug بود که به شکل بهتری، روند اجرای کد را تعقیب کند و یک تصویر دیاگرامی از کد در حال اجرا در زمان debug را در اختیار برنامه نویس قرار دهد.
خوشبختانه بخش توسعه مایکروسافت با همکاری Brown University، ابزاری به نام Debugger Canvas را برای کاربران Visual Sudio 2010 Ultimate مهیا کرده اند که دقیقا همین کار را انجام می دهد. بیشتر...
dc8577cf-f2a2-4fff-b045-f98c800de375|2|4.0|27604f05-86ad-47ef-9e05-950bb762570c
اول باید اشاره کنم که علیرغم رجحان خودم، تصمیم گرفتم مطالب بلاگ را با ادبیات رسمی بنویسم تا مترجم ها قادر به ترجمه مقالات باشند.
مواقع بسیار زیادی پیش آمده که نیاز پیدا کردم مقدار Attribute یک شیء (مخصوصا enum) را دریافت کنم. تقریبا همیشه با هدف نمایش به کاربر.
مثلا پروژه ای بود که در آن باید به کاربر امکان فیلتر کردن اطلاعات را می دادیم. برای این کار، کاربر باید از بین عملگرها، یکی را انتخاب می کرد. برای این کار، enum زیر را تعریف کردیم:
public enum Operands
{
[Description("شامل ")]
Like,
[Description("مساوی باشد با ")]
Equal,
[Description("مخالف باشد با ")]
Not,
[Description("بزرگتر باشد از ")]
GreaterThan,
[Description("کوچکتر باشد از ")]
LessThan
}
در مرحله بعد، باید این توضیحات را به کاربر نشان دهیم و هنگام انتخاب، از روی مورد انتخاب شده، متوجه می شویم که مورد انتخاب شده مربوط به کدام enum هست. در تصاویر زیر، هدف نهایی ما از این مقاله نشان داده شده. کنترل DropDownList، مقادیر Description مربوط به enum را نشان می دهد (تصویر 1) و بعد از انتخاب کاربر، مقدار Description و مقدار enum value مربوطه را مشاهده می کنیم. این پروژه را در انتهای این صفحه دانلود کنید.بیشتر...
644c5706-acec-44a1-af76-75fde49f5882|2|5.0|27604f05-86ad-47ef-9e05-950bb762570c
با معرفی Entity Framework 4.1، مایکروسافت قدم مهمی در نزدیک شدن به خواسته های برنامه نویسان برداشت. یکی از مهمترین دغدغه های برنامه نویسان در استفاده از Entity Framework، مساله ایجاد کلاسهای POCO خالص بود. یعنی کلاسهایی کاملا ساده برای انتقال اطلاعات بین لایه های مختلف (DTO).
شاید مهمترین تفاوت بین نسخه 4.1 و 4 اضافه شدن رویکرد Code-Frist باشه. روشی که در اون، برنامه نویس بدون داشتن دیتابیس، ابتدا کلاسهای خود رو تولید می کنه و Entity Framework، زحمت ایجاد دیتابیس رو برای اون می کشه. مزیت مهم دیگه استفاده از این روش، امکان استفاده از System.ComponentModel.DataAnnotations هست که باعث میشه کار Validation فوق العاده راحت تر بشه.
البته توجه داشته باشید اگر نیاز پیدا کردید که با WCF RIA Services کار کنید، طبق گفته آقای Jeff Handley (عضو ارشد تیم توسعه WCF RIA Services)، باید تا تابستان صبر کنید.
اما معرفی EF Power Tools: بیشتر...
f6f506c8-efcd-486e-9768-21cb83ae6da2|2|4.0|27604f05-86ad-47ef-9e05-950bb762570c
برای پروژه های تحت Visual Studio 2010 که سیستم کنترل ورژن اونها، از نوع Mercurial هست، میتونید فایل hgIgnore. رو باز کنید و متن زیر رو جایگزین متن کنونیش کنید تا فایلهای اضافه ای در سیستم کنترل ورژن شما قرار نگیرند.بیشتر...
db255ae5-e9ce-4430-a10f-1469afc019b7|1|2.0|27604f05-86ad-47ef-9e05-950bb762570c
امروزه تقریبا هر پروژه حتی نسبتا کوچکی هم از یک سیستم کنترل ورژن بهره می بره. مدت ها بود که از سیستم SVN برای کنترل ورژن برنامه هام استفاده می کردم و خیلی از عملکردش هم راضی بودم. اما مدتی پیش که با سیستم Mercurial آشنا شدم، خیلی سریع با چند دقیقه مطالعه قانع شدم که با این سیستم خیلی راحتتر و تمیزتر می تونم روی برنامه هام کنترل داشته باشم.بیشتر...
7f742509-900e-4464-9364-e4bdd6ffec5e|2|2.5|27604f05-86ad-47ef-9e05-950bb762570c