قبل از اينکه با تکنولوژی فوق آشنا گرديم ،لازم هست نسبت به موارد ذيل
به ميزان قابل قبولی شناخت اوليه ای وجود داشته باشد.
ASP چيست ؟
▪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 نسخه شماره سه ، آخرين نسخه در اين زمينه بوده و ما
هرگز شاهد عرضه نسخه شماره چهار محصول فوق
نخواهيم بود. 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>
<body bgcolor="Blue">
<center>
<h2>Hello HTML Tags </h2>
</center>
</body>
</html>
در صورتيکه
بخواهيم فايل فوق را به يک صفحه ASP.NET تبديل نمائيم
،کافی است محتويات فايل فوق را در فايل جداگانه ای قرار داده و فايل فوق را با نام
دلخواه و انشعاب .aspx
ذخيره نمائيم .در اين حالت محتويات صفحه ASP.NET بصورت زير خواهد بود :
مثال : يک صفحه ساده ASP.NET
<html>
<body bgcolor="Blue">
<center>
<h2>Hello ASP.NET </h2>
</center>
</body>
</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>
<body bgcolor="yellow">
<center>
<h2>Hello ASP Classic!</h2>
<p><%Response.Write(now())%></p>
</center>
</body>
</html>
کدهای محصور بين <% %> توسط سرويس دهنده اجراء می گردند. Response.Write ، امکان نوشتن اطلاعات در خروجی را فراهم می
نمايد . ( )NOW تابعی است که
زمان و تاريخ سرويس دهنده را برمی گرداند.
صفحات پويا در ASP.NET
کدهای زير همان مثال قبلی با نگرش
ASP.NET است
مثال : يک صفحه ساده ASP.NET بمنظور نمايش اطلاعات پويا
<html>
<body bgcolor="yellow">
<center>
<h2>Hello ASP.NET!</h2>
<p> <%Response.Write(now())%></p>
</center>
</body>
</html>
در دو مثال ارائه شده ،اختلاف بين صفحات
ASP.NET و ASP کلاسيک مشهود
نيست . بمنظور بررسی تفاوت های موجود، بين ASP کلاسيک
و ASP.NET مثال زير را در
نظر بگيريد.
مثال : يک صفحه ساده ASP کلاسيک بمنظور نمايش اطلاعات پويا
<html>
<body bgcolor="yellow">
<center>
<h2>Hello ASP.NET!</h2>
<p> <%Response.Write(now())%></p>
</center>
</body>
</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
<%
TimeStamp.InnerText=now()
%>
<html>
<body bgcolor="yellow">
<center>
<h2>Hello HTML Server Controls </h2>
<p id="TimeStamp"
runat="server"></p>
</center>
</body>
</html>
خصلت Runat=server بهمراه تگ <P> باعث شده که تگ فوق ، بعنوان يک کنترل
سرويس دهنده ايفای وظيفه نمايد. در اين حالت مجموعه کدهای اجرائی به محلی خارج از
محدوده تگ های Html منتقل شده اند.
کنترل های وب سرويس دهنده
اين نوع کنترل ها مشابه کنترل های Html
با پيچيدگی بيشتری می باشند. اين نوع کنترل ها هرگز بعنوان يک بخش
وابسته و بصورت يک خصلت در کنار تگ های Html برای
طراحی وب استفاده نخواهند
گرديد ، بلکه برای حضور خود دارای ماهيتی کاملا" مستقل هستند. از اين نوع
کنترل ها در اغلب برنامه هائی که سياست ارتباط دوسويه با کاربران دنبال می گردد ،
استفاده می شود. فرم های ورودی ، نمونه ئی
مناسب از جايگاه استفاده از اين نوع کنترل ها می باشند. کنترل های فوق
همواره با تگی شروع خواهند شد که ابتدای آن مزين به واژه :
< asp:> است . برنامه زير نحوه استفاده از کنترل های وب سرويس
دهنده را نشان می دهد.
مثال : يک صفحه ساده ASP.NET و استفاده از Web
Server Controls
<%
TimeStamp.Text=now()
%>
<html>
<body bgcolor="yellow">
<center>
<h2>Hello Web Server Controls </h2>
<p><asp:label id="TimeStamp"
runat="server" /></p>
</center>
</body>
</html>
در مثال فوق از يکی از کنترل های وب سرويس دهنده ، با نام label استفاده شده است . کنترل کننده فوق يکی
از ده ها کنترل از قبل تعريف شده در اين زمينه بوده که برای
ASP.NET قابل فهم است .
کنترل های اعتبارستجی سرويس دهنده
با استفاده و بکارگيری کنترل های تعيين صحت داده ها ، می توان عمليات
مربوط به بررسی صحت داده های ورودی توسط کنترل های ورودی سرويس دهنده نظير :
TextBox ، انجام داد. در چنين مواردی زمانی که داده وارد شده متناسب با
سياست و قانون تعريف شده از قبل نباشد ، می توان پيام مناسبی را نمايش داد. بصورت
پيش فرض عمليات موسوم به بررسی صحت داده ها در يک صفحه
(Page Validation) همزمان با فشردن يک
Button نظير : کنترل های
ImageButton و يا LinkButton صورت می پذيرد.
رويدادها در دات نت
در صفحات ASP.NET می توان مجموعه
کدهائی را نوشت که در صورت بروز يک شرط خاص و يا تحقق يک شرايط ويژه ( وقفه ) فعال
و خدمات تعريف شده خود را ارائه نمايند. در مثال های قبل ، با کد های زير آشنا
شديم .
مثال : يک صفحه ساده ASP.NET و استفاده از Web
Server Controls
<% TimeStamp.Text=now()%>
<html>
<body bgcolor="yellow">
<center>
<h2>Hello W3Schools!</h2>
<asp:label id="TimeStamp" runat="server"
/>
</center>
</body>
</html>
چگونه می توان اطمينان پيدا نمود که
Render Block ( کدهای قرمز رنگ ) اجراء خواهد شد. بمنظور اطمينان از
اجرای کدهای مورد نظر در زمان مورد نظر ، می بايست يک
Event Handler را اضافه نمائيم .
مثال : يک صفحه ساده ASP.NET و استفاده از Web
Server Controls و رويداد Page_Load
<script runat="server">
Sub Page_Load(Sender As Object,E As EventArgs)
TimeStamp.Text=now()
End Sub
</script>
<html>
<body bgcolor="yellow">
<center>
<h2>Hello W3Schools!</h2>
<asp:label id="TimeStamp" runat="server"
/>
</center>
</body>
</html>
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
AdRotator
Displays a sequence of images
Button
Displays a push button
Calendar
Displays a calendar
CheckBox
Displays a check box
CheckBoxList
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
DropDownList
Creates a drop-down list
HyperLink
Creates a hyperlink
Image
Displays an image
ImageButton
Displays a clickable image
Label
Displays static content which is programmable (lets you apply styles
to its content)
LinkButton
Creates a hyperlink button
ListBox
Creates a single- or multi-selection drop-down list
Literal
Displays static content which is programmable (does not let you
apply styles to its content)
Panel
Provides a container for other controls
PlaceHolder
Reserves space for controls added by code
RadioButton
Creates a radio button
RadioButtonList
Creates a group of radio buttons
Repeater
Table
Creates a table
TableCell
Creates a table cell
TableRow
Creates a table row
TextBox
Creates a text box
Xml
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
CompareValidator
Compares the value of one input control to the value of another
input control or to a fixed value
CustomValidator
Allows you to write a method to handle the validation of the value
entered
RangeValidator
Checks that the user enters a value that falls between two values
RegularExpressionValidator
Ensures that the value of an input control matches a specified pattern
RequiredFieldValidator
Makes an input control a required field
ValidationSummary
Displays a report of all validation errors occurred in a Web page
No comments:
Post a Comment