عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
ايجاد يک برنامه وب نمونه در دات نت ( بخش ششم ) |
مديريت وب |
10394 |
7 |
4.9 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
ايجاد يک برنامه وب نمونه در دات نت ( بخش ششم )
ايجاد يک برنامه وب نمونه در دات نت ( بخش
ششم )
آنچه
تاکنون گفته شده است :
|
-
بخش اول
ايجاد يک برنامه وب و فرم وب
( فاز اول )
-
بخش دوم
: استفاده از کنترل های سرويس دهنده و بررسی کد HTML
توليد شده ( فاز دوم )
- بخش سوم :
بررسی صحت و اعتبار داده ها ( فاز سوم )
- بخش چهارم
: افزودن اسکريپت
سمت سرويس گيرنده و درج کد در فايل Code Behind
- بخش پنجم :
اشکال زدائی برنامه
|
در اين بخش
به بررسی عمليات مرتبط با فاز
چهارم ،
خواهيم پرداخت .
فاز چهارم : مديريت وضعيت برنامه
برنامه های وب از معماری سرويس گيرنده و سرويس دهنده تبعيت می
نمايند .اين بدان معنی است که بخشی از برنامه بر روی کامپيوتر سرويس گيرنده و بخشی
ديگر بر روی سرويس دهنده اجراء و با همياری و همکاری يکديگر ، اهداف تعريف شده در
برنامه را دنبال می نمايند. سرويس گيرنده و سرويس دهنده برای ارتباط با يکديگر می
بايست از مجموعه ای قوانين مدون ( پروتکل ) استفاده نمايند. در اين راستا از پروتکل
HTTP ، استفاده می گردد . ماهيت پروتکل فوق بصورت
Stateless می باشد ، اين بدان معنی است که ارتباط
ايجاد شده صرفا" برای يک تراکنش ، نگهداری می گردد .
قبل از اين که يک سرويس گيرنده و سرويس دهنده قادر به مبادله اطلاعات باشند ، می
بايست بين آنان يک ارتباط ( Connection ) ايجاد گردد .
سرويس گيرنده و سرويس دهنده با استفاده از پروتکل TCP/IP
يک ارتباط را برقرار می نمايند . سرويس دهندگان و سرويس دهندگان از پروتکل
HTTP برای ارسال درخواست ها و پاسخ به درخواست ها ،
استفاده می نمايند . سرويس دهنده وسرويس گيرنده ارتباط ايجاد شده را
صرفا" برای يک تراکنش نگهداری و در اين راستا ، چهار مرحله عمليات دنبال خواهد شد .
پروتکل |
شماره پورت |
FTP |
21 |
Telnet |
23 |
SMTP |
25 |
HTTP |
80 |
... |
... |
-
مرحله دوم
:ايجاد يک درخواست توسط سرويس گيرنده . در دومين مرحله ، سرويس
گيرنده اقدام به ايجاد يک درخواست و ارسال آن برای سرويس دهنده وب می نمايد.
-
مرحله سوم
: پاسخ سرويس دهنده وب .پس از دريافت و تفسير درخواست ارسالی، سرويس
دهنده پاسخ لازم را برای سرويس گيرنده ارسال می نمايد.
-
مرحله چهارم :
قطع ارتباط بين سرويس دهنده و سرويس گيرنده .سرويس دهنده مسئوليت قطع ارتباط
با سرويس گيرنده پس از پردازش و پاسخگوئی به درخواست را برعهده دارد .مسئوليت فوق
در انحصار سرويس دهنده نبوده و سرويس گيرنده نيز می بايست توانائی غيرفعال نمودن
ارتباط ايجاد شده را داشته باشد . مثلا" در صورتی که شما بر روی دکمه
Stop مرورگر خود کليک نمائيد ، مرورگر می بايست توانائی
غيرفعال نمودن ارتباط ايجاد شده را دارا باشد .
برنامه های وب با توجه به واقعيت های
موجود در رابطه با ماهيت پروتکل HTTP خصوصا" ويژگی
Stateless آن می بايست از راهکاری متعددی به منظور
نگهداری داده در بين تراکنش های متعدد بين سرويس گيرنده و سرويس دهنده استفاده
نمايند( Round trips ). اهميت موضوع فوق تا به آن اندازه
است که هر يک از تکنولوژی های موجود که از آنان به منظور پياده سازی برنامه های وب
استفاده می شود ، به مقوله " مديريت وضعيت برنامه " (
State Management ) ، با دقت پرداخته و در اين راستا گزينه های متعددی را در
اختيار طراحان و پياده کنندگان برنامه های وب قرار می دهند . با توجه به ماهيت
برنامه های وب (جايگاه سرويس گيرنده وسرويس دهنده ) ، راهکارهای ارائه شده دارای
گرايش سمت سرويس دهنده و يا سمت سرويس گيرنده می باشند .
با اين مقدمه طولانی و خسته کننده ! به بررسی مديريت وضعيت برنامه با تاکيد
بر امکانات ارائه شده سمت سرويس گيرنده و سرويس دهنده در دات نت ، خواهيم پرداخت .
در اين راستا هدف ، تشريح تمامی امکانات ارائه شده نبوده و صرفا" قصد داريم با ذکر
نمونه هائی به بررسی دو رويکرد فوق ( سمت سرويس گيرنده ، سمت سرويس دهنده ) ،
بپردازيم .
مرحله اول : مديريت وضعيت
برنامه سمت سرويس گيرنده
: با توجه به ماهيت Stateless بودن پروتکل استفاده شده
برای ارتباط بين سرويس گيرنده و سرويس دهنده ، می بايست از امکانات و روش های
خاصی برای نگهداری مقاديرمتغيرهای يک صفحه و کنترل ها بر روی سرويس
گيرنده و يا سرويس دهنده ، استفاده نمود. برای نگهداری داده بر روی سرويس گيرنده
از ViewState استفاده می شود . در اين مرحله با نحوه
استفاده از شی ViewState برای نگهداری مقدار " رمز
عبور " بر روی سرويس گيرنده استفاده می شود . در اين رابطه مراحل زير را دنبال می
نمائيم :
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 |
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 |

مرحله چهارم : پس از انجام مراحل فوق ، فرم وب
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 برای
نگهداری داده ( سمت سرويس دهنده )
در بخش
هفتم اين مقاله به بررسی ساير
فازهای تعريف شده برای حل مسئله نمونه ،
خواهيم پرداخت .