X
تبلیغات
رایتل

اصول مقدماتی ASP.NETقبل از اینکه با تکنولوژی فوق آشنا گردیم ،لازم است نسبت به موارد ذیل به میزان قابل قبولی شناخت اولیه ای وجود داشته باشد.
آشنائی با وب ، ،Html و اصول ایجاد صفحات وب
▪زبانهای اسکریپت نظیر جاوااسکریپت و یا Vbscript
▪اصول اولیه اسکریپت های مبتنی بر سرویس دهنده

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

HtmlAnchorControls an <a> HTML element
HtmlButtonControls a <button> HTML element
HtmlFormControls a <form> HTML element
HtmlGenericControls other HTML element not specified by a specific HTML server control, like <body>, <div>, <span>, etc.
HtmlImageControls an <image> HTML element
HtmlInputButtonControls <input type="button">, <input type="submit">, and <input type="reset"> HTML elements
HtmlInputCheckBoxControls an <input type="checkbox"> HTML element
HtmlInputFileControls an <input type="file"> HTML element
HtmlInputHiddenControls an <input type="hidden"> HTML element
HtmlInputImageControls an <input type="image"> HTML element
HtmlInputRadioButtonControls an <input type="radio"> HTML element
HtmlInputTextControls <input type="text"> and <input type="password"> HTML elements
HtmlSelectControls a <select> HTML element
HtmlTableControls a <table> HTML element
HtmlTableCellControls <td>and <th> HTML elements
HtmlTableRowControls a <tr> HTML element
HtmlTextAreaControls 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