تبلیغات
آموزشASP.NET - ایجاد یک برنامه وب نمونه در دات نت ( بخش ششم )
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 
در این بخش  به بررسی عملیات مرتبط با فاز چهارم ، خواهیم پرداخت  .

 فاز چهارم : مدیریت وضعیت برنامه  
برنامه های وب از معماری سرویس گیرنده و سرویس دهنده تبعیت می نمایند .این بدان معنی است که بخشی از برنامه بر روی کامپیوتر سرویس گیرنده و بخشی دیگر بر روی سرویس دهنده اجراء و با همیاری و همکاری یکدیگر ، اهداف تعریف شده در برنامه را دنبال می نمایند. سرویس گیرنده و سرویس دهنده برای ارتباط با یکدیگر می بایست از مجموعه ای قوانین مدون ( پروتکل ) استفاده نمایند. در این راستا از پروتکل HTTP ، استفاده می گردد . ماهیت پروتکل فوق بصورت Stateless  می باشد ، این بدان معنی است که ارتباط ایجاد شده صرفا" برای یک تراکنش ، نگهداری می گردد .
قبل از این که یک سرویس گیرنده و سرویس دهنده قادر به مبادله اطلاعات باشند ، می بایست بین آنان یک ارتباط ( Connection ) ایجاد گردد . سرویس گیرنده و سرویس دهنده با استفاده از پروتکل TCP/IP یک ارتباط را برقرار می نمایند . سرویس دهندگان و سرویس دهندگان از پروتکل HTTP برای ارسال درخواست ها و پاسخ به درخواست ها ، استفاده می نمایند . سرویس دهنده  وسرویس گیرنده  ارتباط ایجاد شده را صرفا" برای یک تراکنش نگهداری و در این راستا ، چهار مرحله عملیات دنبال خواهد شد .

مرحله اول : ایجاد ارتباط . در این مرحله با استفاده از پروتکل TCP/IP یک ارتباط بین سرویس گیرنده و سرویس دهنده برقرار می گردد . برای تشخیص نوع پروتکل ها ، برنامه ها از یک عدد صحیح منحصر بفرد که " شماره پورت " ، نامیده می شود ، استفاده می نمایند . جدول زیر برخی از پروتکل های رایج و شماره پورت نسبت داده شده به آنان را نشان می دهد.

پروتکل

شماره پورت

FTP

21
Telnet 23
SMTP 25
HTTP 80
... ...
  • مرحله دوم :ایجاد یک درخواست توسط سرویس گیرنده . در دومین مرحله ، سرویس گیرنده اقدام به ایجاد یک درخواست و ارسال آن برای سرویس دهنده وب می نماید.

  • مرحله سوم : پاسخ سرویس دهنده وب .پس از دریافت و تفسیر درخواست ارسالی، سرویس دهنده پاسخ لازم را برای سرویس گیرنده ارسال می نماید.

  • مرحله چهارم : قطع ارتباط بین سرویس دهنده و سرویس گیرنده .سرویس دهنده مسئولیت قطع ارتباط با سرویس گیرنده پس از پردازش و پاسخگوئی به درخواست را برعهده دارد .مسئولیت فوق در انحصار سرویس دهنده نبوده و سرویس گیرنده نیز می بایست توانائی غیرفعال نمودن ارتباط ایجاد شده را داشته باشد . مثلا" در صورتی که شما بر روی دکمه Stop مرورگر خود کلیک نمائید ، مرورگر می بایست توانائی غیرفعال نمودن ارتباط ایجاد شده را دارا باشد .

برنامه های وب با توجه به واقعیت های موجود در رابطه با ماهیت پروتکل HTTP خصوصا" ویژگی Stateless آن می بایست از راهکاری متعددی به منظور نگهداری داده در بین تراکنش های متعدد بین سرویس گیرنده و سرویس دهنده استفاده نمایند( Round trips ). اهمیت موضوع فوق تا به آن اندازه است که هر یک از تکنولوژی های موجود که از آنان به منظور پیاده سازی برنامه های وب استفاده می شود ، به مقوله " مدیریت وضعیت برنامه "  ( State Management ) ، با دقت پرداخته و در این راستا گزینه های متعددی را در اختیار طراحان و پیاده کنندگان برنامه های وب قرار می دهند . با توجه به ماهیت برنامه های وب (جایگاه سرویس گیرنده وسرویس دهنده ) ، راهکارهای ارائه شده دارای گرایش سمت سرویس دهنده و یا سمت سرویس گیرنده می باشند .
با این مقدمه طولانی و خسته کننده !  به بررسی مدیریت وضعیت برنامه با تاکید بر امکانات ارائه شده سمت سرویس گیرنده و سرویس دهنده در دات نت ، خواهیم پرداخت . در این راستا هدف ، تشریح تمامی امکانات ارائه شده نبوده و صرفا" قصد داریم با ذکر نمونه هائی به  بررسی دو رویکرد فوق ( سمت سرویس گیرنده ، سمت سرویس دهنده ) ، بپردازیم  .

مرحله اول : مدیریت وضعیت برنامه سمت سرویس گیرنده  : با توجه به ماهیت Stateless بودن پروتکل استفاده شده برای ارتباط بین سرویس گیرنده و سرویس دهنده ، می بایست از امکانات و روش های خاصی برای نگهداری مقادیرمتغیرهای یک صفحه و کنترل ها  بر روی  سرویس گیرنده و یا سرویس دهنده ، استفاده نمود. برای نگهداری داده بر روی سرویس گیرنده از ViewState استفاده می شود . در این مرحله با نحوه استفاده از شی ViewState برای نگهداری مقدار " رمز عبور " بر روی سرویس گیرنده استفاده می شود . در این رابطه مراحل زیر را دنبال می نمائیم :

  • استفاده از شی ViewState برای نگهداری داده درج شده در فیلد "رمز  عبور " . بدین منظور کد زیر را در انتهای متد btnSignin_Click  ، اضافه می نمائیم .بدین ترتیب پس از فعال شدن متد فوق ، مقدار درج شده در فیلد "رمز عبور" ، بر روی سرویس گیرنده ، نگهداری می گردد .

Client-Side State Management 

Private Sub btnSignin_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSignin.Click
.
  ......
  ViewState("Password") = txtPassword.Text

End Sub

  • سوئیچ به Design view ( انتخاب View | Designer و یا فعال نمودن کلیدهای SHIFT + F7 )

  • کلیک ( Double ) بر روی دکمه " انصراف" و افزودن کد زیر در تابع مسئول به پاسخگودی به رویداد btnRestore_Click

Client side State management using ViewState

Private Sub btnRestore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRestore.Click
  lblResult.Text = " رمز عبور وارد شده  " & CStr (ViewState("Password"))
End Sub

  • اجرای برنامه ( Debug | Start و یا فعال نمودن کلید F5 )

  • درج داده ورودی در فیلدهای "نام " و "رمز عبور" ( Srco,Srcopassword )

  • کلیک بر روی دکمه "ورود به سایت "

  • پس از فعال نمودن دکمه "ورود به سایت " ، یک round trip به سرویس دهنده محقق شده و مقدار فیلد "رمز عبور" در شی ViewState نگهداری می گردد ( فیلد txtPassword خالی است ).

  • کلیک بر روی دکمه " انصراف "

  • پس از فعال نمودن دکمه فوق ، رمز عبور ورودی در lblResult ، نمایش داده می شود .

مرحله دوم : مدیریت وضعیت برنامه سمت سرویس دهنده : در این مرحله از شی Session برای نگهداری نام درج شده در فیلد "نام " ، بر روی سرویس دهنده استفاده می نمائیم . بدین منظور مراحل زیر را دنبال می نمائیم :

  • سوئیچ به صفحه Code behind مربوط به صفحه Login.aspx ( انتخاب View | Code و یا فعال نمودن کلید F7 )

  • استفاده از شی Session برای نگهداری مقدار درج شده در فیلد "نام"  ( افزودن کد زیر به متد btnSignin_Click )

Server side State management using Session

Private Sub btnSignin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSignin.Click
 
If (txtUserID.Text.Length >= 4 And txtPassword.Text.Length >= 4 And txtUserID.Text.StartsWith("S")) Then
     lblResult.Text = "کاربر مجاز "
     Session("UserID") = txtUserID.Text
     Response.Redirect("LoginDemo.aspx")
  Else
    lblResult.Text = "کاربر غیر مجاز"
End If
 ViewState("Password") = txtPassword.Text
End Sub

  • برای دستیابی به مقدار session در صفحه ای  دیگر ، یک فرم جدید را ایجاد می نمائیم :
    مرحله اول :  فعال نمودن پنجره  Solution Explorer  ( انتخاب گزینه Solution Explorer از طریق منوی View )
    مرحله دوم : انتخاب Project | Add Web Form برای افزودن یک فرم وب جدید( نمایش جعبه محاوره ای Add New Item )
    مرحله سوم : انتخاب  نام مورد نظر برای فرم وب ( LoginDemo.aspx )  و درج آن در فیلد Name و فعال نمودن دکمه Open


            مرحله چهارم :  پس از انجام مراحل فوق ، فرم وب LoginDemo.aspx ایجاد و به پروژه اضافه می گردد .

  • برای نمایش " نام " ، یک کنترل Label را بر روی فرم LoginDemo.aspx ایجاد می نمائیم .
    مرحله اول : سوئیچ  به حالت Design ( کلیک بر روی Design Tab )
    مرحله دوم : فعال نمودن پنجره  Toolbox ( انتخاب گزینه Toolbox از طریق منوی View و یا فشردن کلیدهای CTRL+ALT+X )

    مرحله سوم : انتخاب کنترل Label  ازطریق Web Forms tab موجود در  Toolbox و استفرار آن بر روی فرم وب 
    مرحله چهارم : تنظیم خصلت های زیر برای کنترل Label استفاده شده بر روی فرم وب . ( برای مشاهده پنجره Properties مربوط به یک کنترل ، پس از انتخاب کنترل دستور View|Properties را فعال و یا از کلید F4 ، استفاده می نمائیم ) .

     

    تنظیم خصلت های کنترل Label  

    خصلت

     مقدار

    ID

    lblUserID

    Text

    شما با این نام وارد سایت سخا روش شده اید

  • سوئیچ به صفحه Code behind مربوط به صفحه LoginDemo.aspx ( انتخاب View | Code و یا فعال نمودن کلید F7 )

  • افزودن کد زیر در متد Page_Load ( بازیابی مقدار "نام " از طریق Session ایجاد شده در صفحه Login.aspx )

Page_Load method 

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   If Not Page.IsPostBack Then
      lblUserID.Text = lblUserID.Text & " " & Session("UserID")
  End If
End Sub

  • اجرای برنامه ( Debug | Start و یا فعال نمودن کلید F5 )

  • درج داده ورودی در فیلدهای "نام " و "رمز عبور" ( Srco,Srcopassword )

  • کلیک بر روی دکمه "ورود به سایت "  ( نام درج شده در فیلد "نام " ، در Session ذخیره می گردد )

  • در ادامه کاربر به صفحه دیگر ( LoginDemo.aspx ) هدایت و از طریق صفحه فوق پیام : "   "  ، نمایش داده می شود .

نتایج  فاز چهارم  :

  • آشنائی با مفهوم stateless بودن پروتکل HTTP
  • استفاده از ViewState برای نگهداری داده (  سمت سرویس گیرنده )
  • استفاده از شی Session برای نگهداری داده (  سمت سرویس دهنده )

در بخش هفتم این مقاله به بررسی سایر  فازهای تعریف شده برای حل مسئله نمونه  ، خواهیم پرداخت





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


جمعه 24 شهریور 1396 06:31 ب.ظ
For most up-to-date information you have to pay a visit web and on web I found this web site as a most excellent web page
for most up-to-date updates.
چهارشنبه 15 شهریور 1396 04:44 ب.ظ
My brother recommended I might like this web site.
He was totally right. This post truly made my day. You can not imagine simply
how much time I had spent for this information! Thanks!
دوشنبه 25 اردیبهشت 1396 01:44 ق.ظ
Hi there, yeah this paragraph is actually fastidious and I have learned lot of things from it regarding blogging.
thanks.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ

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

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








جستجو

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