انواع مدل كدينگ در ASP. NET 2.0 ( بخش اول )
اين مطلب از طريق سايت شرکت سخاروش در اختيار شما گذاشته شده است .

انواع مدل كدينگ در ASP. NET 2.0

انواع مدل كدينگ در ASP. NET 2.0 ( بخش اول )
پس از عرضه ASP.NET 2.0 ، تغييرات گسترده ای در خصوص نحوه كدينگ برنامه های‌ وب ايجاد گرديد . پياده كنندگان برنامه های وب كه از فناوری فوق برای پياده سازی برنامه های وب استفاده می نمايند ، می بايست با اين تغييرات و دستاوردهای آن به خوبی آشنا شوند تا بتوانند برنامه هائی را ايجاد نمايند كه ظاهر و باطن آنها با استفاده از آخرين فناوری های موجود پياده سازی شده باشد .
به دليل اهميت اين موضوع بر آن شديم كه در سه مقاله جداگانه با گزينه های موجود برای كدينگ يك صفحه وب آشنا شويم و به چندين پرسش اساسی در اين رابطه پاسخ دهيم . در اولين بخش ، پس از بررسی اجمالی برخی نكات اوليه و مهم كه بيشتر جنبه يادآوری دارد به بررسی انواع مدل كدينگ در ASP.NET 2.0 خواهيم پرداخت .

يادآوری !
پياده كنندگان برنامه های وب كه از فناوری ASP. NET برای توليد محتويات پويا استفاده می كنند ، برای پياده سازی برنامه های خود  می توانند از ابزارهای مختلفی استفاده نمايند . در اكثر وب سايت های بزرگ برای توليد برنامه های وب از ويژوال استوديو استفاده می گردد . اين ابزار پياده سازی حرفه ای ، شامل مجموعه ای غنی از ابزارهای طراحی ، امكانات گسترده جهت اشكال زدائی و تسهيلات كمكی مناسب در زمان كدينگ است .
ويژوال استوديو  ، همچنين ازمدل code-behind حمايت می نمايد كه در آن كد از تگ ها و ساير علائم نشانه گذاری موجود در يك صفحه وب تفكيك می گردد .
برای ايجاد يك برنامه در ويژوال استوديو 2005 به دو پتانسيل سطح بالا نياز است :

با جداسازی ابزارهای پياده سازی  و كمپايلر ها اين امكان در اختيار پياده كنندگان گذاشته شده است كه هر يك از ابزار مورد علاقه خود برای پياده سازی برنامه های وب ASP.NET استفاده نمايند و در ادامه اقدام به ترجمه آن نمايند .
به همراه دات نت كمپايلرهای متعددی ارائه شده است :

در صورتی كه قصد استفاده از برنامه های مترجم فوق را بطور دستی داشته می باشيم ، می توان آنها را از طريق خط دستور فعال كرد . كمپايلرهای فوق در آدرس c:\[WinDir]\Microsoft.NET\[Version] قرار دارند  كه در آن WinDir ، دايركتوری محل نصب سيستم عامل ( نظير c:\windows ) و Version شماره نسخه دات نت نصب شده بر روی كامپيوتر است ( نظير v2.0.50215 ) .
استفاده از كمپايلرهای دات نت بطور دستی توصيه نمی گردد چراكه در چنين مواردی می بايست فايل مورد نظر جهت ترجمه و ساير اسمبلی های مورد نياز را مشخص نمود . همچنين لازم است تمامی برنامه را ترجمه و يا هر صفحه را بطور جداگانه ترجمه نمود . برای پيشگيری از اين نوع مسائل جانبی و مشكل ساز ، اكثر پياده كنندگان از امكانات حمايتی تعبيه شده برای ترجمه صفحات در ويژوال استوديو استفاده می نمايند .
در ASP.NET 1.x ، ويژوال استوديو تمامی صفحات وب را در يك اسمبلی DLL ترجمه می كرد . در ويژوال استوديو  2005 ، رويكرد فوق تغيير يافته است و به ASP.NET اجازه داه می شود  كه برای هر صفحه در اولين مرتبه دستيابی ، ترجمه را انجام دهد . سياست فوق باعث شده است كه  سرعت اشكال زدائی افزايش يافته و پياده كنندگان بتوانند  وب سايت هائی پياده سازی نمايند كه در آنها صفحات وب با زبان های مختلفی نوشته شده باشند .

انواع مدل كدينگ
برای كدينگ صفحات وب و سرويس های وب می توان از دو مدل مختلف استفاده كرد :

در  NET 1.x.  ابزار طراحی استفاده شده برای پياده سازی ، نوع مدل كدينگ را مشخص می كرد .  در ويژوال استوديو شما دارای آزادی عمل در خصوص انتخاب هر يك از گزينه های فوق می باشيد . زمانی كه يك صفحه وب جديد را به وب سايت خود اضافه می نمايد ، با انتخاب و يا عدم گزينش  Place Code in Separate File می توان در اين رابطه تصميم گرفت .
در يك پروژه و يا برنامه وب می توان از دو مدل فوق استفاده كرد  . شكل 1 ، نحوه عمليات فوق را نشان می دهد
( انتخاب گزينه Web site و در ادامه Add New Item )

اتخاذ تصميم در خصوص نوع مدل كدينگ
شكل 1 : اتخاذ تصميم در خصوص نوع مدل كدينگ

مثال
برای آشنائی بيشتر با روش Inline code  و يا  code-Behind  يك نمونه مثال را با يكديگر بررسی می نمائيم .
روش كدينگ Inline code  : همه  چيز در يك فايل و با نام TestInlineCode.aspx خلاصه شده است. كد زير نحوه انجام اين كار را نشان می دهد . 

روش  Inline code  : فايل TestInlineCode.aspx

<%@ Page Language="VB" %>

<script runat="server">
  Protected
Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
     Label1.Text =
"Current time: "
& DateTime.Now.ToLongTimeString()
  End Sub
</
script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<
head id="Head1" runat="server">
  <
title>Test Page</title>
</
head>
<
body>
<
form id="form1" runat="server">
<
div>
   <
asp:Label ID="Label1" runat="server" Text="Click Me!"> </asp:Label>
   <
br />
   <
asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</
div>
</
form>
</
body>
</
html
>

روش code-behind : در اين مدل از دو فايل استفاده شده است : فايل TestCodeBehind.aspx كه شامل تگ های html و تگ های كنترل های مختص ASP.NET  است و بخش رابط كاربر برنامه را تشكيل می دهد و فايل TestCodeBehind.aspx.vb كه حاوی كد مورد نياز صفحه وب با توجه به اهداف عملياتی است .
كد زير محتويات فايل  TestCodeBehind.aspx  را نشان می دهد .

روش code-behind  : فايل TestCodeBehind.aspx

<%@ Page Language="VB" AutoEventWireup="true" CodeFile="TestCodeBehind.aspx.vb" Inherits="TestCodeBehind" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<
head id="Head1" runat="server">
 <
title>Test Page</title>
</
head>
<
body>
<
form id="form1" runat="server">
<
div>
   <
asp:Label ID="Label1" runat="server" Text="Click Me!"></asp:Label>
   <
br />
   <
asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</
div>
</
form>
</
body>
</
html>

كد زير محتويات فايل TestCodeBehind.aspx.vb را نشان می دهد .

روش code-behind  : فايل TestCodeBehind.aspx.vb

Partial Class TestCodeBehind
 
Inherits System.Web.UI.Page
  Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
       Label1.Text =
"Current time: " & DateTime.Now.ToLongTimeString()
  End Sub
End
Class

در كلاس صفحه ( TestCodeBehind ) ، تمامی متدهای صفحه تعريف می گردند .

جمع بندی

در بخش دوم به بررسی روش های ترجمه و مفهوم page class در ASP.NET 2.0 خواهيم پرداخت .


استفاده از اين مطلب  با ذکر منبع و اهداف غيرانتفاعی بلامانع است .
http://www.srco.
ir