اصول مقدماتی ASP.NET
▪آشنائی با وب ، ،Html و اصول ايجاد صفحات وب
▪زبانهای اسکريپت نظير جاوااسکريپت و يا Vbscript
▪اصول اوليه اسکريپت های مبتنی بر سرويس دهنده
ASP چيست ؟
▪ASP تکنولوژی متعلق به شرکت ما کروسافت است .
▪ASP از کلمات Active Server Page مشتق شده است .
▪ASP برنامه ای است که با مديريت IIS اجراء می گردد.
▪يک فايل ASP مشابه فايل Html است .
▪محتويات يک فايل ASP شامل : متن ، Html ، XML و اسکريپت است .
▪اسکريپت های موجود در يک فايل ASP بر روی سرويس دهنده اجراء می گردنند.
▪فايل های ASP دارای انشعاب asp می باشند.
▪ پس از درخواست فايل های ASP توسط کاربران ، در ابتدا محتويات ( اسکريپت ها ) مربوطه بر روی سرويس دهنده اجراء و در ادامه نتايج بصورت تگ های Html برای کاربر ارسال خواهد شد.
آشنائی اوليه با ASP کلاسيک می تواند دارای جنبه های مثبتی از بعد فراگيری ASP.NET با شد . +ASP همان ASP.NET است . زمانيکه ما کروسافت ASP.NET را طراحی نمود ،در ابتدا از نام فوق استفاده گرديد .
ASP.NET چيست ؟
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 مجموعه گسترده ای از کنترل های جديد و عناصر مبتنی بر 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
▪يکدستگاه کامپيوتر با قابليت اجرای ويندوز بر روی آن .
▪نصب يکی از نسخه های ويندوز 2000 و يا XP
▪نصب برنامه IIS
▪قبل از نصب ASP.NET می بايست تمامی Service Pack های مربوط به محصولات نرم افزاری که قصد نصب آنها را داشته باشيم ،آماده نمود.
▪در صورتيکه قبلا" نسخه Beta مربوط به ASP.NET بر روی سيستم نصب شده باشد ،لازم است که در ابتدا نسخه فوق از روی سيستم برداشته گردد.
▪نصب .NET ، قبل از نصب می بايست کيت کامل محصول فوق را تهيه نمود. کيت فوق حدودا" 130 مگابايت بوده و می توان آن را از سايت ماکروسافت و يا ساير سايت ها نظير : www.asp.net تهيه کرد .
صفحات وب ASP.NET
مثال : يک صفحه ساده 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کلاسيک بمنظور نمايش اطلاعات پويا |
<html> |
کدهای محصور بين <% %> توسط سرويس دهنده اجراء می گردند. Response.Write ، امکان نوشتن اطلاعات در خروجی را فراهم می نمايد . ( )NOW تابعی است که زمان و تاريخ سرويس دهنده را برمی گرداند.
صفحات پويا در ASP.NET
مثال : يک صفحه ساده ASP.NETبمنظور نمايش اطلاعات پويا |
<html> |
در دو مثال ارائه شده ،اختلاف بين صفحات ASP.NET و ASP کلاسيک مشهود نيست . بمنظور بررسی تفاوت های موجود، بين ASP کلاسيک و ASP.NET مثال زير را در نظر بگيريد.
مثال : يک صفحه ساده ASPکلاسيک بمنظور نمايش اطلاعات پويا |
<html> |
کدهای نوشته شده ( به رنگ قرمز که اصطلاحا" Render Block ) ناميده می شوند،در ابتدا بر روی سرويس دهنده اجراء و در ادامه نتايج برای سرويس گيرنده ( مرورگر ) ارسال می گردد. مسئله فوق می تواند نشاندهنده يکی از محدوديت ASP کلاسيک باشد. در اين نوع صفحات Render Block ها می بايست در محلی قرار بگيرند که می خواهيم در خروجی نمايش داده شوند. با استفاده از ASP کلاسيک نمی توان کدهای اجرائی را از تگ های Html جدا نمود. بديهی است در چنين مواردی خوانائی و پشتيبانی صفحات به شدت زير سوال خواهد رفت .
کنترل های سرويس دهنده ASP.NET
▪کنترل های Html سرويس دهنده ( تگ های سنتی Html)
▪کنترل های وب سرويس دهنده ( تگ های جديد ASP.NET )
▪کنترل های اعتبارستجی سرويس دهنده ( تگ های مسئول اعتبار سنجی داده های ورودی)
کنترل های Html سرويس دهنده
مثال : يک صفحه ساده ASP.NETو استفاده از HTML ServerControls |
<% |
خصلت Runat=server بهمراه تگ <P> باعث شده که تگ فوق ، بعنوان يک کنترل سرويس دهنده ايفای وظيفه نمايد. در اين حالت مجموعه کدهای اجرائی به محلی خارج از محدوده تگ های Html منتقل شده اند.
کنترل های وب سرويس دهنده
مثال : يک صفحه ساده ASP.NETو استفاده از Web ServerControls |
<% |
در مثال فوق از يکی از کنترل های وب سرويس دهنده ، با نام label استفاده شده است . کنترل کننده فوق يکی از ده ها کنترل از قبل تعريف شده در اين زمينه بوده که برای ASP.NET قابل فهم است .
کنترل های اعتبارستجی سرويس دهنده
رويدادها در دات نت
مثال : يک صفحه ساده ASP.NETو استفاده از Web ServerControls |
<% TimeStamp.Text=now()%> |
چگونه می توان اطمينان پيدا نمود که Render Block ( کدهای قرمز رنگ ) اجراء خواهد شد. بمنظور اطمينان از اجرای کدهای مورد نظر در زمان مورد نظر ، می بايست يک Event Handler را اضافه نمائيم .
مثال : يک صفحه ساده ASP.NETو استفاده از Web ServerControls و رويداد Page_Load |
<script runat="server"> |
Event Handler ، روتينی است که مسئول اجرای کدهائی به ازای تحقق يک رويداد است .رويداد Page_Load يکی از ده ها Event قابل فهم توسط ASP.NET است .
مرجع :
HTML ServerControl | Description |
Controls an <a> HTML element | |
Controls a <button> HTML element | |
Controls a <form> HTML element | |
Controls other HTML element not specified by a specific HTML server control, like <body>, <div>, <span>, etc. | |
Controls an <image> HTML element | |
Controls <input type="button">, <input type="submit">, and <input type="reset"> HTML elements | |
Controls an <input type="checkbox"> HTML element | |
Controls an <input type="file"> HTML element | |
Controls an <input type="hidden"> HTML element | |
Controls an <input type="image"> HTML element | |
Controls an <input type="radio"> HTML element | |
Controls <input type="text"> and <input type="password"> HTML elements | |
Controls a <select> HTML element | |
Controls a <table> HTML element | |
Controls <td>and <th> HTML elements | |
Controls a <tr> HTML element | |
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 |