|
عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
|
انواع مدل كدينگ در ASP. NET 2.0 ( بخش اول ) |
مديريت وب |
4837 |
6 |
3.2 |
انواع مدل كدينگ در ASP. NET 2.0
انواع
مدل كدينگ در ASP. NET 2.0
( بخش اول )
پس از عرضه
ASP.NET 2.0 ، تغييرات گسترده ای در خصوص نحوه كدينگ
برنامه های وب ايجاد گرديد . پياده كنندگان برنامه های وب كه از فناوری فوق برای
پياده سازی برنامه های وب استفاده می نمايند ، می بايست با اين تغييرات و
دستاوردهای آن به خوبی آشنا شوند تا بتوانند برنامه هائی را ايجاد نمايند كه ظاهر و
باطن آنها با استفاده از آخرين فناوری های موجود پياده سازی شده باشد .
به دليل اهميت اين موضوع بر آن شديم كه در
سه مقاله جداگانه با گزينه های موجود
برای كدينگ يك صفحه وب آشنا شويم و به چندين پرسش اساسی در اين رابطه پاسخ دهيم .
در اولين بخش ، پس از بررسی اجمالی برخی نكات اوليه و مهم كه بيشتر جنبه يادآوری
دارد به بررسی انواع مدل كدينگ در ASP.NET 2.0 خواهيم
پرداخت .
يادآوری !
پياده كنندگان برنامه های وب كه از فناوری
ASP. NET برای توليد محتويات پويا استفاده می كنند ، برای
پياده سازی برنامه های خود
می توانند از ابزارهای مختلفی استفاده نمايند .
در اكثر وب سايت های بزرگ برای توليد برنامه های وب از ويژوال استوديو استفاده می
گردد . اين ابزار پياده سازی حرفه ای ، شامل مجموعه ای غنی از ابزارهای طراحی ،
امكانات گسترده جهت اشكال زدائی و تسهيلات كمكی مناسب در زمان كدينگ است .
ويژوال استوديو ، همچنين ازمدل code-behind
حمايت می نمايد كه در آن كد از تگ ها و ساير علائم نشانه گذاری موجود در يك صفحه وب
تفكيك می گردد .
برای ايجاد يك برنامه در ويژوال استوديو 2005 به دو پتانسيل سطح بالا
نياز است :
-
كمپايلر كه
مسئوليت بررسی كد نوشته شده و ترجمه آن به يك كد سطح پائين تر را برعهده دارد ( در
اين مورد خاص ، ترجمه به IL ) .
-
IDE ( برگرفته شده از Integrated
Development Environment ) كه به پياده
كنندگان امكان نوشتن كد مورد نياز برای ايجاد يك برنامه وب را می دهد .
برای پياده سازی يك برنامه وب ASP.NET
، بكارگيری ويژوال استوديو دات نت يك الزام نيست و پياده كنندگان می تواند برای
كدينگ برنامه خود از يك برنامه ويرايشگر ( نظير notepad
) نيز استفاده نمايند .
در زمان پياده سازی يك برنامه وب
، ارائه تسهيلات لازم برای كدينگ
از جمله خواسته های مشترك تمامی پياده كنندگان است تا آنان بتوانند صرفنظر از ميزان
توانمندی ، سرود خلاقيت خود را آنچنان كه بايسته و شايسته است به گوش مخاطبان
برسانند . شايد به همين دليل باشد كه
ويژوال استوديو دات نت برای پياده كنندگان برنامه های وب
ASP.NET ، به عنوان اولين گزينه ابزار پياده سازی مطرح می گردد .
با جداسازی ابزارهای
پياده سازی و كمپايلر ها اين امكان در اختيار پياده كنندگان گذاشته
شده است كه هر يك از ابزار مورد علاقه خود برای پياده سازی برنامه های وب
ASP.NET استفاده نمايند و در ادامه اقدام به
ترجمه آن نمايند .
به همراه دات نت كمپايلرهای متعددی ارائه شده است :
-
كمپايلر ويژوال بيسيك (
فايل vbc.exe )
-
كمپايلر #C
( فايل
csc.exe )
-
كمپايلر JScript ( فايل
jsc.exe )
-
كمپايلر #J ( فايل
vjc.exe )
در صورتی كه
قصد استفاده از برنامه های مترجم فوق را بطور دستی داشته می باشيم
، می توان آنها را از طريق خط
دستور فعال كرد . كمپايلرهای فوق در
آدرس c:\[WinDir]\Microsoft.NET\[Version]
قرار دارند كه در آن WinDir ، دايركتوری محل نصب
سيستم عامل ( نظير c:\windows
) و Version شماره نسخه دات نت نصب شده بر روی كامپيوتر
است ( نظير v2.0.50215 ) .
استفاده از كمپايلرهای دات نت بطور دستی توصيه نمی گردد چراكه
در چنين مواردی می بايست فايل مورد نظر جهت ترجمه و ساير اسمبلی های مورد نياز را مشخص
نمود . همچنين لازم است تمامی برنامه را ترجمه و يا هر صفحه
را بطور جداگانه ترجمه نمود . برای پيشگيری از اين نوع مسائل
جانبی و مشكل ساز ، اكثر پياده كنندگان از امكانات حمايتی تعبيه شده برای ترجمه
صفحات در ويژوال استوديو استفاده می نمايند .
در ASP.NET 1.x ، ويژوال استوديو تمامی صفحات وب
را در
يك اسمبلی DLL ترجمه می
كرد . در ويژوال استوديو
2005 ، رويكرد فوق تغيير يافته است و به ASP.NET اجازه
داه می شود كه برای هر صفحه در اولين مرتبه دستيابی ، ترجمه
را انجام دهد . سياست فوق باعث شده است كه سرعت
اشكال زدائی افزايش
يافته و پياده كنندگان
بتوانند وب سايت هائی
پياده سازی نمايند كه در آنها صفحات وب با زبان های مختلفی نوشته شده باشند .
انواع مدل كدينگ
برای كدينگ صفحات وب و سرويس های وب
می توان از دو مدل مختلف استفاده كرد
:
-
Inline code
: اين مدل به صفحات كلاسيك ASP نزديك
تر است و در آن تمامی كد به همراه تگ های Html در يك
فايل aspx . ذخيره می گردد . كد
مورد نياز در يك و يا چندين
بلاك اسكريپت قرار
می گيرد . با قرار دادن كدها در يك بلاك اسكريپت ، در صورتی
كه در محيط ويژوال استوديو كار می كنيم همچنان امكان استفاده از
پتانسيل هائی نظير اشكال زدائی و
IntelliSense ، تعامل با رويدادها و استفاده از برنامه های
جانبی وجود خواهد داشت . اين مدل به سهولت قابل استفاده است چراكه همه چيز در يك
پكيچ نگهداری می
گردد و برای كدينگ صفحات وب ساده
مناسب است .
-
code-Behind : در اين مدل هر صفحه
ASP.NET در دو فايل جداگانه
نگهداری می گردد. اولين فايل
كه به فايل markup موسوم است شامل تگ های
Html و تگ های كنترل
های مختص ASP.NET
است كه دارای انشعاب aspx . است . دومين فايل
، شامل كد
مورد نياز با توجه به اهداف عملياتی يك صفحه وب است . اين فايل با توجه
به اين كه از چه زبانی برای نوشتن كدها استفاده شده است دارای انشعاب متفاوتی خواهد
بود . به عنوان نمونه در صورتی كه برای كدينگ از زبان VB.NET
استفاده شده باشد ، انشعاب اين فايل vb . و در صورتی كه
از زبان #C استفاده شده باشد ، انشعاب آن
cs. خواهد بود . مدل فوق سازماندهی بهتری را ارائه می
نمايد و بخش رابط كاربر را از منطق برنامه نويسی مجزا می نمايد . اين وضعيت خصوصا"
در مواردی كه قصد پياده سازی صفحات وب پيچيده را داشته باشيم
، بسيار مفيد و موثر خواهد بود
. در ويژوال استوديو 2005 پياده سازی مدل code-behind
تغيير يافته است ولی فلسفه كلی كار
با نسخه های قبلی تا حدود زيادی مشابه است .
در
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 ) ، تمامی متدهای صفحه تعريف می گردند .
جمع بندی
-
مدل code-behind
برای صفحات پيچيده ترجيح داده می شود.
-
با اين كه مدل inline code
برای صفحات كوچك ، فشرده و مناسب تر به نظر می آيد ولی همزمان با رشد كد و Html
برای بسياری از پياده كنندگان راحت تر است كه با دو بخش فوق بطور جداگانه سروكار
داشته باشند .
-
در مدل
code-behind با توجه به اين كه دقيقا" مشخص می گردد كه
چه كلاسی ايجاد شده است و از چه namespace استفاده شده
است ، شاهد شفافيت بيشتری در كد خواهيم بود.
-
در مدل
code-behind می توان اين امكان را در اختيار يك طراح وب قرار داد كه صرفا"
بخش رابط كاربر را ايجاد و يا تصحيح نمايد ، بدون اين كه لازم باشد وی به كد
برنامه دستيابی داشته باشد .
در بخش دوم به
بررسی روش های ترجمه و مفهوم page class در ASP.NET
2.0 خواهيم پرداخت .