عکس خرید فروش

Cache – قسمت دوم : Caching Data in the Architecture

نوشته شده توسط بهزاد عبدالله زاده
  

دریافت مقاله به صورت فایل PDF 

 

Download the code for this tutorial

 

Download this tutorial in PDF format

 

کش
کردن داده ها :

 

در
مقاله قبلی ما
یاد گرفتیم که
چگونه در لایه
presentation
بتوانیم
اطلاعات را کش
کنیم. در این
مقاله ما یاد
خواهیم گرفت
که چگونه می
توان یک لایه
برای کش کردن
داده ها به
برنامه
هایمان اضافه
نماییم.

 

مقدمه
:

 

همانطور
که در مقاله
گذشته نشان داده
شد، کش کردن داده
ها بوسیله ObjectDataSource تنها
با تنظیم کردن
مجموعه ای از property ها
قابل پیاده
سازی است.  متاسفانه
این کنترل کش
کردن داده ها را
در لایه presentation
انجام می دهد
، و طبق صحبت
هایی که در
مقاله اول از
این سری مقالات
صحبت شد، در
توسعه نرم
افزار و
انعطلف پذیری
آن خوب عمل
نمی کند و
بهتر است که
لایه جدیدی
برای این
منظور در نظر
گرفته شود.

برای
مثال لایه Business Logic
، قوانین
تجاری را از
صفحات ASP.NET  جدا
می کند ، در
حالی که لایه Data Access جزئیات
دسترسی به
داده ها را
جدا می کند. این
جداسازی ها
بسیارخوب
هستند زیرا باعث
افزایش
خوانایی ،
نگهداری ،
انعطاف پذیری
برنامه ها در
مقابل تغییرات
می شود. سیاست
جدا سازی لایه
presentation از caching نیز به
خاطر همین
دلایل است.

در
این مقاله ما
به معماری
قبلیمان لایه
جدیدی بنام Caching Layer  ( یا به طور
خلاصه CL ( که تمامی
عملیات کش
کردن اطلاعات
را مدیریت می
کند ، اضافه
خواهیم کرد. این
لایه شامل
کلاسی بنام ProductsCL که شرایط
مورد نیاز
برای دسترسی
به اطلاعات product
را بوسیله
متدهایی
همچونGetProduct(), GetProductsByCategoryID(categoryID) فراهم می
کند . این
متدها در
ابتدا تلاش می
کنند که
اطلاعات را از
cache استخراج
کنند . اگر cache  خالی
باشد، متدهای
مناسبی را از
لایه ProductBLL
فراخوانی
خواهند کرد.
در نهایت
متدهای کلاس ProductBLL دادهای
استخراج شده
را قبل از
برگرداندن ،
کش خواهند
کزد.

همانطور
که شکل ۱ نشان
می دهد ، CL (Cache Layer)
مابین لایه
های Presentation و Business Logic قرار می
گیرد.


 

 

گام
۱ : تولید کلاس
های Caching Layer

 

در
این مقاله ما
یک لایه کش
بسیار ساده که
تنها شامل کلاس
ProductBL است
را تولید
خواهیم کرد.
ایجاد یک لایه
کش کامل برای
تمام پروژه
ممکن است شامل
ایجاد کلاس های
CategoriesCL, EmployeedCL
و SuppliersCL
و همچنین
تولید متدی در
کلاس های این
لایه برای
دسترسی به
داده باشد .
همچون لایه
های BLL
و DAL
، این لایه
نیز بهتر است
که به عنوان
یک Class Library
Project جدا باشد.
ما دراین جا
آن را در پوشه App_Code
بصورت یک کلاس
پیاده سازی
خواهیم کرد.

برای
اینکه جدا
بودن کلاس های
CL را
از دیگر کلاس
های DAL
و BLL  مشخص
تر باشد ،
اجازه دهید تا
یک زیر پوشه
بنام CL
 در App_Code
بصورت زیر
ایجاد کنیم و
در نهایت در
آن کلاسی بنام
ProductsCL.cs
قرار می دهیم.

 

 

 

این
کلاس باید
شامل مجوعه
متدهایی
مشابه در کلاس
Business Logic
Layer یعنی ProductBLL باشد. ما
متدهای GetProducts() و GetProductsByCategoryID(categoryID) را در گام ۳ و
یک متد UpdateProduct در
گام ۴ ایجاد
خواهیم کرد. شما
می توانید
دیگر متدهای ProductsCL و کلاس های CategoriesCL, EmployeesCL و SuppliersCL را
خودتان ایجاد
نمایید.

 

 

گام
دوم : خواندن و
نوشتن در داخل
کش

 

داده کش
شده می تواند
بصورت برنامه
نویسی از داخل
کدهای یک صفحه
و یا از دیگر
کلاس های یک
پروژه ASP.NET  مورد
دسترسی قرار
گیرد. برای
خواندن یا
نوشتن از داده
های کش شده از
داخل کد صفحه
می توان از الگوی
زیر استفاده
کرد :

 

 

 

متد insert
کلاس Cache
چند حالت overload شده
دارد. دو حالت Cache[“Key”]=Value و Cache.Insert(Key, Value)
برای اضافه
کردن یک آیتم
به کش با
استفاده از یک
کلید تعیین
شده و بدون
تعیین زمان expire
بکار می روند.
معمولا ، ما
در مورد کش ها
تمایل داریم
که یک زمانی
را برای expire  شدن (
براساس dependency و یا
براساس زمان)
در نظر بگیریم
که دو حالت
بعدی متد Insert این شرایط
را فراهم می
کنند.

متدهایی
که در لایه کش
بکار می روند
ابتدا چک می
کنند که آیا
داده درخواست
شده در داخل
کش وجود دارد یا
خیر. اگر داده
درخواست شده
در کش موجود
نباشد، متد
مناسبی را از لایه
BLL
فراخوانی
میکند. سپس
مقدار بدست
آمده کش می شود
و در نهایت آن
را به خروجی
ارسال می کند.
نمودار sequence این
فرایند بشرح
زیر می باشد:

 

 

نمودار sequence فرایند
بدست آوردن
داده از لایه
کش

 

نمودار
sequence نشان داده
شده در بالا
در کلاس های CL
با استفاده از
الگوی زیر
کامل می شود :

 

 

 

در
این جا، Type ، نوع
داده ذخیره
شده در کش است .
اگر یک آیتم
با کلید مشخصی
کش نشده باشد،
مقدار آن
برابر null
خواهد بود و
مقدار آن باید
از متد مناسبی
از لایه BLL
استخراج و به
کش اضافه شود. حتما
مطمئن باشید
که که از
الگوی بالا در
زمان استفاده
از کش ها
استفاده کنید.

 

نکته : کش داده thread-safe است
، بنابراین
شما نیازی به
همزمان سازی (Synchronize)
دسترسی داده
برای خواندن و
نوشتن ندارید
. در هر حال ،
اگر شما نیاز
دارید که چند
عملیات را
بصورت همزمان
بر روی داده
ها در کش ، بصورت
اتومیک انجام
دهید ، باید
از یک سری از
روش ها همچون
پیاده سازی
قفل ها استفاده
نمایید . برای
اطلاعات
بیشتر به Synchronizing Access to the ASP.NET Cache مراجعه
نمایید.

 

یک
آیتم را شما
می توانید
بصورت برنامه
نویسی از کش
با استفاده از
متد Remove
بصورت زیر حذف
نمایید:

 

 

 

 

گام
۳ : بازیابی
اطلاعات
محصولات از
کلاس ProductsCL

 

در این
مقاله ما دو
متد برای
استخراج داده
های بدست آمده
از کلاس ProductCL بنام
های:  GetProducts()
و GetProductsByCategoryID(categoryID)
پیاده سازی
خواهیم کرد. هدف
از متد GetProduct() بازیابی
تمامی
محصولات است ،
در حالیکه GetProductByCategoryID(categoryID)
تمامی
محصولات
مربوط به یک
گروه خاص را
بر می گرداند.

 

کدهای
زیر قسمتی از
متدهای داخل
کلاس ProductCL
را نشان می
دهد:



 

iconبرای دانلود کلیک کنید

icon برچسب ها: , , ,
  • نوشته: admin
  • تاریخ: ۱۷ دی ۱۳۹۰
  • دیدگاه‌ها خاموش
  • کوروش دوم

    نویسنده: نا مشخص

    کوروش دوم

     

    iconبرای دانلود کلیک کنید

    icon برچسب ها: ,
  • نوشته: admin
  • تاریخ: ۱۳ تیر ۱۳۹۰
  • دیدگاه‌ها خاموش
  • گذاشتن پسورد دوم بر روی ویندوز ایکس پی

    نویسنده: مهدی

    گذاشتن پسورد دوم بر روی ویندوز ایکس پی

     

    iconبرای دانلود کلیک کنید

    icon برچسب ها: , , , ,
  • نوشته: admin
  • تاریخ: ۲۴ اردیبهشت ۱۳۹۰
  • دیدگاه‌ها خاموش
  • شوخی‌های کامپیوتری – قسمت دوم


    شوخی‌های کامپیوتری
    قسمت دوم

     

    iconبرای دانلود کلیک کنید

    icon برچسب ها: , , ,
  • نوشته: admin
  • تاریخ: ۲۲ اردیبهشت ۱۳۹۰
  • دیدگاه‌ها خاموش
  • دانلود نسخه دوم نرم افزار زیارت آنلاین Ziarate Online v2.0

    نسخه دوم نرم افزار زیارت آنلاین توسط سایت شیعه ها طراحی و ساخته شده است و به صورت کاملا رایگان در اختیار شما قرار می گیرد. قابلیت های این نسخه مشاهده حرم های مطهر ائمه می باشد که شما می توانید بدون مراجعه به سایت از این نرم افزار به صورت آنلاین مشاهده و زیارت نمایید. همچنین ویژگی های جدیدی نسبت به نسخه قبلی در این نسخه اضافه شده است که در ادامه میتوانید آنها را مشاهده کنید. هم اکنون میتوانید این نرم افزار کم حجم را از سایت داوود آنلاین دریافت نمایید…
    .

    دانلود نسخه دوم نرم افزار زیارت آنلاین Ziarate Online v2.0

     

    iconبرای دانلود کلیک کنید

    icon برچسب ها: , , , ,
  • نوشته: admin
  • تاریخ: ۸ فروردین ۱۳۹۰
  • دیدگاه‌ها خاموش
  • اس ام اس تبریک عید مبعث ( سری دوم )

    اس ام اس تبریک عید مبعث ( سری دوم )

    http://davoodonline.com

    اس ام اس تبریک عید مبعث ( سری دوم )

     

    iconبرای دانلود کلیک کنید

    icon برچسب ها: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
  • نوشته: admin
  • تاریخ: ۴ بهمن ۱۳۸۹
  • دیدگاه‌ها خاموش
  • دانلود نسخه دوم نرم افزار زیارت آنلاین Ziarate Online v2.0

    نسخه دوم نرم افزار زیارت آنلاین توسط سایت شیعه ها طراحی و ساخته شده است و به صورت کاملا رایگان در اختیار شما قرار می گیرد. قابلیت های این نسخه مشاهده حرم های مطهر ائمه می باشد که شما می توانید بدون مراجعه به سایت از این نرم افزار به صورت آنلاین مشاهده و زیارت نمایید. همچنین ویژگی های جدیدی نسبت به نسخه قبلی در این نسخه اضافه شده است که در ادامه میتوانید آنها را مشاهده کنید. هم اکنون میتوانید این نرم افزار کم حجم را از سایت داوود آنلاین دریافت نمایید…
    .

    دانلود نسخه دوم نرم افزار زیارت آنلاین Ziarate Online v2.0

     

    iconبرای دانلود کلیک کنید

    icon برچسب ها: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
  • نوشته: admin
  • تاریخ: ۲۷ آذر ۱۳۸۹
  • دیدگاه‌ها خاموش
  • دانلود کلیپ تقلید صدا در عید فطر – قسمت دوم

    دانلود قسمت دوم تقلید صدا که مربوط به تقلید صدای عادل فردوسی پور,علی دایی و گزارش است که واقعا” زیباست و با فرمت ۳gp موبایل این تقلید صدا آماده دانلود شده است .

    دانلود کلیپ تقلید صدا در عید فطر – قسمت دوم

     

    iconبرای دانلود کلیک کنید

    icon برچسب ها: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
  • نوشته: admin
  • تاریخ: ۱۴ آذر ۱۳۸۹
  • دیدگاه‌ها خاموش
  • کاترین دوم امپراتریس روسیه شد

    کاترین دوم امپراتریس روسیه شد

     

    iconبرای دانلود کلیک کنید

    icon برچسب ها: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
  • نوشته: admin
  • تاریخ: ۲۹ مهر ۱۳۸۹
  • دیدگاه‌ها خاموش
  • مذاکره با برنده دوم مزایده اپراتور سوم ادامه دارد


    چهارشنبه، ۳ تیرماه ۱۳۸۸

    معاون سازمان تنظیم مقررات و ارتباطات رادیویی درباره مزایده اپراتور سوم تلفن همراه و در پاسخ به این سوال که آیا امکان برگزاری مجدد این مزایده وجود دارد؟ گفت: همه چیز ممکن است و شاید بعد از مذاکرات و بررسی‌های لازم به این نتیجه برسیم که یک بار دیگر این مزایده را برگزار کنیم.

     

    iconبرای دانلود کلیک کنید

    icon برچسب ها: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
  • نوشته: admin
  • تاریخ: ۱۱ مهر ۱۳۸۹
  • دیدگاه‌ها خاموش