اصول مقدماتی ASP.NETقبل از اینکه با تکنولوژی فوق آشنا گردیم ،لازم است نسبت به موارد ذیل به میزان قابل قبولی شناخت اولیه ای وجود داشته باشد.
▪آشنائی با وب ، ،Html و اصول ایجاد صفحات وب
▪زبانهای اسکریپت نظیر جاوااسکریپت و یا Vbscript
▪اصول اولیه اسکریپت های مبتنی بر سرویس دهنده
ASP.NET چیست ؟ASP نسخه شماره سه ، آخرین نسخه در این زمینه بوده و ما هرگز شاهد عرضه نسخه شماره چهار محصول فوق نخواهیم بود. ASP.NET نسل جدید ASP است و نمی توان ادعا نمود که ASP.NET نسخه ارتقاء یافته ASP کلاسیک است .
ASP.NET یک نمونه و نگرش جدید به برنامه ها و اسکریپت های مبتنی بر سرویس دهنده می باشد. ASP.NET عضوی از فریمورک جدید دات نت شرکت ما کروسافت بوده و سه سال زمان صرف نوشتن آن شده است . ASP.NET با نسخه ASPکلاسیک کاملا" سازگار نیست .
دات نت فریمورک دات نت فریمورک، زیر ساخت پلات فورم جدید دات نت است . فریمورک فوق ، یک محیط عمومی برای ایجاد ، بکارگیری و اجرای برنامه های تحت وب و سرویس های وب را فراهم می نماید . دات نت فریمورک شامل دو بخش اساسی است :
▪Common language runtime
▪Common class libraries نظیر : ADO.NET,ASP.NET و Windows Forms
دات نت فریمورک ، با الهام از امکانات دو بخش فوق ، قادر به ارائه سرویس ها و خدمات متفاوت به مجموعه وسیعی از سیستم های کامپیوتری است . دات نت فریمورک از زبانهای متعددی حمایت می نماید . C++,C#,VB,Jscript نمونه هائی در این زمینه می باشند.
تفاوت های ASP کلاسیک و ASP.NET ▪ASP.NET زبان های متعددی را حمایت می نماید .
▪ASP.NET مجموعه گسترده ای از کنترل های جدید و عناصر مبتنی بر XML را ارائه می دهد.
▪ASP.NET قابلیت اعتبارسنجی کاربران با توانائی بالا را دارا است .
▪افزایش کارائی سیستم از طریق اجرای کدهای کمپایل شده ( نه تفسیر شده ! )
▪کدهای ASP.NET بطور کامل با نسخه ASP کلاسیک سازگار نمی باشند.
برخی از ویژگی های جدید در ASP.NET :
● تعداد بالای زبانهای برنامه نویسی حمایت شده
● کنترل های قابل برنامه نویسی
● برنامه نویسی مبتنی بر Event
● استفاده از عناصر مبتنی بر Xml
● اعتبار سنجی کاربران با استفاده از Account و قوانین
● افزایش کارائی با توجه به کمپایل نمودن کدها
● پیکربندی و بکارگیری آسان
ASP.NET دارای مجموعه ای وسیع از کنترل های HTML است . اکثر عناصر موجود بر روی یک صفحه وب را می توان بعنوان یک شی قابل کنترل ASP.NET در نظر گرفت .رفتار اشیاء فوق را می توان با استفاده از اسکریپت ها ، کنترل و هدایت نمود. ASP.NET همچنین دارای مجموعه ای از کنترل های ورودی شی گراء نظیر : ListBox های قابل برنامه نویسی و کنترل های بررسی صحت د اده های ورودی است . با استفاده از یک کنترل جدید (Data Grid) عملیات ذخیره سازی ،مرتب سازی وسایر عملیات مورد نیاز در رابطه با بانک های اطلاعاتی را پشتیبانی و حمایت می نماید. تمامی اشیاء ASP.NET بر روی یک صفحه وب می توانند باعث بروز یک "رویداد" گردند. در چنین مواردی کدهای نوشته شده در ASP.NET ، مجری سیاست برخورد با رویداد بوجود آمده خواهند بود . عناصر استفاده شده در ASP.NET عموما" متکی بر XML می باشند . نظیر کنترل Adrotator که از Xml برای ذخیره ساری اطلاعات و تنظیمات مربوط به آگهی ها استفاده می نماید. ASP.NET ، اعتبارسنجی کاربران متکی بر فرم را با استفاده از تکنولوژی هائی نظیر : مدیریت کوکی، تغییر مسیر کاربرانی که هویت آنها تایید نشده و ... انجام می دهد. به محض درخواست یک صفحه ASP.NET ،صفحه مورد نظر ترجمه ( کمپایل ) و یک نسخه از آن در حافظه باقی خواهد ماند (Cached ) . بدیهی است که در این حالت افزایش چشمگیری را از بعد کارآئی خواهیم داشت .ASP.NET با نسخه قبلی خود ( ASP کلاسیک ) کاملا" سازگار نیست .بنابراین در برخی از کدهای نوشته شده با ASP کلاسیک می بایست تغییراتی را اعمال نمود. فایل های ASP.NET دارای انشعاب aspx می باشند. بدین ترتیب می توان بر روی یک سرویس دهنده فایل های ASP.NET ( فایل های با انشعاب aspx) و فایل های ASP کلاسیک ( فایل های با انشعاب asp ) بطور همزمان استفاده کرد.
نصب ASP.NET برای نصب ASP.NET به امکانات زیر نیاز خواهد بود :
▪یکدستگاه کامپیوتر با قابلیت اجرای ویندوز بر روی آن .
▪نصب یکی از نسخه های ویندوز 2000 و یا XP
▪نصب برنامه IIS
▪قبل از نصب ASP.NET می بایست تمامی Service Pack های مربوط به محصولات نرم افزاری که قصد نصب آنها را داشته باشیم ،آماده نمود.
▪در صورتیکه قبلا" نسخه Beta مربوط به ASP.NET بر روی سیستم نصب شده باشد ،لازم است که در ابتدا نسخه فوق از روی سیستم برداشته گردد.
▪نصب .NET ، قبل از نصب می بایست کیت کامل محصول فوق را تهیه نمود. کیت فوق حدودا" 130 مگابایت بوده و می توان آن را از سایت ماکروسافت و یا سایر سایت ها نظیر : www.asp.net تهیه کرد .
صفحات وب ASP.NET
یک صفحه ASP.NET ، در اولین نگاه ،مشابه یک صفحه Html است . برای آشنائی با صفحات ASP.NET ، یک صفحه ساده Html را ایجاد که مسئولیت آن نمایش یک پیام خاص در خروجی باشد. (Hello.html)
مثال : یک صفحه ساده Html |
<html> |
در صورتیکه بخواهیم فایل فوق را به یک صفحه ASP.NET تبدیل نمائیم ،کافی است محتویات فایل فوق را در فایل جداگانه ای قرار داده و فایل فوق را با نام دلخواه و انشعاب .aspx ذخیره نمائیم .در این حالت محتویات صفحه ASP.NET بصورت زیر خواهد بود :
مثال : یک صفحه ساده ASP.NET |
<html> |
یک صفحه ASP.NET از برخی جهات دارای عملکردی مشابه صفحات HTML است . صفحات HTML دارای انشعاب Html بوده و زمانیکه مرورگر درخواست یک صفحه Html را از سرویس دهنده داشته باشد ،سرویس دهنده بدون انجام هیچگونه اصلاحات و یا عملیات خاصی، صرفا" صفحه مورد نظر را برای مرورگر ارسال خواهد نمود. یک صفحه ASP.NET دارای انشعاب .aspx بوده و زمانیکه مرورگر درخواست یک صفحه ASP.NET را از سرویس دهنده داشته باشد ،سرویس دهنده دستورالعمل های اجرائی موجود در صفحه را پردازش و در ادمه نتایج بدست آمده ، برای سرویس گیرنده ( مرورگر) ارسال خواهند شد.
در مثالی که ارائه گردید ما شاهد حضور و استفاده از دستورالعمل های اجرائی در فایل ASP.NET نبودیم . در ادامه با افزودن دستورالعمل های اجرائی به بررسی تفاوت های موجود بین صفحات ایستای Html و صفحات پویای ASP خواهیم پرداخت . ASP کلاسیک برنامه نویسان وب چندین سال است که از ASP کلاسیک استفاده می نمایند .ASP.NET با ASP کلاسیک کاملا" سازگار نبوده و اغلب صفحات ASP کلاسیک ، با اعمال تغییراتی اندک قادر به استفاده بر روی بستر دات نت و مشابه صفحات ASP.NET خواهند بود.
صفحات پویا در ASP کلاسیک بمنظور بررسی توانائی صفحات ASP در جهت نمایش اطلاعات پویا ،مثال زیر را در نظر بگیرید.
مثال : یک صفحه ساده ASP کلاسیک بمنظور نمایش اطلاعات پویا |
<html> |
کدهای محصور بین <% %> توسط سرویس دهنده اجراء می گردند. Response.Write ، امکان نوشتن اطلاعات در خروجی را فراهم می نماید . ( )NOW تابعی است که زمان و تاریخ سرویس دهنده را برمی گرداند.
صفحات پویا در ASP.NET کدهای زیر همان مثال قبلی با نگرش ASP.NET است
مثال : یک صفحه ساده ASP.NET بمنظور نمایش اطلاعات پویا |
<html> |
در دو مثال ارائه شده ،اختلاف بین صفحات ASP.NET و ASP کلاسیک مشهود نیست . بمنظور بررسی تفاوت های موجود، بین ASP کلاسیک و ASP.NET مثال زیر را در نظر بگیرید.
مثال : یک صفحه ساده ASP کلاسیک بمنظور نمایش اطلاعات پویا |
<html> |
کدهای نوشته شده ( به رنگ قرمز که اصطلاحا" Render Block ) نامیده می شوند،در ابتدا بر روی سرویس دهنده اجراء و در ادامه نتایج برای سرویس گیرنده ( مرورگر ) ارسال می گردد. مسئله فوق می تواند نشاندهنده یکی از محدودیت ASP کلاسیک باشد. در این نوع صفحات Render Block ها می بایست در محلی قرار بگیرند که می خواهیم در خروجی نمایش داده شوند. با استفاده از ASP کلاسیک نمی توان کدهای اجرائی را از تگ های Html جدا نمود. بدیهی است در چنین مواردی خوانائی و پشتیبانی صفحات به شدت زیر سوال خواهد رفت .
کنترل های سرویس دهنده ASP.NET
ASP.NET بنوعی مسئله " کدهای نوشته شده به سبک اسپاگتی ! " را با بکارگیری کنترل های سرویس دهنده برطرف نموده است . کنترل های سرویس دهنده ، تگ هائی هستند که توسط سرویس دهنده قابل درک و فهم می باشند. سه نوع کنترل های سرویس دهنده وجود دارد :
▪کنترل های Html سرویس دهنده ( تگ های سنتی Html)
▪کنترل های وب سرویس دهنده ( تگ های جدید ASP.NET )
▪کنترل های اعتبارستجی سرویس دهنده ( تگ های مسئول اعتبار سنجی داده های ورودی)
کنترل های Html سرویس دهنده این نوع کنترل ها ، همان تگ های استاندارد Html بوده با تفاوت که می بایست از خصلت : Runat=Server بهمراه تگ مربوط به آنان ، نیز استفاده گردد . مثال زیر نحوه جداسازی کد های اجرائی از تگ های Html ،با استفاده از کنترل های Html سرویس دهنده را نمایش می دهد .
مثال : یک صفحه ساده ASP.NET و استفاده از HTML Server Controls |
<% |
خصلت Runat=server بهمراه تگ <P> باعث شده که تگ فوق ، بعنوان یک کنترل سرویس دهنده ایفای وظیفه نماید. در این حالت مجموعه کدهای اجرائی به محلی خارج از محدوده تگ های Html منتقل شده اند.
کنترل های وب سرویس دهنده این نوع کنترل ها مشابه کنترل های Html با پیچیدگی بیشتری می باشند. این نوع کنترل ها هرگز بعنوان یک بخش وابسته و بصورت یک خصلت در کنار تگ های Html استفاده نخواهند گردید ، بلکه برای حضور خود دارای ماهیتی کاملا" مستقل هستند. از این نوع کنترل ها در اغلب برنامه هائی که سیاست ارتباط دوسویه با کاربران دنبال می گردد ، استفاده می شود. فرم های ورودی ، نمونه ئی مناسب از جایگاه استفاده از این نوع کنترل ها می باشند. کنترل های فوق همواره با تگی شروع خواهند شد که ابتدای آن مزین به واژه : < asp:> است . برنامه زیر نحوه استفاده از کنترل های وب سرویس دهنده را نشان می دهد.
مثال : یک صفحه ساده ASP.NET و استفاده از Web Server Controls |
<% |
در مثال فوق از یکی از کنترل های وب سرویس دهنده ، با نام label استفاده شده است . کنترل کننده فوق یکی از ده ها کنترل از قبل تعریف شده در این زمینه بوده که برای ASP.NET قابل فهم است . کنترل های اعتبارستجی سرویس دهندهبا استفاده و بکارگیری کنترل های تعیین صحت داده ها ، می توان عملیات مربوط به بررسی صحت داده های ورودی توسط کنترل های ورودی سرویس دهنده نظیر : TextBox ، انجام داد. در چنین مواردی زمانی که داده وارد شده متناسب با سیاست و قانون تعریف شده از قبل نباشد ، می توان پیام مناسبی را نمایش داد. بصورت پیش فرض عملیات موسوم به بررسی صحت داده ها در یک صفحه (Page Validation) همزمان با فشردن یک Button نظیر : کنترل های ImageButton و یا LinkButton صورت می پذیرد.
رویدادها در دات نت در صفحات ASP.NET می توان مجموعه کدهائی را نوشت که در صورت بروز یک شرط خاص و یا تحقق یک شرایط ویژه ( وقفه ) فعال و خدمات تعریف شده خود را ارائه نمایند. در مثال های قبل ، با کد های زیر آشنا شدیم .
مثال : یک صفحه ساده ASP.NET و استفاده از Web Server Controls |
<% TimeStamp.Text=now()%> |
چگونه می توان اطمینان پیدا نمود که Render Block ( کدهای قرمز رنگ ) اجراء خواهد شد. بمنظور اطمینان از اجرای کدهای مورد نظر در زمان مورد نظر ، می بایست یک Event Handler را اضافه نمائیم .
مثال : یک صفحه ساده ASP.NET و استفاده از Web Server Controls و رویداد Page_Load |
<script runat="server"> |
Event Handler ، روتینی است که مسئول اجرای کدهائی به ازای تحقق یک رویداد است .رویداد Page_Load یکی از ده ها Event قابل فهم توسط ASP.NET است .
مرجع :
کنترل های Html Server : تگ های مبتنی بر HTML که توسط سرویس دهنده قابل فهم می باشند . تمام کنترل های فوق می بایست بهمراه تگ مربوطه که دارای خصلت runat=server است ، استفاده گردند .
HTML Server Control | Description |
HtmlAnchor | Controls an <a> HTML element |
HtmlButton | Controls a <button> HTML element |
HtmlForm | Controls a <form> HTML element |
HtmlGeneric | Controls other HTML element not specified by a specific HTML server control, like <body>, <div>, <span>, etc. |
HtmlImage | Controls an <image> HTML element |
HtmlInputButton | Controls <input type="button">, <input type="submit">, and <input type="reset"> HTML elements |
HtmlInputCheckBox | Controls an <input type="checkbox"> HTML element |
HtmlInputFile | Controls an <input type="file"> HTML element |
HtmlInputHidden | Controls an <input type="hidden"> HTML element |
HtmlInputImage | Controls an <input type="image"> HTML element |
HtmlInputRadioButton | Controls an <input type="radio"> HTML element |
HtmlInputText | Controls <input type="text"> and <input type="password"> HTML elements |
HtmlSelect | Controls a <select> HTML element |
HtmlTable | Controls a <table> HTML element |
HtmlTableCell | Controls <td>and <th> HTML elements |
HtmlTableRow | Controls a <tr> HTML element |
HtmlTextArea | Controls a <textarea> HTML element |
کنترل های Web Server : تگ های خاصی از ASP.NET بوده که توسط سرویس دهنده قابل فهم می باشند . گرامر بکارگیری کنترل های فوق بصورت زیر است :
<asp:control_name id="some_id" runat="server" />
Web Server Control | Description |
Displays a sequence of images | |
Displays a push button | |
Displays a calendar | |
Displays a check box | |
Creates a multi-selection check box group | |
DataGrid | Displays fields of a data source in a grid |
DataList | Displays items from a data source by using templates |
Creates a drop-down list | |
Creates a hyperlink | |
Displays an image | |
Displays a clickable image | |
Displays static content which is programmable (lets you apply styles to its content) | |
Creates a hyperlink button | |
Creates a single- or multi-selection drop-down list | |
Displays static content which is programmable (does not let you apply styles to its content) | |
Provides a container for other controls | |
Reserves space for controls added by code | |
Creates a radio button | |
Creates a group of radio buttons | |
Repeater |
|
Creates a table | |
Creates a table cell | |
Creates a table row | |
Creates a text box | |
Displays an XML file or the results of an XSL transform |
کنترل های Validation Server : از کنترل های فوق بمنظور بررسی صحت داده های ورودی توسط کاربر استفاده می گردد . گرامر بکارگیری کنترل های فوق بصورت زیر است :
<asp:control_name id="some_id" runat="server" />
Validation Server Control | Description |
Compares the value of one input control to the value of another input control or to a fixed value | |
Allows you to write a method to handle the validation of the value entered | |
Checks that the user enters a value that falls between two values | |
Ensures that the value of an input control matches a specified pattern | |
Makes an input control a required field | |
Displays a report of all validation errors occurred in a Web page |