جمع آوري و ذخيره اطلاعات کاربران ، يکي از متداولترين عملياتي است که توسط پياده کنندگان نرم افزارانجام مي شود . عمليات فوق مي تواند صرفا" در حد و اندازه دريافت يک نام و يا آدرس Email باشد و يا اقلام اطلاعاتي متعددي نظير اطلاعات مورد نياز براي ريجستر نمودن کاربران را شامل شود (نام و نام خانوادگي ، آدرس Email ، شماره تلفن ، آدرس و ... ). پس از دريافت اطلاعات از کاربران و به منظور پردازش آنان نمي توان صرفا" به امکانات و پتانسيل هاي ارائه شده در html ، اکتفاء نمود . در چنين مواردي مي بايست اطلاعات اخذ شده به منظور انجام پردازش هاي ضروري براي سرويس دهنده وب ، ارسال گردند . سرويس دهنده وب ، پس از انجام پردازش هاي مورد نياز و استخراج نتايج ، ماحصل عمليات را که مي تواند يک نسخه بهنگام شده از صفحه و يا در برخي موارد يک صفحه ديگر را براي کاربر ارسال نمايد .
به منظور دريافت و ارسال اطلاعات کاربران در صفحات وب ، عموما" از يک "فرم " ، استفاده مي شود . بدين منظور تگ هاي خاصي در html پيش بيني شده است . فرم هائي که با استفاده از پتانسيل هاي html ايجاد مي گردند ، فرم هاي html ناميده شده و مي توان از کنترل هاي html متعددي نظير Textbox , Checkbox و Dropdown list همراه آنان استفاده نمود . تمامي کنترل هاي فوق ، تسهيلات لازم در خصوص دريافت و ارسال اطلاعات کاربران را ارائه مي نمايند.
ASP.NET علاوه بر کنترل هاي html ، داراي کنترل هاي اختصاصي خود بوده که در اين رابطه برخي مفاهيم جديد در خصوص آنان نيز ارائه شده است . در گذشته و در مواردي که فرم ها با استفاده از فرم هاي html ايجاد مي گرديدند ، زماني که يک کنترل خاص بر روي يک فرم توسط کاربر انتخاب مي گرديد ، مسئوليت برخورد با داده و يا اطلاعات درج شده در کنترل مورد نظر بر عهده مرورگر بود و صرفا" زماني که فرم بهمراه اطلاعات موجود براي سرويس دهنده وب ، ارسال مي گرديد ، مسئوليت سرويس دهنده در خصوص برخورد مناسب و تعريف شده با داده هاي موجود در فرم ، آغاز مي گرديد . در فريمورک دات نت ، ويژگي هاي جديدي نظير بخاطر سپردن داده درج شده توسط کاربر در يک Textbox ، فراهم شده است .
در مجموعه مقالاتي که ارائه خواهد شد به بررسي موارد زير پرداخته و از اين رهگذر توانمندي خود را در بکارگيري فرم ها ، استفاده از کنترل هاي HTML و کنترل هاي سرويس دهنده ASP.NET ، افزايش خواهيم داد .
• مدل سرويس گيرنده - سرويس دهنده وب
• فرم هاي وب و فرم هاي HTML
• کنترل هاي فرم HTML
• کنترل هاي سرويس دهنده
فرم ها در دنياي واقعي
شايد اين سوال براي شما مطرح شده باشد که چرا در برنامه هاي وب به فرم ها ، نياز داريم ؟ در پاسخ مي توان به موارد زير اشاره نمود :
• دريافت اطلاعات از کاربران به منظورريجستر نمودن آنان ، خريد يک محصول ، پيوستن به ليست هاي Email و يا Newsgroup
• دريافت نقظه نظرات کاربران. بدين ترتيب مي توان ساير صفحات را با توجه به اطلاعات دريافتي سفارشي نموده و چيزي را نمايش دهيم که مورد علاقه کاربران است .
• آگاهي از وضعيت ارائه يک سرويس و نحوه بهبود آن ( راي گيري )
• درج و ويرايش متن به صورت online در يک Forum و يا newsgroup
فرم ها ، يکي از متداولترين روش هاي دريافت اطلاعات از کاربران و ارسال آنان براي سرويس دهنده ، محسوب مي گردند.
صفحات وب ، فرم هاي HTML ، فرم هاي وب
همزمان با عرضه يک فن آوري جديد، مجموعه اي از واژه ها و اصطلاحات جديد نيز مطرح مي گردد. ASP.NET نيز از اين قاعده مستثني نبوده و تمامي واژه هائي که از آنان به منظور تشريح عمليات يک صفحه وب ساده استفاده مي گردد ، بهنگام شده تا نشاندهنده عمليات واقعي و پردازش هاي مرتبط با فرم ها باشند . در ابتدا لازم است که با برخي از اين واژه ها بيشتر آشنا شويم :
• صفحات وب: يک صفحه وب،نظير يک بسته حاوي کد Html است که در آن از تگ هاي HTML که ابتداي آن با <html> و انتهاي آن با < html /> مشخص مي گردد ، استفاده مي شود . صفحات وب بر روي يک ماشين خاص مستقر شده و سرويس دهنده وب مسئوليت پاسخگوئي به درخواست ها را برعهده خواهد داشت . محتويات يک صفحه وب مي تواند شامل متن ، گرافيک ، صوت ، فيلم و يا کد هاي نوشته شده با استفاده از تکنولوژي هائي نظير جاوا اسکريپت باشد .
• فرم HTML : يک فرم Html ، صفحه وبي است که در آن از يک و يا چندين کنترل فرم به منظور دريافت اطلاعات کاربران و ارسال آنان براي سرويس دهنده استفاده مي گردد . button ,textbox , checkbox و dropdown lists ، متداولترين کنترل هاي استفاده شده در فرم ها محسوب مي گردند. کاربران ، اطلاعاتي را از طريق فرم و با توجه به کنترل هاي موجود بر روي آن وارد نموده و در ادامه با فشردن دکمه Submit آنان را براي سرويس دهنده وب ، ارسال مي نمايد . با اين که به منظور ارسال اطلاعات بر روي سرويس دهنده به چيزي بيش از HTML ، نياز نخواهد بود ، سرويس دهنده نيازمند بکارگيري تکنولوژي هاي اضافه اي ( مثلا" ASP.NET ) به منظور انجام عمليات و پردازش هاي لازم در ارتباط با اطلاعات دريافتي است . صفحات HTML شامل فرم هائي مي باشند که عموما" با انشعاب html ( و يا در برخي موارد htm )، ذخيره مي گردند.
• فرم هاي وب : فرم هاي وب ، مشابه فرم هاي HTML بوده و با مشاهده شکل ظاهري آنان نمي توان تفاوت موجود بين آنان را تشخيص داد . با استفاده از کد ASP.NET در فرم هاي وب و ايجاد ارتباط بين هر يک از کنترل هاي موجود بر روي يک فرم وب و روتين هاي نوشته شده ، مي توان فرم هائي کاملا" پاسخگو را ايجاد نمود . معمولا" در مواردي که از واژه "فرم وب " ، استفاده مي گردد ، بنوعي به دو بخش کد جداگانه در آنان اشاره مي گردد :
تمپليت هاي Html : اين تمپليت ها شامل اطلاعات مربوط به لي اوت صفحه و کنترل هاي سرويس دهنده ASP.NET مي باشند . مسئوليت نمايش فرم وب بر روي مرورگر به عهده اين بخش واگذار شده است .
کد ASP.NET ، منطق پردازش لازم در ارتباط با فرم هاي وب را ارائه مي نمايد . بخش فوق ، مسئوليت توليد محتويات پويا را که توسط فرم وب نمايش داده خواهد شد ، برعهده دارد .
• فرم هاي ASP.NET : با اين که ممکن است يک فرم وب به شکل يک فرم Html نيز ارائه گردد ، بخاطر داشته باشيد که آنان داراي ماهيتي کاملا" متفاوت مي باشند. زماني که از ASP.NET بهمراه فرم ها استفاده نموده و يک فرم وب را ايجاد مي نمائيم ، مي توان از کنترل هاي سرويس دهنده ASP.NET همراه تگ هاي HTML استفاده بعمل آورد . کنترل هاي سرويس دهنده ، علاوه بر افزايش توان عملياتي برخي از عناصر HTML ( نظير کنترل هاي فرم ) ، پتانسيل هاي جانبي ديگري را نيز ارائه مي نمايند . يک کنترل سرويس دهنده داراي شکل ظاهري مشابه عناصر HTML مي باشد . ولي عملا" نقطه اي در صفحه را مشخص مي نمايد که سرويس دهنده نيازمند توليد يک عنصر شبه HTML مرتبط با آن است . مزيت روش فوق در مقابل استفاده از کنترل هاي فرم ، ايجاد محتويات پويا براي فرم قبل از ارسال آن براي مرورگر است . براي ايجاد محتويات پويا بر روي يک فرم، مي توان کد مورد نظر را در هر محلي از صفحه مستقر نمود. بدين منظور از تگ <script>، استفاده مي گردد. از تگ فوق مي توان در هرمحلي از فايل aspx . ، استفاده بعمل آورد .( معمولا" به منظور افزايش خوانائي برنامه آن را در ابتداي صفحه قرار داده و در موارد ديگر مي توان تمامي کدهاي نوشته شده را در يک فايل جداگانه ، قرار داد ) .
امکان استفاده از کنترل هاي فرم هاي Html براي فرم هاي وب نيز وجود دارد . ASP.NET بهمراه مجموعه اي از کنترل هاي فرم اختصاصي که بر روي سرويس دهنده اجراء مي گردند ، ارائه شده است . معمولا" سعي مي گردد در فرم هاي وب از کنترل هاي سرويس دهنده استفاده شود ، چراکه کنترل هاي فوق قادربه بخاطر سپردن وضعيت کنترل هاي متفاوت ( نظير درج متن در يک textbox ) نيز مي باشند .
اجازه دهيد با چهار اصطلاح جديدي که به آنان اشاره گرديد ، بطور خلاصه آشنا شويم :
• يک صفحه وب ، صرفا" شامل تگ هاي HTML مي باشد ( اين نوع صفحات مي توانند شامل اسکريپت هاي نوشته شده با يک زبان اسکريپت نويسي نظير جاوااسکريپت نيز باشند ) .
• يک فرم HTML ، صفحه وبي است که در آن از کنترل هاي فرم HTML استفاده شده است .
• يک فرم وب ، صفحه اي است که در آن کد ASP.NET بهمراه يک تمپليت HTML ، استفاده شده است .
• يک فرم ASP.NET ، فرم وبي است که در آن از کنترل هاي سرويس دهنده ASP.NET استفاده شده است .
مدل سرويس گيرنده - سرويس دهنده
• سرويس دهنده وب ، امکان دسترسي به صفحات وب شما رادر تمام مدت روز و براي هر متقاصي فراهم مي نمايد. ارائه فضاي لازم به منظور سازماندهي و ذخيره سازي صفحات وب نيز از جمله وظايف سرويس دهنده وب است .
• زماني که شما درخواست يک صفحه وب را از يک سايت مي نمائيد ، بطور اتوماتيک با سرويس دهنده وب آن ارتباط برقرار مي نمائيد . فرآيند ارسال آدرس درخواستي شما ( URL ) ، "ايجاد يک درخواست براي سرويس دهنده" ، ناميده مي شود . سرويس دهنده وب ،درخواست ارسالي شما را بررسي نموده و پس از يافتن صفحه درخواستي و اجراي کد مندرج در آن ، پاسخ لازم به درخواست شما را خواهد داد . فرآيند فوق ، "پاسخ به مرورگر" ناميده مي شود . در تمامي فرآيند فوق ، مرورگر وظيفه و يا نقش سرويس گيرنده را برعهده داشته و سرويس دهنده وب ، نقش سرويس دهنده را برعهده دارد . در سناريوي فوق که به "ارتباط سرويس گيرنده و سرويس دهنده " ، مشهور است ، سرويس دهنده مسئوليت ذخيره سازي ، تفسير و توزيع داده را برعهده داشته و سرويس گيرنده با دستيابي به سرويس دهنده امکان دريافت داده را پيدا مي نمايد .
پروتکل HTTP
• به منظور مبادله اطلاعات بين سرويس گيرنده و سرويس دهنده از پروتکل HTTP استفاده مي گردد . از پروتکل فوق ، به منظور انتقال اطلاعات از يک ماشين به ماشين ديگر در وب استفاده مي گردد .زماني که شما يک پيشوند // :http را مشاهده مي نمائيد ، نشاندهنده اين موضوع است که از پروتکل HTTP استفاده خواهد شد . HTTP ، پروتکل پيش فرض استفاده شده توسط مرورگرهاي وب مي باشد . مثلا" در صورتي که شما آدرس www.srco.ir را در بخش آدرس مرورگر خود تايپ نمائيد ، مرورگر بطور اتوماتيک آن را به http://www.srco.ir تبديل مي نمايد .
• پيام ارسالي توسط مرورگر به سرويس دهنده وب که در آن درخواست يک صفحه خاص شده است را HTTP Request مي نامند . زماني که سرويس دهنده وب درخواست فوق را دريافت مي نمايد ، پس از بررسي آن و در صورت يافتن فايل درخواستي آن را با فرمت Html براي مرورگر ارسال مي نمايد( HTTP Response ) . در صورتي که سرويس دهنده وب ، فايل درخواستي را پيدا ننمايد با ارسال يک پيام خطاء سرويس گيرنده را از اين موضوع آگاه مي نمايد .
• HTTP يک پروتکل Stateless است . در اين رابطه پس از ايجاد درخواست و پاسخ به آن ، ارتباط ايجاد شده منطقي بين سرويس گيرنده و سرويس دهنده قطع خواهد شد . در صورتي که سرويس گيرنده درخواست يک صفحه ديگر از سرويس دهنده را داشته باشد ، مجددا" يک ارتباط ديگر و بدون بخاطرسپردن و يا يادآوري عمليات قبلي ، ايجاد مي گردد . ( تک تراکنشي )
نحوه ارائه يک صفحه وب در ASP.NET
• مرحله اول : سرويس گيرنده درخواست يک صفحه وب را مي نمايد .
• مرحله دوم : سرويس دهنده بررسي لازم در خصوص يافتن فايل درخواستي را آغاز مي نمايد . در صورتي که فايل فوق از نوع صفحات ASP.NET باشد ، مي بايست کد موجود در آن به منظور توليد Html مورد نياز اجراء شده و ماحصل عمليات براي مرورگر ، ارسال گردد .
• مرحله سوم : در صورتي که فايل درخواستي داراي پسوند aspx. باشد ، سرويس دهنده آن را به منظور پردازش در اختيار aspnet_isapi.dll ( مرتبط با سرويس دهنده وب ) ، قرار خواهد داد . aspnet_isapi.dll چيز زيادي را خود انجام نداده و صرفا" کد ASP.NET را به مقصد CLR) Common Language Runtime) ، هدايت مي نمايد. در صورتي که کد ASP.NET قبلا" کمپايل نشده باشد، در ادامه ترجمه شده و در نهايت اجراء و خروجي آن به صورت Html ايجاد مي گردد . ( توليد پوياي HTML ) .
• مرحله چهارم : HTML توليد شده در مرحله قبل براي مرورگر ، ارسال مي گردد .
• مرحله پنجم : مرورگر صفحه وب را نمايش خواهد داد .
پس از آشنائي با مدل سرويس گيرنده - سرويس دهنده ، پروتکل HTTP و نحوه ارائه يک صفحه وب در ASP.NET به بررسي فرم هاي HTML خواهيم پرداخت . پس از آشنائي با فرم هاي HTML ، امکان معرفي و استفاده سريعتر از کنترل هاي سرويس دهنده ASP.NET ، فراهم مي گردد .
تگ <form>
تگ <form> يک تگ container است که از آن به منظور نمايش مجموعه اي از کنترل هاي فرم که پياده کنندگان تمايل به استفاده از آنان به منظور ارسال اطلاعات براي سرويس دهنده را دارند ، استفاده مي گردد . ما همچنان نيازمند استفاده از ساير تکنولوژي ها بر روي سرويس دهنده به منظور پشتيباني و انجام پردازش هاي لازم در ارتباط با داده هاي ارسالي از سرويس گيرنده مي باشيم .
در مرورگر نت اسکيپ قبل ازنسخه شماره شش ، کنترل هاي فرم نمي توانند بدون استفاده از تگ <form> نمايش داده شوند . به عبارت ديگر تمامي کنترل هاي فرم نظير textbox و radio button مي بايست درون تگ <form> ، قرار داده شوند ، در غير اينصورت مرورگر نت اسکيپ قادر به نمايش آنان نخواهد بود . در IE و Opera همچنان مي توان کنترل هاي فرم را بدون استفاده از تگ <form> ، نمايش داد ، ولي در صورتي که قصد ارسال داده براي سرويس دهنده وجود داشته باشد ، مي بايست کنترل ها درون يک تگ <form> ، قرار گيرند . بهمراه تگ فوق از خصلت هاي متعددي ( يازده مورد ) استفاده مي گردد . در ادامه به بررسي صرفا" دو نمونه ضروري آنان خواهيم پرداخت ( action ، method ) .
خصلت action ، صفحه وب مورد نظر به منظور دريافت داده هاي درج شده بر روي يک فرم را مشخص مي نمايد . نحوه استفاده از خصلت action به صورت زير است :
<form action="testpage.aspx" ... > |
زماني که يک فرم براي سرويس دهنده ارسال مي گردد ، مي بايست صفحه وبي که قرار است اطلاعات به آن تحويل داده شوند ، مشخص گردد . دربرخي موارد ممکن است پاسخ يک صفحه براي خود آن صفحه ارسال گردد .
خصلت method : خصلت فوق ، روش استفاده شده به منظور ارسال داده در پروتکل HTTP را مشخص مي نمايد . به منظور ارسال داده از روش هاي متفاوتي استفاده مي گردد . روش هاي GET و POST دو نمونه متدوال در اين زمينه مي باشند .
متد GET : در اين روش داده موجود بر روي يک فرم که قرار است براي سرويس دهنده ارسال شود ، به انتهاي URL و به شکل " نام / مقدار" ، اضافه مي گردد. متد GET، گزينه پيش فرض در خصوص نحوه ارسال اطلاعات يک فرم مي باشد .
اولين بخش از زوج "نام / مقدار" ، نشاندهنده "نام" و دومين بخش مقدار مورد نظر به منظور ذخيره سازي را نشان مي دهد. نام و مقدار متناظر با آن به صورت اتوماتيک از يک عنصر موجود بر روي فرم نظير يک textbox ويا checkbox ، اخذ مي گردند. نام کنترل استفاده شده بر روي فرم ، نام استفاده شده در متد GET بوده و محتوياتي را که کاربر در کنترل مورد نظر درج و يا انتخاب مي نمايد، مقدار موردنظر را مشخص مي نمايد . در مثال فوق ، 'sitename' ، نام مورد نظر بوده و 'Srco' ، مقدار مرتبط با آن است . مرورگر در زمان ارسال صفحه براي سرويس دهنده ، اطلاعات فوق را به صورت اتوماتيک به URL اضافه مي نمايد:
http://www.srco.ir/testpage.aspx?sitename =Srco |
امکان استفاده بيش از يک زوج نام /مقدار بهمراه يک URL وجود خواهد داشت . در چنين مواردي هر زوج توسط علامت "&" ( ampersand ) ، از يکديگر جدا مي گردند .
http://www.srco.ir/testpage.aspx?sitename =Srco&webmaster=TEST |
بخش اضافه شده به URL را query string مي گويند . GET تنها روش موجود به منظور ارسال داده بين سرويس گيرنده و سرويس دهنده نمي باشد و در اين رابطه از متد POST نيز استفاده مي گردد .
متد POST : يکي از معايب ارسال داده با استفاده از query string ، به ماهيت ارسال اطلاعات برمي گردد . درصورتي که ضرورتي و يا علاقه اي به نمايش داده ارسالي در آدرس URL را نداشته باشيم، مي توان از متد POST استفاده نمود . عملکرد روش فوق تا اندازه اي شبيه متد GET بوده و تنها تفاوت اساسي بين آنان به ارسال داده در بدنه HTTP Requets برمي گردد ( نه به عنوان بخشي همراه URL ) . سياست فوق ، ايمني بسيار بالائي را نسبت به متد GET ارائه نمي نمايد و ما صرفا" داده ارسالي را در URL مشاهده نمي نمائيم . متد POST ، همچنين امکان ارسال حجم بيشتري از اطلاعات را فراهم مي نمايد. برخي از سرويس دهندگان وب داراي محدوديت حجم متن ارسالي همراه يک URL مي باشند. متد POST ، داراي چنين محدوديتي نمي باشد.
درASP.NET به منظور انتخاب روش ارسال اطلاعات در يک فرم ، گزينه اي وجود نداشته و تمامي فرم ها با استفاده از متد POST براي سرويس دهنده ارسال مي گردند .
کنترل هاي فرم HTML
براي تعريف اکثر کنترل هاي فرم Html از تگ <Input> ، استفاده مي گردد.در ادامه با کنترل هاي فرم HTML که امکان استفاده از آنان به همراه صفحات وب وجود دارد ، بيشتر آشنا مي شويم .
نام کنترل | TextBox |
شکل ظاهري |
|
|