افزايش كارآئی برنامه های وب در ASP.NET 2.0 New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 چهارشنبه  29  دی  1395  2017  Jan.  18   Wendesday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 افزايش كارآئی برنامه های وب در ASP.NET 2.0 (بخش دهم)

 مديريت وب

8089

5

4.2

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

 

افزايش كارآيی برنامه های وب در ASP.NET 2.0

افزايش كارآئی برنامه های وب در ASP.NET 2.0 (بخش دهم)
آنچه تاكنون گفته شده است :

  • بخش های اول  و دوم  : اشاره به مجموعه ای از نكات كه رعايت آنها در زمان طراحی می تواند زمينه پياده سازی يك برنامه وب كارآ را فراهم نمايد .
  • بخش سوم  : معرفی برخی ابزارها برای تست برنامه های وب
  • بخش چهارم : مفاهيم اوليه caching ، روش های caching در ASP.NET ، نحوه استفاده از output caching
  • بخش پنجم :  Caching و Query string
  • بخش ششم : Custom Caching Control
  • بخش هفتم : caching داده و نحوه استفاده از شی cache
  • بخش هشتم : بررسی يك مثال جهت ايجاد caching با قابليت مشاهده چندين view از داده
  • بخش نهم : كنترل های منبع داده و caching

در اين بخش بحث خود را بر روی data  caching  ادامه داده و به بررسی caching با وابستگی (Dependency) خواهيم پرداخت .

Caching با وابستگی
ماهيت منابع داده نظير يك بانك اطلاعاتی بگونه ای است كه به مرور زمان اطلاعات درون آنها تغيير می يابد . در صورتی كه در يك برنامه از caching استفاده می گردد ، همواره اين احتمال وجود خواهد داشت كه اطلاعات موجود در cache متاثر از اين تغييرات نباشد و داده بهنگام نشده از cache استخراج و در اختيار كاربران گذاشته شود. 
برای كمك در جهت حل اين نوع مشكلات ، ASP.NET از caching با وابستگی حمايت می نمايد . با استفاده از ويژگی فوق اين امكان در اختيار پياده كنندگان قرار می گيرد تا بتوانند حضور يك آيتم در cache  را به منابع ديگری وابسته نمايند . در چنين مواردی ، زمانی كه در منبع مورد نظر تغييراتی ايجاد گرديد ، آيتم cache شده بطور اتوماتيك از cache خارج می گردد .
ASP.NET از سه نوع وابستگی حمايت می نمايد :

  • وابستگی با ساير آيتم های Cache شده
  • وابستگی با فايل ها و يا فولدرها
  • وابستگی با يك query بانك اطلاعاتی

برای ايجاد يك cache وابسته ، می بايست يك شی CacheDependency ايجاد و در ادامه از آن در زمان اضافه كردن آيتم مورد نظر به cache  استفاده كرد .
كد زير يك آيتم cache شده را ايجاد كه بطور اتوماتيك و پس از ايجاد تغييرات در فايل xml از cache خارج می شود .

ايجاد يك وابستگی برای فايل ProductList.xml

 Dim prodDependency As New CacheDependency(Server.MapPath("ProductList.xml"))

در زمان درج آيتم مورد نظر در cache از شی CacheDependency ايجاد شده در مرحله قبل استفاده می گردد .

اضافه كردن يك آيتم در cache كه حضور آن در cache به فايل  ProductList.xml  وابسته می گردد

 Cache.Insert("ProductInfo", prodInfo, prodDependency)

پس از ايجاد شی CacheDependency ، مانيتورينگ آغاز می گردد . در صورتی كه فايل xml قبل از افزودن آيتم وابسته به درون cache تغيير يافته باشد ، بلافاصله تاريخ اعتبار آيتم موردنظر پس از افزودن به cache به پايان می رسد .
شی  CacheDependency چندين  constructor را ارائه می نمايد . در مثال قبل مشاهده گرديد كه چگونه شی فوق قادر به ايجاد يك وابستگی بر اساس يك فايل است كه نام آن به عنوان  constructor در نظر گرفته می شود . همچنين می توان يك دايركتوری را معرفی تا تغييرات آن مانيتور گردد .

مثال : ايجاد و درج يك آيتم درون cache كه حضور آن در cache به يك فايل وابسته می گردد
در اين مثال با ايجاد يك شی وابسته ( يك فايل text ) ،‌ يك عبارت ( " آيتم cache شده وابسته " ) وابسته به شی فوق را در cache قرار می دهيم . تا زمانی كه داده موجود در فايل text تغيير نيابد ، آيتم مورد نظر در cache  باقی می ماند و می توان از آن استفاده كرد . در صورت تغيير در شی وابسته ( فايل dependency.txt ) اعتبار آيتم cache شده به اتمام رسيده و بطور اتوماتيك از cache خارج می شود .
در اين برنامه از دو button به نام " تغيير فايل " و " بررسی آيتم cache شده " استفاده شده است . با استفاده از دكمه "بررسی آيتم cache شده " ، حضور آيتم مورد نظر در cache بررسی و پيام مناسب در خروجی نمايش داده می شود . در صورت كليك بر روی دكمه "تغيير فايل " ، محتويات شی وابسته ( فايل dependency.txt  ) تغيير يافته و آيتم مورد نظر  از cache خارج می گردد .
كد برنامه فوق در جدول زير نشان داده شده است .

درج يك آيتم  در cache  با وابستگی به يك شی ( فايل )

<%@ Page Language="VB" Culture="fa-IR" UICulture="fa-IR" %>
<%@ Import Namespace="System.IO" %>

<script runat="server">
'=====================================================================
Sub cmdModify_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdModify.Click
  lblInfo.Text &= "تغيير فايل وابسته<br />"
  Dim w As StreamWriter = File.CreateText(Server.MapPath("dependency.txt"))
  w.Write(DateTime.Now)
  w.Flush()
  w.Close()
End Sub
'=====================================================================
 Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 If Not Me.IsPostBack Then
    lblInfo.Text &= "ايجاد آيتم وابسته<br />"
    Cache.Remove("File")
    Dim dependency As New System.Web.Caching.CacheDependency( _
    Server.MapPath("dependency.txt"))
    Dim item As String = "آيتم cache شده وابسته"
    lblInfo.Text &= "اضافه كردن آيتم وابسته<br />"
    Cache.Insert("File", item, dependency)
 End If
End Sub
'=====================================================================
Sub cmdGetItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdGetItem.Click
  If Cache("File") Is Nothing Then
      lblInfo.Text &= " آيتم مورد نظر در ‌‍cache موجود نمی باشد و امكان بازيابی آن وجود ندارد <br />"
    Else
     Dim cacheInfo As String = CType(Cache("File"), String)
      lblInfo.Text &= " آيتم مورد نظر در ‌‍cache موجود است و امكان بازيابی آن وجود دارد <br />"
  End If
 End Sub
'=====================================================================
</script>

<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl">
 <head id="Head1" runat="server">
  <title>تست caching </title>
 </head>
 <body style="font-family: Tahoma">
   <form id="Form1" method="post" runat="server">
    <asp:button id="cmdModify" runat="server" Text="تغيير فايل" Width="103px"
                       Font-Names="Tahoma"></asp:button>
    <asp:button id="cmdGetItem" runat="server" Text="بررسی آيتم cache شده" Width="140px"
                      Height="24px" Font-Names="Tahoma"></asp:button><br /><br />
     <asp:label id="lblInfo" runat="server" Width="480px" Height="192px" BorderWidth="2px"
                     BorderStyle="Groove" Font-Names="Tahoma" Font-Size="Small"
                     BackColor="LightYellow"></asp:label>
  </form>
 </body>
</html>

خروجی مثال فوق در شكل 1 نشان داده شده است .

 ايجاد caching وابسته به يك شی ( فايل )
شكل 1 : ايجاد caching وابسته به يك شی ( فايل )

توضيحات :

  • در زمان فراخوانی برنامه فوق از طريق روتين Page_laod عمليات زير انجام می شود :
    -  ايجاد يك شی  dependency ( يك فايل متن با نام   dependency.txt )
    - درج آيتم مورد نظر با نام File و مقدار  " آيتم cache شده وابسته " در cache 
    - نمايش پيام  های مناسب در خروجی به كمك كنترل سرويس دهنده label ( با نام   lblInfo  ) 

  • روتين cmdGetItem_Click ، وجود آيتم مورد نظر را در Cache بررسی و در صورتی كه اين آيتم در cache موجود نباشد يك پيام خاص از طريق كنترل سرويس دهنده label در خروجی نمايش داده می شود . در صورت وجود آيتم مورد نظر در cache ، مقدار آن از cache بازيابی و يك پيام خاص از طريق كنترل سرويس دهنده label در خروجی نمايش داده می شود .

  • روتين cmdModify_Click ، مسئوليت ايجاد تغيير در فايل وابسته ( نام dependency.txt ) را برعهده دارد . در روتين فوق پس از ايجاد فايل ، تاريخ جاری سيستم در آن نوشته می گردد .

 SQL Server cache dependency  ، يكی از نوع های پيچيده caching وابسته است كه در  ASP.NET 2.0 ارائه شده است . با استفاده از ويژگی فوق بطور اتوماتيك يك  شی داده cache شده ( نظير يك DataSet )  پس از تغيير داده مرتبط در بانك اطلاعاتی ، غير معتبر می گردد . از پتانسيل فوق در در SQL Server 2005  ( شامل  Express Edition ) و   SQL Server 2000   حمايت می گردد .
در بخش يازدهم بحث خود را بر روی data  caching  ادامه داده و به بررسی SQL Server cache dependency  خواهيم پرداخت .



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382