تبلیغات
آموزشASP.NET - State Management در ASP. NET 2.0 (بخش نهم)
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 
سه شنبه 24 اسفند 1389 :: نویسنده : ارش کاکاوند

در بخش هشتم  با مفاهیم و معماری session آشنا شدیم . در این بخش و قبل از پرداختن به نحوه پیكربندی session در برنامه های وب ، به بررسی یك نمونه مثال خواهیم پرداخت تا از این رهگذر بتوانیم در عمل با متدها و خصلت های كلاس  HttpSessionState بیشتر آشنا شویم . 

مثال
در این مثال هدف آشنائی با نحوه ذخیره و بازیابی داده در session است . بدین منظور یك شی با نام Articles و شامل سه فیلد عمومی به شرح زیر تعریف شده است  :

  • Title : عنوان یك مقاله را در خود ذخیره می نماید .

  • Abstract : شرح مختصری از مقاله را در خود ذخیره می نماید .

  • ViewCount : تعداد  دفعات مشاهده یك مقاله را مشخص می نماید .

شی فوق از یك  constructor  خاص استفاده می نماید تا فرآیند ایجاد و مقداردهی آن به سادگی انجام شود .

Public Class Articles

  Public Title As String
  Public
Abstract As String
  Public
ViewCount As Integer

  Public
Sub New(ByVal Title As String, ByVal Abstract As String, ByVal ViewCount As Integer)
    Me.Title = Title
    Me.Abstract = Abstract
    Me.ViewCount = ViewCount
  End Sub

End
Class

 اشیاء Articles در زمان استقرار صفحه در حافظه ایجاد و در session state ذخیره می گردند . در ادامه و پس از انتخاب یك آیتم توسط كاربر از طریق لیست موجود ، شی مرتبط با آیتم انتخاب شده از session بازیابی و اطلاعات مرتبط با آن در خروجی نمایش داده می شود .

صفحه SessionStateExample.aspx


<
%@ Page Language="VB" Culture="fa-IR" UICulture="fa-IR" %>

<script runat="server">

Public
Class Articles
  Public Title As String
  Public
Abstract As String
  Public
ViewCount As Integer
  Public
Sub New(ByVal Title As String, ByVal Abstract As String, ByVal ViewCount As Integer)
     Me.Title = Title
     Me.Abstract = Abstract
     Me.ViewCount = ViewCount
  End Sub
End
Class

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
 If Me.IsPostBack = False Then

مرحله اول : ایجاد اشیاء '

   Dim ArticleInfo1 As New Articles("State Management در ASP. NET 2.0 (بخش هشتم) ", _
                                                " بررسی Session State ", 43)
   Dim
ArticleInfo2 As New Articles("State Management در ASP. NET 2.0 (بخش هفتم) ", _
                                             " كوكی های سفارشی و نحوه عملكرد آنها", 94)
   Dim
ArticleInfo3 As New Articles("State Management در ASP. NET 2.0 (بخش ششم) ", _
                                              " نحوه انتقال اطلاعات بین صفحات با استفاده از Query String", 103)
   Dim
ArticleInfo4 As New Articles(" State Management در ASP. NET 2.0 (بخش پنجم) ", _
                                                " نحوه دریافت اطلاعات از صفحه مبداء در cross-page posting", 99)

 مرحله دوم : اضافه كردن اشیاء به session state  '

   Session("Article1") = ArticleInfo1
   Session(
"Article2") = ArticleInfo2
   Session(
"Article3") = ArticleInfo3
   Session(
"Article4") = ArticleInfo4

مرحله سوم :‌ اضافه كردن سطر به لیست  '

   lstItems.Items.Clear()
   lstItems.Items.Add(ArticleInfo1.Title)
   lstItems.Items.Add(ArticleInfo2.Title)
   lstItems.Items.Add(ArticleInfo3.Title)
   lstItems.Items.Add(ArticleInfo4.Title)

 End
If

 نمایش برخی اطلاعات پایه در رابطه با session  '
جهت بررسی اطلاعات پیكربندی '   

 Dim strCookieLess As String
 Dim
strNewSession As String

 If
Session.IsCookieless Then
    strCookieLess = "بلی"
 Else
    strCookieLess = "خیر"
 End
If

 If
Session.IsNewSession Then
    strNewSession = "بلی"
 Else
   strNewSession = "خیر"
 End
If

 
lblSession.Text = "شناسه : "
& Session.SessionID
 lblSession.Text &=
"<br>تعداد اشیاء : "
 
lblSession.Text &= Session.Count.ToString()
 lblSession.Text &=
"<br>مد : "
& Session.Mode.ToString()
 lblSession.Text &=
"<br>آیا session ایجاد شده Cookieless است؟ "
 
lblSession.Text &= strCookieLess
 lblSession.Text &=
"<br> آیا session جدید است ؟ "
 
lblSession.Text &= strNewSession
 lblSession.Text &=
"<br> اعتبار session (بر حسب دقیقه ) : "
 
lblSession.Text &= Session.Timeout.ToString()
End
Sub

Protected Sub cmdMoreInfo_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdMoreInfo.Click
If lstItems.SelectedIndex = -1 Then
    lblRecord.Text = "آیتمی انتخاب نشده است"
Else

 مرحله اول :ایجاد نام كلید صحیح بر اساس ایندكس '

  Dim Key As String
  Key = "Article"
& (lstItems.SelectedIndex + 1).ToString()

  مرحله دوم : بازیابی اشیاء از session state '

  Dim ArticleInfo As Articles = CType(Session(Key), Articles)

 مرحله سوم : نمایش اطلاعات مرتبط با شی بازیابی شده  '

  lblRecord.Text = "عنوان مقاله :" & ArticleInfo.Title
  lblRecord.Text &=
"<br>شرح: "
 
lblRecord.Text &= ArticleInfo.Abstract
  lblRecord.Text &=
"<br>تعداد دفعات مشاهده : "
& ArticleInfo.ViewCount.ToString()

End If

End
Sub

</
script>

<
html
xmlns="http://www.w3.org/1999/xhtml" dir="rtl">
<
head
runat="server">
  <
title>تست session </title>
</
head>
<
body>
 <
form
id="form1" runat="server">
     <
asp:Label id="lblSession" runat="server" Width="472px" Height="61px" Font-Size="Smaller"
                     
Font-Names="Tahoma" Font-Bold="False"></asp:Label><br /><br />
 <
div
>
     <
asp:ListBox id="lstItems" runat="server" Width="345px" Height="106px"
                       
Font-Names="Tahoma"></asp:ListBox><br /> <br />
    <
asp:Button id="cmdMoreInfo" runat="server" Text="اطلاعات بیشتر "
                       
Font-Names="Tahoma"></asp:Button><br /><br /><br />
    <
asp:Label id="lblRecord" runat="server" Font-Size="Small"
                      
Font-Names="Tahoma" ></asp:Label>
 </
div>
 </
form>
</
body>
</
html>
 

شكل 1 نحوه عملكرد و خروجی برنامه فوق را نشان می دهد .

   نحوه عملكرد session state

شكل 1:  نحوه عملكرد session state

حتی المقدور می بایست از تعداد session اندكی در برنامه استفاده گردد چراكه مدیریت آنها مستلزم انجام عملیات اضافه و استفاده از منابع محدود موجود در سمت سرویس دهنده است . پیاده كنندگان برنامه های وب برای رفع این نگرانی می توانند یك دكمه Log out را در صفحه مورد نظر خود پیش بینی نمایند تا پس از كلیك  بر روی آن ، با استفاده از متد  Session.Abandon اقدام به حذف session گردد ( آزاد سازی حافظه سرویس دهنده زودتر از موعد مقرر و مشخص شده توسط خصلت Timeout ) .
در بخش دهم بحث خود را در ارتباط با session state  ادامه داده و با نحوه پیكربندی آن در برنامه های وب آشنا خواهیم شد .





نوع مطلب :
برچسب ها :
لینک های مرتبط :

سه شنبه 28 شهریور 1396 03:46 ق.ظ
Howdy! This is my first visit to your blog! We are a collection of
volunteers and starting a new project in a community
in the same niche. Your blog provided us valuable information to
work on. You have done a outstanding job!
شنبه 18 شهریور 1396 07:01 ب.ظ
I have read so many articles or reviews on the topic of
the blogger lovers but this paragraph is truly a
good paragraph, keep it up.
چهارشنبه 15 شهریور 1396 04:39 ب.ظ
We're a group of volunteers and opening a new scheme in our community.
Your site provided us with valuable information to work on. You have
done a formidable job and our whole community will be thankful
to you.
چهارشنبه 1 شهریور 1396 03:22 ب.ظ
Hello there! I could have sworn I've visited this website before but after
looking at a few of the articles I realized it's new to me.
Regardless, I'm certainly happy I stumbled upon it and I'll
be bookmarking it and checking back often!
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ

سلام من آرش کاکاوند دانشجوی رشته کامپیوتر هستم و ورود شما رابه دنیای aspخوش امدمیگم.حتما نظر بدین تا من کارم رو بهتر ادامه بدم

مدیر وبلاگ : ارش کاکاوند
مطالب اخیر
نویسندگان
صفحات جانبی
نظرسنجی
شما کدام یک از برنامه های زیر را برای طراحی وب انتخاب می کنید؟








جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :