( تعداد نمایش : 2450 )

انواع مدل کدینگ در ASP. NET 2.0 ( بخش اول )

نویسنده : شرکت سخاروش

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

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

  • کمپایلر که مسئولیت بررسی کد نوشته شده و ترجمه آن به یک کد سطح پائین تر را برعهده دارد ( در این مورد خاص ، ترجمه به 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 ترجمه می کرد . در ویژوال استودیو  ۲۰۰۵ ، رویکرد فوق تغییر یافته است و به ASP.NET اجازه داه می شود  که برای هر صفحه در اولین مرتبه دستیابی ، ترجمه را انجام دهد . سیاست فوق باعث شده است که  سرعت اشکال زدائی افزایش یافته و پیاده کنندگان بتوانند  وب سایت هائی پیاده سازی نمایند که در آنها صفحات وب با زبان های مختلفی نوشته شده باشند .

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

  • Inline code : این مدل به صفحات کلاسیک ASP نزدیک تر است و در آن تمامی کد به همراه تگ های Html در یک فایل aspx . ذخیره می گردد . کد مورد نیاز در یک و یا چندین بلاک اسکریپت قرار می گیرد . با قرار دادن کدها در یک بلاک اسکریپت ، در صورتی که در محیط ویژوال استودیو کار می کنیم همچنان امکان استفاده از پتانسیل هائی نظیر اشکال زدائی و  IntelliSense ، تعامل با رویدادها و استفاده از برنامه های جانبی وجود خواهد داشت . این مدل به سهولت قابل استفاده است چراکه همه چیز در یک پکیچ نگهداری می گردد و برای کدینگ صفحات وب ساده مناسب است .

  • code-Behind : در این مدل هر صفحه ASP.NET در دو فایل جداگانه نگهداری می گردد. اولین فایل که به فایل markup موسوم است شامل تگ های Html و تگ های کنترل های مختص ASP.NET است که دارای انشعاب aspx . است . دومین فایل ، شامل کد مورد نیاز با توجه به اهداف عملیاتی یک صفحه وب است . این فایل با توجه به این که از چه زبانی برای نوشتن کدها استفاده شده است دارای انشعاب متفاوتی خواهد بود . به عنوان نمونه در صورتی که برای کدینگ از زبان VB.NET استفاده شده باشد ، انشعاب این فایل vb . و در صورتی که از زبان #C استفاده شده باشد ، انشعاب آن cs. خواهد بود . مدل فوق سازماندهی بهتری را ارائه می نماید و بخش رابط کاربر را از منطق برنامه نویسی مجزا می نماید . این وضعیت خصوصا” در مواردی که قصد پیاده سازی صفحات وب پیچیده را داشته باشیم ، بسیار مفید و موثر خواهد بود . در ویژوال استودیو ۲۰۰۵ پیاده سازی مدل code-behind تغییر یافته است ولی فلسفه کلی کار با نسخه های قبلی تا حدود زیادی مشابه است .

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

ASPNET2 Coding 01 انواع مدل كدينگ در ASP. NET 2.0 ( بخش اول )
شکل ۱ : اتخاذ تصمیم در خصوص نوع مدل کدینگ

مثال
برای آشنائی بیشتر با روش 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 خواهیم پرداخت .

دیدگاه خود را بیان کنید.

باید وارد سایت شده باشید برای دیدگاه دادن