مفاهيم اوليه Caching
Caching از جمله واژه های كاملا” آشنا در عرصه فناوری اطلاعات و ارتباطات است . اين واژه ريشه فرانسوی‌ دارد و به معنی ذخيره سازی است . در دنيای پردازش اطلاعات ، به ذخيره اطلاعات برای استفاده آتی اطلاق می گردد .در واقع ، Caching فرآيندی است كه بر اساس آن داده با فركانس استفاده بالا به منظور پاسخ به درخواست های بعدی ذخيره می گردد. اطلاعات ذخيره شده ممكن است در آينده مجددا” استفاده گردند و يا اين احتمال وجود خواهد داشت كه هرگز شرايط استفاده مجدد از آنها فراهم نگردد .  بنابراين Cache صرفا” زمانی مفيد خواهد بود  كه هزينه ذخيره اطلاعات كمتر از هزينه بازيابی و يا محاسبه مجدد آنها باشد .
امروزه از مفهوم Caching در زمينه های متعددی در سيستم های كامپيوتری و شبكه ای استفاده می گردد . پردازنده های كامپيوتر دارای cache اختصاصی برای داده و دستورالعمل ها می باشند . سيستم های عامل دارای بافرهای cache برای سيستم های فايل و درايوها می باشند . سيستم های فايل توزيع شده ( شبكه ای ) نظير NFS ( برگرفته شده از network file system )  و AFS ( برگرفته شده از  Andrew File System ) برای بهبود كارآئی خود از cache استفاده می نمايند . روترهای بكارگرفته شده در ستون فقرات شبكه اينترنت مسيرهائی را كه اخيرا” از آنها استفاده كرده اند ، cache می نمايند . سرويس دهندگان  DNS  ، ماحصل فرآيند ترجمه نام به آدرس را جهت استفاد آتی cache می نمايند .
برنامه های كامپيوتری خصوصا” برنامه های وب نيز از اين فناوری در ابعاد گسترده ای استفاده می نمايند تا بتوانند با سرعت بيشتر پاسخگوی نياز كاربران و مخاطبان خود باشند . به عنوان نمونه ، مرورگر با ارائه پتانسل های لازم سمت سرويس گيرنده امكان caching متن و يا تصاوير را فر اهم می نمايد و در سمت سرويس دهنده با استفاده از امكانات متعددی می توان بهترين گزينه caching را به منظور افزايش كارائی انتخاب كرد.
در صورتی كه از روش هائی مناسب به منظور پياده سازی سيستم Caching در برنامه های كامپيوتری استفاده گردد ، كارائی و توانمندی آنها در جهت ارائه خدمات به كاربران بطرز محسوسی افزايش خواهد يافت .
روش های  caching در ASP.NET  
با عرضه ASP.NET 2.0 تحولات گسترده ای در خصوص cache ايجاد گرديد . پياده كنندگان برنامه های وب با آشنائی و بكارگيری پتانسيل های موجود می توانند برنامه های وب با كارآئی مطلوب را پياده سازی نمايند .
در ASP.NET از دو نوع سيستم caching استفاده می گردد . پياده كنندگان برنامه های وب می توانند و شايد بهتر باشد بگوئيم می بايست از دو سيستم فوق در جهت افزايش كارآئی برنامه های خود استفاده نمايند ، چراكه دو سيستم فوق مكمل يكديگر می باشند .

  • Output caching  ، ساده ترين روش caching است .  صفحات aspx . بر اساس فرآيندی در سمت سرويس دهنده ترجمه و پس از اجراء ، ماحصل خروجی آنها به صورت يك صفحه html برای سرويس گيرنده ارسال می گردد . در اين روش يك نسخه نهائی از صفحه ترجمه شده html  كه برای سرويس گيرنده ارسال شده است ، cache می گردد . بدين ترتيب ، زمانی كه سرويس گيرنده بعدی درخواست خود برای استفاده از اين صفحه را برای سرويس دهنده ارسال می نمايد ،  در مقابل اجرای صفحه و توليد خروجی لازم ( انجام پردازش های سمت سرويس دهنده با توجه به ماهيت و جايگاه عملكردی يك صفحه در يك برنامه وب )  ، صفحه ترجمه شده html بطور اتوماتيك برای وی ارسال می گردد . بدين ترتيب ، مدت زمانی كه لازم است صفحه به همراه كد درون آن ترجمه و اجراء گردد بطور كامل حذف می گردد .
  • Data caching : برای استفاده از اين روش می بايست بطور دستی و از طريق كد شرايط آن را فراهم نمود . پياده كنندگان می توانند بخش های مهمی از اطلاعات را كه زمان زيادی صرف ساختن آنها شده است ( نظير يك DataSet بازيابی شده از يك بانك اطلاعاتی ) را در cache ذخيره نمايند . در ادامه ، ساير صفحات می توانند وجود اين اطلاعات را بررسی و در صورت موجود بودن در cache  از آنها استفاده نمايند . بدين ترتيب ، مراحل مورد نياز برای بازيابی اطلاعات حذف خواهد شد .
    روش فوق از لحاظ مفهومی شباهت زيادی به استفاده از application state دارد ولی دارای قابليت های بيشتری در سمت سرويس دهنده است . به عنوان نمونه زمانی كه حجم داده بگونه ای زياد گردد كه كارآئی يك برنامه را تحت تاثير قرار دهد ، آيتم های موجود در cache بطور اتوماتيك از cache حذف خواهند شد . برای ذخيره آيتم ها در cache می توان يك تاريخ را مشخص تا پس از سپری شدن زمان مورد نظر بطور اتوماتيك از حافظه حذف گردند .

علاوه بر روش های كلی فوق ، دو نوع خاص ديگر از caching بر اساس مدل های اشاره شده نيز ايجاد شده است :

  • Fragment caching : روش فوق نوع خاصی از output caching است و در مقابل caching كد Html برای تمامی صفحه ، صرفا” بخش هائی خاص از كد cache می گردد. در اين روش خروجی كد ترجمه شده Html مربوط به يك كنترل كاربر بر روی يك صفحه ذخيره می گردد . بدين ترتيب در صورت اجراء مجدد صفحه ، كد موجود در صفحه اجراء‌ می گردد و ضرورتی به  اجراء كد مرتبط با كنترل كاربر نخواهد بود .
  • Data source caching : اين نوع caching بر اساس كنترل های منبع داده ايجاد و شامل كنترل های منبع داده ObjectDataSource ، SqlDataSource و XmlDataSource می باشد. از لحاظ فنی ، در روش فوق از data caching استفاده می گردد. تنها تفاوت موجود در اين رابطه ، عدم نياز به انجام پردازش های مورد نياز توسط پياده كننده است . بدين منظور لازم است كه برخی خصلت ها و پيام های كنترل منبع داده كه مسئوليت ذخيره و بازيابی caching را برعهده دارند ،‌ توسط پياده كنندگان پيكربندی گردد.

در اين بخش و ساير بخش های بعدی به ترتيب به بررسی موارد زير خواهيم پرداخت :

  • output caching
  • data caching
  • caching در كنترل های منبع داده
  • SQL cache dependency
دسته بندی : افزایش درآمد سایت