تاکنون مقالات متعددی در رابطه با دات نت و برنامه نویسی وب بر روی سایت منتشر شده است و شاید این سوال برای بسیاری از خوانندگان مطرح شده باشد که ارتباط این مطالب با یکدیگر چیست و چگونه می توان آنان را با یکدیگر مرتبط و از مطالب ارائه شده در جهت ایجاد یک برنامه وب استفاده نمود؟.
در مجموعه مقالاتی که بدین منظور آماده و بر روی سایت منتشر خواهد شد ، سعی می گردد به سوالات فوق ، پاسخ داده و با استفاده از مطالب ارائه شده و تلفیق آنان با یکدیگر، به صورت کاملا عملی و هدفمند با نحوه ایجاد یک برنامه وب ، آشنا شویم .
برای استفاده مطلوب از این مقاله ، مطالعه مقالات زیر پیشنهاد می گردد :
• محموعه مقالات مبانی برنامه نویسی وب در دات نت
• ایجاد یک برنامه وب در دات نت
• رویدادها در برنامه های وب دات نت
• مجموعه مقالات فرم های وب
• مجموعه مقالات دستیابی به داده ها در دات نت
• دستیابی به داده ها در فرم های وب
• مجموعه مقالات ارتباط به منابع داده در ADO.NET
• مجموعه مقالات ذخیره وبازیابی داده توسط ADO.NET
• مجموعه مقالات امنیت برنامه های وب
• بررسی اعتبار داده ها توسط VB.NET در فرم های وب
• راهکارهای مدیریت وضعیت صفحات ASP.NET
در ابتدا لازم است یک مسئله را تعریف و در ادامه مراحل لازم برای حل آن را دنبال نمائیم :
• مسئله : ایجاد یک برنامه وب در دات نت ( سیستم مقالات )
• توضیحات : در این برنامه کاربران در ابتدا از طریق یک فرم Login تائید و پس از تائید آنان توسط برنامه ، امکان استفاده از پتانسیل های برنامه (مشاهده لیست مقالات و انجام ویرایش های لازم در رابطه با یک مقاله ) در اختیار آنان قرار خواهد گرفت
• مراحل حل مسئله : جدول زیر فازهای متفاوت حل مسئله به همراه مراحلی که می بایست در هر فاز دنبال شود را نشان می دهد :
مراحل لازم برای تکمیل فاز فاز
• مرحله اول : ایجاد و ذخیره سازی یک برنامه وب ASP.NET
• مرحله دوم : ایجاد یک فرم وب
فاز اول : آشنائی با برنامه های وب دات نت
• مرحله اول : افزودن کنترل های سرویس دهنده به فرم وب
• مرحله دوم : آنالیز کدهای HTML تولید شده
• مرحله سوم : بررسی صحت واعتبار داده ها و ارائه پیام خطاء
• مرحله چهارم : افزودن اسکریپت
• مرحله پنجم : نوشتن کد لازم در فایل Code Behind فاز دوم : استفاده از کنترل ها
• مرحله اول :فعال نمودن امکان دیباگ در برنامه های وب
• مرحله دوم : تنظیم Break point
• مرحله سوم : اشکال زدائی هوشمند
• مرحله چهارم : استفاده از Debug.write فاز سوم : اشکال زدائی برنامه
• مرحله اول : مدیریت وضعیت برنامه سمت سرویس گیرنده
• مرحله دوم : مدیریت وضعیت برنامه سمت سرویس دهنده فاز چهارم : مدیریت وضعیت برنامه
• مرحله اول : استفاده از کلاس SqlConnection
• مرحله دوم : نمایش داده در DataGrid
• مرحله سوم : Paging و مرتب سازی DataGrid
• مرحله چهارم : دستورات ویرایش ، بهنگام سازی و ...
فاز پنجم : دستیابی به داده در فرم های وب
• مرحله اول : بکارگیری از طریق امکانات ویژوال استودیودات نت فاز ششم : بکارگیری برنامه وب
خلاصه و نتایج
فاز اول : آشنائی با برنامه های وب دات نت
در این فاز با نحوه ایجاد یک برنامه وب و اضافه نمودن یک فرم وب ( صفحه Login ) ، آشنا خواهیم شد.
مرحله اول : ایجاد و ذخیره سازی یک برنامه وب ASP.NET : در این مرحله ، یک برنامه وب خالی ( ساختار پیش فرض ) ، ایجاد می گردد .
برای ایجاد یک پروژه جدید وب با نام SrcoTest1 ، مراحل زیر را دنبال می نمائیم :
• اجرای برنامه ویژوال استودیو
• انتخاب File|New|Project و یا فشردن کلیدهای CTRL+SHIFT+N
• انتخاب نوع پروژه Visual Basic Projects از طریق جعبه محاوره ای New Project
• انتخاب ASP.NET Web Application ،از طریق تمپلیت های ارائه شده
• درج آدرس http://localhost/SrcoTest1 در فیلد Location ( نام در نظر گرفته شده برای پروژه ، اختیاری است ) .
• تائید عملیات با فشردن دکمه OK
توضیحات : در این مرحله ، ویژوال استودیو دات نت ، یک ریشه مجازی با نام SrcoTest1 ، فایل Global.asax ، فایل Global.asax.vb ، فایل Web.Config ، فایل WebForm1.aspx.vb ، فایل Style.css و یک فرم وب پیش فرض با نام WebForm1.aspx را ایجاد می نماید .
ویژوال استودیو ، همچنین فایل های SrcoTest1.disco ، فایل SrcoTest1.vbproj و فایل SrcoTest1.vbproj.webinfo را نیز ایجاد می نماید .
ویژوال استودیو دات نت ، یک فولدر با نام SrcoTest1 در مسیر InetPub\wwwroot \ را ایجاد می نماید .
محتوی این فولدر به صورت زیر است : مرحله دوم : ایجاد یک فرم وب : در این مرحله ، فرم وب پیش فرض ایجاد شده در مرحله قبل را تغییر نام داده و با نام جدید ذخیره می نمائیم .
انتخاب View|Solution Explorer و یا فشردن دکمه های CTRL+ALT+L کلیک سمت راست بر روی فایل WebForm1.aspx و انتخاب دستور Rename ( از طریق پنجره Solution Explorer ) تغییر نام فایل WebForm1.aspx به Login.aspx مشاهده محتویات صفحه با کلیک بر روی HTML Tab ( در قسمت پائین صفحه ) دایرکتیو Page @ در ابتدای صفحه پارامترهای متفاوتی را برای صفحه مشخص می نماید ( مثلا" زبان استفاده شده برای نوشتن کد مرتبط با صفحه ) برای ذخیره فایل Login.aspx ، دستور File|Save Login.aspx و یا File|Save Login.aspx As را انتخاب و یا کلید CTRL+S را فعال می نمائیم .
با توجه به این که قصد ایجاد فرم وب را با محتویات فارسی ( رابط کاربر فارسی ) داریم ، گزینه File|Save Login.aspx As را انتخاب و در ادامه با انتخاب گزینه Save with Encoding ، نوع Code Page را مشخص می نمائیم .
نتایج فاز اول : ایجاد یک پروژه جدید با نام SrcoTest1 تغییر نام و ذخیره فرم وب پیش فرض ( WebForm1.aspx ) به Login.aspx در بخش دوم این مقاله به بررسی عملیات مرتبط با فاز دوم خواهیم پرداخت.
در این رابطه با نحوه استفاده ازکنترل های سرویس دهنده بر روی فرم وب آشنا خواهیم شد( بخش رابط کاربر یک برنامه وب ) .
ایجاد یک برنامه وب نمونه در دات نت ( بخش دوم ) در بخش اول این مقاله به بررسی یک برنامه نمونه دات نت پرداخته و با نحوه ایجاد یک برنامه وب آشنا شدیم .
در این بخش به بررسی عملیات مرتبط با فاز دوم پرداخته و با نحوه استفاده ازکنترل های سرویس دهنده بر روی فرم وب آشنا خواهیم شد( بخش رابط کاربر یک برنامه وب ) .
فاز دوم : استفاده از کنترل ها مرحله اول : افزودن کنترل های سرویس دهنده به فرم وب مرحله دوم : آنالیز کدهای HTML ، تولید شده مرحله سوم : بررسی صحت و اعتبار داده ها و ارائه پیام خطاء مرحله چهارم : افزودن اسکریپت مرحله پنجم : نوشتن کد لازم در فایل Code Behind فاز دوم : استفاده از کنترل ها در این فاز، از کنترل های سرویس دهنده و Validation ( به منظور بررسی صحت داده ورودی توسط کاربر) ، استفاده کرده و کدهای مورد نیاز را هم در سمت سرویس گیرنده ( اسکریپت های همراه فرم وب ) و هم در سمت سرویس دهنده ( کدهای نوشته شده در صفحه Code behind مربوط به صفحه Login ) خواهیم نوشت و در نهایت تگ های HTML تولید شده را بررسی می نمائیم .
مرحله اول : افزودن کنترل های سرویس دهنده به فرم وب : در این مرحله ، با نحوه استفاده از کنترل های سرویس دهنده ASP.NET آشنا خواهیم شد( چهار کنترل Lable ، دو کنترل TextBox ، دو کنترل Button ) سوئیچ به حالت Design ( کلیک بر روی Design Tab ) فعال نمودن پنجره Toolbox ( انتخاب گزینه Toolbox از طریق منوی View و یا فشردن کلیدهای CTRL+ALT+X ) انتخاب کنترل Label ازطریق Web Forms tab موجود در Toolbox و استفرار آن بر روی فرم وب Login.aspx ( در وضعیت Desgin view ) .
تنیظیم خصلت های زیر برای کنترل Label استفاده شده بر روی فرم وب .
( برای مشاهده پنجره Properties مربوط به یک کنترل ، پس از انتخاب کنترل دستور View|Properties را فعال و یا از کلید F4 ، استفاده می نمائیم ) .
فرم وب Login.aspx پس از استقرار اولین کنترل سرویس دهنده Label بر روی آن : افزودن یک کنترل سرویس دهنده Label دیگر بر روی فرم وب Login و تنیظیم خصلت های آن افزودن یک کنترل سرویس دهنده Label دیگر بر روی فرم وب Login و تنیظیم خصلت های آن انتخاب کنترل TextBox از طریق Web Forms tab موجود در Toolbox و استقرار آن بر روی فرم وب Login.aspx ( در مجاورت کنترل label مربوط به "نام" ) انتخاب یک کنترل TextBox دیگر و استقرار آن بر روی فرم وب Login.aspx ( در مجاورت کنترل label مربوط به "رمزعبور" ) انتخاب کنترل Button از طریق Web Forms tab موجود در Toolbox و استقرار آن بر روی فرم وب Login.aspx و تنظیم خصلت های آن انتخاب کنترل Button دیگر و استقرار آن بر روی فرم وب Login.aspx و تنظیم خصلت های آن افزودن یک کنترل سرویس دهنده Label دیگر بر روی فرم وب Login و تنیظیم خصلت های آن ( از کنترل فوق برای نمایش پیام مورد نظر در زمان بررسی صحت داده ورودی توسط کاربر، استفاده می گردد ) .
فرم وب Login.aspx پس از استقرار کنترل های سرویس دهنده مورد نیاز بر روی آن : مرحله دوم : آنالیز کدهای HTML ، تولید شده : در این مرحله با نحوه تبدیل کنترل های سرویس دهنده به عناصر HTML مختص قابل نمایش در مرورگر توسط ASP.NET runtime ، آشنا خواهیم شد.
برای مشاهده محتوی صفحه ، بر روی HTML Tab کلیک می نمائیم .
کد زیر به صورت اتوماتیک برای کنترل های سرویس دهنده استفاده شده در فرم وب Login.aspx ایجاد می گردند.
خصلت runat ="server" ، نشاندهنده سمت سرویس دهنده بودن کنترل است .
برای مشاهده خروجی در مرورگر ، گزینه Debug | Start را انتخاب و یا کلید F5 را فعال می نمائیم .
برای مشاهده خروجی HTML کنترل های سرویس دهنده ، گزینه Source را از طریق منوی View در مرورگر IE انتخاب می نمائیم : همانگونه که مشاهده می شود ، ASP.NET runtime ، کنترل های سرویس دهنده را به عناصر HTML مختص مرورگر ،تبدیل نموده است .
Runtime ممکن است در صورت ضرورت از DHTML به منظور تعیین موقعیت و محل استقرار عناصر متفاوت HTML استفاده نماید .
نتایج مراحل یک و دو فاز دوم : افزودن کنترل ها ی سرویس دهنده مورد نیاز بر روی فرم Login.aspx ( چهار کنترل Lable ، دو کنترل TextBox ، دو کنترل Button ) بررسی کد تولید شده در ویژوال استودیو دات نت برای کنترل ها ی سرویس دهنده که به صورت اتوماتیک ، ایجاد می گردند .
بررسی کد تولید شده توسط ASP.NET Runtime برای کنترل های سرویس دهنده به منظور نمایش توسط مرورگر در بخش سوم این مقاله به بررسی سایر مراحل تعریف شده در فاز دوم ( بررسی صحت داده ،افزودن اسکریپت ، ...
) ، خواهیم پرداخت .
ایجاد یک برنامه وب نمونه در دات نت ( بخش سوم ) فاز دوم : استفاده از کنترل ها مرحله اول : افزودن کنترل های سرویس دهنده به فرم وب مرحله دوم : آنالیز کدهای HTML ، تولید شده مرحله سوم : بررسی صحت و اعتبار داده ها و ارائه پیام خطاء مرحله چهارم : افزودن اسکریپت مرحله پنجم : نوشتن کد لازم در فایل Code Behind در بخش دوم این مقاله ، مراحل اول و دوم تشریح گردید .
در این بخش به بررسی مرحله سوم ، خواهیم پرداخت .
مرحله سوم : بررسی صحت و اعتبار داده ها و ارائه پیام خطاء :در این مرحله با نحوه استفاده از کنترل های Validation به منظور بررسی صحت داده ورودی توسط کاربر ، آشنا خواهیم شد.
سوئیچ نمودن به Design View ( کلیک بر روی Design tab ) استفاده از کنترل RequiredFieldValidator به منظور اطمینان از صحت درج داده ورودی در کنترل txtUserID با توجه به سیاست های مورد نظر و مقداردهی مناسب خصلت های آن : - انتخاب کنترل RequiredFieldValidator ازطریق Web Forms tab موجود در Toolbox و استفرار آن بر روی فرم وب Login.aspx ( پائین کنترل txtUserID ) .
مقداردهی مناسب خصلت های کنترل RequiredFieldValidator .
استفاده از کنترل RequiredFieldValidator به منظور اطمینان از صحت درج داده ورودی در کنترل txtPassword با توجه به سیاست های مورد نظر و مقداردهی مناسب خصلت های آن : - انتخاب کنترل RequiredFieldValidator ازطریق Web Forms tab موجود در Toolbox و استفرار آن بر روی فرم وب Login.aspx ( پائین کنترل txtPassword) .
- مقداردهی مناسب خصلت های کنترل RequiredFieldValidator .
استفاده از کنترل ValidationSummary به منظور نمایش خلاصه اطلاعات بررسی صحت داده های ورودی : - انتخاب کنترل ValidationSummary ازطریق Web Forms tab موجود در Toolbox و استفرار آن بر روی فرم وب Login.aspx ( قسمت پائین صفحه ) مقداردهی مناسب خصلت های ValidationSummary .
فرم وب Login.aspx پس از استقرار کنترل های سرویس دهنده و کنترل های RequiredFieldValidator و ValidationSummary : برای تست صحت داده ها ، گزینه Start را از طریق منوی Debug انتخاب و یا کلید F5 را فعال می نمائیم .
تست اول : کلیک بر روی دکمه "ورود به سایت " ، بدون درج نام و رمز عبور تست دوم : کلیک بر روی دکمه " ورود به سایت " ، درج نام و بدون درج رمز عبور تست سوم : کلیک بر روی دکمه " ورود به سایت " ، درج رمز عبور و بدون درج نام نتایج مراحل اول ، دوم و سوم فاز دوم : افزودن کنترل ها ی سرویس دهنده مورد نیاز بر روی فرم Login.aspx ( چهار کنترل Lable ، دو کنترل TextBox ، دو کنترل Button ) بررسی کد تولید شده در ویژوال استودیو دات نت برای کنترل ها ی سرویس دهنده که به صورت اتوماتیک ، ایجاد می گردند .
بررسی کد تولید شده توسط ASP.NET Runtime برای کنترل های سرویس دهنده به منظور نمایش توسط مرورگر بررسی صحت داده ها در بخش چهارم این مقاله به بررسی سایر مراحل تعریف شده در فاز دوم ( افزودن اسکریپت و نوشتن کد لازم در فایل Code Behind ) ، خواهیم پرداخت .
ایجاد یک برنامه وب نمونه در دات نت ( بخش چهارم ) فاز دوم : استفاده از کنترل ها مرحله اول : افزودن کنترل های سرویس دهنده به فرم وب مرحله دوم : آنالیز کدهای HTML ، تولید شده مرحله سوم : بررسی صحت و اعتبار داده ها و ارائه پیام خطاء مرحله چهارم : افزودن اسکریپت مرحله پنجم : نوشتن کد لازم در فایل Code Behind در بخش های دوم و سوم این مقاله ، مراحل اول ، دوم و سوم مربوط به فاز دوم تشریح گردید .
در این بخش به بررسی سایر مراحل ، خواهیم پرداخت .
مرحله چهارم : افزودن اسکریپت : در این مرحله ، از اسکریپت های سمت سرویس دهنده به عنوان بخشی از کد HTML همراه صفحه فرم وب aspx استفاده می شود .
در این رابطه مراحل زیر را دنبال می نمائیم : افزودن اسکریپت به صفحه ( کلیک بر روی HTML tab ) افزودن یک تگ اسکریپت ( SCRIPT ) در ابتدای صفحه Login.aspx و مقداردهی خصلت Language به Vb ( بعد از تگ HTML > نسبت دهی رویداد Onclick مربوط به کنترل سرویس دهنده "btnSignin " به تابع btnSignin_Click.
پس از تشخیص صحت داده ورودی با توجه به سیاست های تعریف شده در روتین btnSignin_Click ، پیام مورد نظر جهت نمایش در خروجی به خصلت Text کنترل سرویس دهنده lblResult نسبت داده می شود.
برای بررسی صحت داده ورودی سه شرط بررسی و در صورت درست بودن آنان ، پیام " کاربر مجاز" و در صورت عدم صحت، پیام "کاربر غیر مجاز " ، در خروجی نمایش داده می شود.
در این رابطه فیلدهای مربوط به نام و رمز عبور می بایست بیش از چهار حرف بوده و حرف اول نام کاربر با "S " ، شروع گردد .
برای تست صحت داده ها ، گزینه Start را از طریق منوی Debug انتخاب و یا کلید F5 را فعال می نمائیم .
در فیلد "نام" ، مقدار TestSrco و در فیلد "رمز عبور" ، مقدار " 0123457789000" را وارد نموده و دکمه "ورود به سایت " را فعال می نمائیم .
پس از بررسی داده ورودی ، پیام " کاربر غیر مجاز " ، در خروجی نمایش داده می شود .
در صورتی که در فیلد "نام " ، مقدار " Srco " و در فیلد "رمز عبور " ، مقدار " 0123457789000" را وارد نموده و در ادامه دکمه " ورود به سایت " را فعال نمائیم ، با پیام " کاربر مجاز " مواجه خواهیم شد.
مرحله پنجم : نوشتن کد لازم در فایل Code Behind : در این مرحله ، کد لازم را در صفحه Code behind خواهیم نوشت .
کد فوق ، از مرحله طراحی جدا بوده و بدین ترتیب خوانائی برنامه بالا رفته و کد نوشته شده از عناصر HTML ، متمایز می گردد .
انتخاب گزینه Solution Explorer از طریق منوی View و یا فشردن کلیدهای CTRL+ALT+I مشاهده صفحه Code behind ، مربوط به صفحه Login.aspx ( کلیک سمت راست بر روی صفحه Login.aspx ( در Solution Explorer ) و انتخاب گزینه View code ) .
افزودن کد زیر به تابع Page_Load ( هدف صرفا" نشان دادن توانائی رویداد Page_Load است ).
نمایش اولیه فرم Login در مرورگر : با کلیک ( Double Click ) بر روی دکمه " ورود به سایت "، متد btnSignin_Click در فایل Code behind ایجاد می گردد .
کد مورد نظر به منظور برخورد با رویداد کلیک ، می بایست در این تابع ، درج گردد .
( Event Handler ) .
سوئیچ به Design view ، گزینه Designer را از طریق منوی View انتخاب و یا کلید های SHIFT+F7 را فعال می نمائیم .
مشاهده محتوی صفحه ( کلیک بر روی HTML tab ) حذف کد زیر ( کد فوق ، به منظور بررسی و تست اسکریپت های سمت سرویس گیرنده در فرم Login.aspx استفاده شده بود) حذف "OnClick="btnSignin_Click از سطر مربوط به تعریف کنترل سرویس دهنده btnSignin ( دکمه "ورود به سایت " ) .
نتایج فاز دوم : افزودن کنترل ها ی سرویس دهنده مورد نیاز بر روی فرم Login.aspx ( چهار کنترل Lable ، دو کنترل TextBox ، دو کنترل Button ) بررسی کد تولید شده در ویژوال استودیو دات نت برای کنترل ها ی سرویس دهنده که به صورت اتوماتیک ، ایجاد می گردند .
بررسی کد تولید شده توسط ASP.NET Runtime برای کنترل های سرویس دهنده به منظور نمایش توسط مرورگر استفاده از کد سمت سرویس گیرنده به منظور بررسی صحت داده ورودی توسط کاربر استفاده از کد سمت سرویس دهنده و استقرار آنان در فایل Code Behind به منظور بررسی صحت اعتبار داده ورودی توسط کاربر در بخش پنجم این مقاله به بررسی سایر فازهای تعریف شده برای حل مسئله نمونه ، خواهیم پرداخت .
ایجاد یک برنامه وب نمونه در دات نت ( بخش پنجم ) در این بخش به بررسی عملیات مرتبط با فاز سوم ، خواهیم پرداخت .
فاز سوم : اشکال زدائی برنامه اشکال زدائی یک برنامه از جمله مواردی است که هر برنامه نویس با آن سروکار خواهد داشت و لازم است برای تشخیص اشکال موجود در برنامه ( گرامری ، منطقی ، زمان اجراء ) از پتانسیل فوق استفاده تا در زمان مطلوب اشکال موجود در برنامه تشخیص و برطرف گردد .
ویژوال استودیو دات نت ، دارای امکانات متعددی در جهت اشکال زدائی برنامه های نوشته شده در محیط دات نت بوده و برنامه های وب نیز از این قاعده مستثنی نبوده و می توان از امکانات موجود در جهت رفع اشکال آنان استفاده نمود.در فاز سوم ایجاد یک برنامه وب ، با نحوه اشکال زدائی ( Debug ) یک برنامه وب ASP.NET در ویژوال استودیو دات نت ، آشنا شده و به بررسی مواردی همچون تنظیم Break Points ، استفاده از Intellisense در دیباگ و نوشتن در پنجره خروجی ، خواهیم پرداخت .
مرحله اول : فعال نمودن امکان دیباگ در برنامه های وب مرحله دوم : تنظیم برک پوینت( Break Points ) مرحله سوم : اشکال زدائی هوشمند مرحله چهارم : استفاده از Debug.write فاز سوم : اشکال زدائی برنامه مرحله اول : فعال نمودن امکان دیباگ در برنامه های وب ، در این مرحله با نحوه فعال نمودن دیباگ در برنامه های وب ASP.NET با استفاده از فایل Web.Config آشنا خواهیم شد.
فعال نمودن پنجره Solution Explorer ( انتخاب گزینه Solution Explorer از طریق منوی View و یا فشردن کلید های CTRL+ALT+L ) فعال نمودن فایل Web.Confing موجود در پنجره Solution Explorer از فایل Web.Config برای تعریف و مقداردهی پارامترهای لازم در ارتباط با پیکربندی برنامه استفاده می گردد .
در این رابطه ، لازم است از وجود دستورالعمل زیر در بخش ، اطمینان حاصل گردد.
پس از اطمینان از وجود کد فوق ، امکان دیباگ در برنامه فعال و می توان از مزایای آن در جهت اشکال زدائی برنامه ها استفاده نمود .
مرحله دوم : تنظیم برک پوینت ( Break Points ) : در این مرحله ، با نحوه ایجاد Breakpoint در یک برنامه وب آشنا خواهیم شد .
Break Point ، نقاطی در برنامه هستند که برنامه اجرای خود را تا آن نقطه انجام و با رسیدن به نقطه فوق ، متوقف شده و برنامه نویس می تواند مقادیر متغیرها ، خروجی و سایر موارد مرتبط با عملکرد برنامه را مشاهده و بر اساس مشاهدات فوق ، اقدام به اشکال زدائی برنامه نماید.
فعال نمودن فایل Login.aspx ( کلیک مضاعف بر روی فایل فوق از طریق Solution Explorer ) مشاهده صفحه Code Behind ( انتخاب View | Code ، فعال نمودن کلید F7 ، کلیک سمت راست برروی صفحه Login.aspx در پنجره Solution Explorer و انتخاب گزینه View Code ) انتخاب کد اجرائی زیر در فایل Code Behind و گزینه Insert BreakPoint ( کلیک سمت راست ) اجرای برنامه ( Debug | Start و یا فعال نمودن کلید F5 ) درج مقادیر مورد نظر در فیلدهای " نام " و "رمز عبور " ( Srco و Srcopassword ) کلیک بر روی دکمه " ورود به سایت " دیباگر در خط مشخص شده ( Break Point ) متوقف و آن را به رنگ زرد ، نمایش خواهد داد : مرحله سوم : اشکال زدائی هوشمند : در این مرحله با نحوه استفاده از اشکال زدائی هوشمندانه ، آشنا خواهیم شد.
حرکت موس و استقرار آن بر روی بخش Text مربوط به txtUserID.Text .
در چنین حالتی یک Tool tip و با مقدار " Srco " ، نمایش داده می شود.
حرکت موس و استقرار آن بر روی بخش Length مربوط به txtUserID.Text.Length .
در چنین حالتی یک Tool tip و با مقدار " 4 " ، نمایش داده می شود .
فعال نمودن پنجره Command ( انتخاب Debug | Windows | Immediate ) تایپ دستور " txtUserID ?"، در ادامه تمامی تمامی خصلت های مربوطه نمایش خواهد داد .
انتخاب خصلت Text و فشردن کلید Enter .
فشردن مجدد کلید Enter به منظور نمایش مقدار موجود در خصلت Text در کنترل txtUserID مرحله چهارم : استفاده از Debug.write : در این مرحله با نحوه استفاده از Debug.Write به منظور نوشتن خروجی در پنجره خروجی ، آشنا خواهیم شد .
مشاهده صفحه Code Behind ( انتخاب View | Code ، فعال نمودن کلید F7 ، کلیک سمت راست برروی صفحه Login.aspx در پنجره Solution Explorer و انتخاب گزینه View Code ) افزودن کد زیر درابتدای صفحه Login.aspx.vb .
اضافه نمودن کد زیر به انتهای متد btnSignin_Click حذف Break point ایجا د شده در مرحله قبل ( Debug | Clear all break points و یا فعال نمودن کلید های CTRL+SHIFT-F9 ) اجرای برنامه ( Debug | Start ، و یا فعال نمودن کلید F5 ) نمایش پنجره خروجی ( View | Other Windows | Output و یا فعال نمودن کلیدهای CTRL+ALT+O ) سوئیچ به پنجره مرورگر درج داده مورد نظر در فیلدهای "نام " و " رمز عبور " "( Srco و Srcopassword ) کلیک بر روی دکمه " ورود به سایت " برگشت به محیط ویژوال استودیو و مشاهده مقادیر مربوط به فیلدهای نام ، رمز عبور ، نتایج در پنجره خروجی توضیحات و رفع اشکالات احتمالی در زمان فعال نمودن دیباگ در ویژوال استودیو ممکن است با برخی خطاها مواجه و عملا" امکان دیباگ فعال نگردد .
در این رابطه لازم است در ابتدا از فعال شدن دیباگ در ارتباط با پروژه ایجاد شده ، اطمینان حاصل نمائیم .
یک پروژه ویژوال استودیو دارای پیکربندی های مجزا برای دیباگ و Relase می باشد .
در صورتی که برنامه با استفاده از ویزاردهای مربوطه در ویژوال استودیو ایجاد شده باشد ، ویژوال استودیو به صورت اتوماتیک ، پیکربندی های مربوطه را ایجاد و گزینه های پیش فرض مناسب را برای آنان در نظر گرفته و مقداردهی مناسب آنان راانجام خواهد داد .
برای مشاهده و یا تغییر تنظیمات انجام شده در رابطه با پیکربندی دیباگ ، مراحل زیر را دنبال می نمائیم : انتخاب پروژه از طریق پنجره Solution Explorer انتخاب Property Pages از طریق منوی View انتخاب Debug ، از طریق لیست Configuration موجود در جعبه محاوره ای Project> Property Pages > فعال نمودن فولدر Configuration Properties و انتخاب تنظیمات مورد نظری که قصد تغییر آنان را داریم .
ویرایش مقادیر مورد نظر در پنجره Properties در زمان دیباگ نمودن یک برنامه وب ASP.NET برروی کامپیوتری که ویندوز 200 ( نسخه Server ) به عنوان Domain controller به همراه Service Pack 4 نصب شده باشد ، ممکن است با خطای زیر مواجه شویم : علت اشکال فوق به Account استفاده شده برای اجرای ASP.NET Worker Process ( به صورت پیش فرض IWAM بر روی Domain Controller می باشد ) مربوط می گردد که دارای مجوز "Impersonate a client after authentication" ، در local security policy نمی باشد .مشکل فوق ، در مواردی که Service Pack 4 ویندوز 2000 نصب و در ادامه ویژوال استودیو نصب شده باشد، محقق می گردد.
در چنین وضعیتی IWAM account دارای مجوز اشاره شده در local security policy نمی باشد .
مجوز "Impersonate a client after authentication" ، ( به آن SeImpersonatePrivilege نیز گفته می شود ) یک تنظیم امنیتی جدید است که اولین مرتبه در Service pack 4 ویندوز 2000 ، ارائه شده است .
برای حل مشکل فوق ، مراحل زیر را دنبال می نمائیم : فعال نمودن Domain Controller Security Policy ( از طریق Start|Programs|Administrative Tools ) کلیک بر روی Security Settings کلیک بر روی Local Policies و در ادامه کلیک بر روی User Rights Assignment از طریق پانل سمت راست ، Double Click بر روی Impersonate a client after authentication در پنجره Security Policy Setting ، کلیک بر روی Define these policy settings فعال نمودن دکمه Add و در ادامه Browse در پنجره Select Users or Groups ، انتخاب IWAM account ، کلیک بر روی دکمه Add و فشردن دکمه OK فعال نمودن دکمه OK ( دو مرتبه ) برای بهنگام سازی سیاست امنیتی جدید تعریف شده ، دستور زیر را از طریق خط دستور تایپ و اجراء می نمائیم راه اندازی سرویس دهنده وب IIS ( تایپ دستور iisreset از طریق خط دستور ) نتایج فاز سوم : فعال نمودن دیباگ در برنامه های وب ایجاد Break point اشکال زدائی هوشمند استفاده از Debug.write آشنائی با برخی اشکالات موجود در زمان فعال نمودن دیباگ در بخش ششم این مقاله به بررسی سایر فازهای تعریف شده برای حل مسئله نمونه ، خواهیم پرداخت .
ایجاد یک برنامه وب نمونه در دات نت ( بخش ششم ) در این بخش به بررسی عملیات مرتبط با فاز چهارم ، خواهیم پرداخت .
فاز چهارم : مدیریت وضعیت برنامه برنامه های وب از معماری سرویس گیرنده و سرویس دهنده تبعیت می نمایند .این بدان معنی است که بخشی از برنامه بر روی کامپیوتر سرویس گیرنده و بخشی دیگر بر روی سرویس دهنده اجراء و با همیاری و همکاری یکدیگر ، اهداف تعریف شده در برنامه را دنبال می نمایند.
سرویس گیرنده و سرویس دهنده برای ارتباط با یکدیگر می بایست از مجموعه ای قوانین مدون ( پروتکل ) استفاده نمایند.
در این راستا از پروتکل HTTP ، استفاده می گردد .
ماهیت پروتکل فوق بصورت Stateless می باشد ، این بدان معنی است که ارتباط ایجاد شده صرفا" برای یک تراکنش ، نگهداری می گردد .
قبل از این که یک سرویس گیرنده و سرویس دهنده قادر به مبادله اطلاعات باشند ، می بایست بین آنان یک ارتباط ( Connection ) ایجاد گردد .
سرویس گیرنده و سرویس دهنده با استفاده از پروتکل TCP/IP یک ارتباط را برقرار می نمایند .
سرویس دهندگان و سرویس دهندگان از پروتکل HTTP برای ارسال درخواست ها و پاسخ به درخواست ها ، استفاده می نمایند .
سرویس دهنده وسرویس گیرنده ارتباط ایجاد شده را صرفا" برای یک تراکنش نگهداری و در این راستا ، چهار مرحله عملیات دنبال خواهد شد .
مرحله اول : ایجاد ارتباط .
در این مرحله با استفاده از پروتکل TCP/IP یک ارتباط بین سرویس گیرنده و سرویس دهنده برقرار می گردد .
برای تشخیص نوع پروتکل ها ، برنامه ها از یک عدد صحیح منحصر بفرد که " شماره پورت " ، نامیده می شود ، استفاده می نمایند .
جدول زیر برخی از پروتکل های رایج و شماره پورت نسبت داده شده به آنان را نشان می دهد.
مرحله دوم :ایجاد یک درخواست توسط سرویس گیرنده .
در دومین مرحله ، سرویس گیرنده اقدام به ایجاد یک درخواست و ارسال آن برای سرویس دهنده وب می نماید.
مرحله سوم : پاسخ سرویس دهنده وب .پس از دریافت و تفسیر درخواست ارسالی، سرویس دهنده پاسخ لازم را برای سرویس گیرنده ارسال می نماید.
مرحله چهارم : قطع ارتباط بین سرویس دهنده و سرویس گیرنده .سرویس دهنده مسئولیت قطع ارتباط با سرویس گیرنده پس از پردازش و پاسخگوئی به درخواست را برعهده دارد .مسئولیت فوق در انحصار سرویس دهنده نبوده و سرویس گیرنده نیز می بایست توانائی غیرفعال نمودن ارتباط ایجاد شده را داشته باشد .
مثلا" در صورتی که شما بر روی دکمه Stop مرورگر خود کلیک نمائید ، مرورگر می بایست توانائی غیرفعال نمودن ارتباط ایجاد شده را دارا باشد .
برنامه های وب با توجه به واقعیت های موجود در رابطه با ماهیت پروتکل HTTP خصوصا" ویژگی Stateless آن می بایست از راهکاری متعددی به منظور نگهداری داده در بین تراکنش های متعدد بین سرویس گیرنده و سرویس دهنده استفاده نمایند( Round trips ).
اهمیت موضوع فوق تا به آن اندازه است که هر یک از تکنولوژی های موجود که از آنان به منظور پیاده سازی برنامه های وب استفاده می شود ، به مقوله " مدیریت وضعیت برنامه " ( State Management ) ، با دقت پرداخته و در این راستا گزینه های متعددی را در اختیار طراحان و پیاده کنندگان برنامه های وب قرار می دهند .
با توجه به ماهیت برنامه های وب (جایگاه سرویس گیرنده وسرویس دهنده ) ، راهکارهای ارائه شده دارای گرایش سمت سرویس دهنده و یا سمت سرویس گیرنده می باشند .
با این مقدمه طولانی و خسته کننده !
به بررسی مدیریت وضعیت برنامه با تاکید بر امکانات ارائه شده سمت سرویس گیرنده و سرویس دهنده در دات نت ، خواهیم پرداخت .
در این راستا هدف ، تشریح تمامی امکانات ارائه شده نبوده و صرفا" قصد داریم با ذکر نمونه هائی به بررسی دو رویکرد فوق ( سمت سرویس گیرنده ، سمت سرویس دهنده ) ، بپردازیم .