بررسی مدل های کد نویسی در صفحات
ASP.Net :
در این بخش قصد داریم تا شما را با انواع مدل های کد
نویسی در صفحات ASP.Net آشنا سازیم .
صفحات ASP.Net به طور کلی از 2 بخش یا اجزا تشکیل شده اند :
-
اجزای تصویری مثل متن های ساده ، تصاویر ، تگ ها
و المنت های HTML ، کنترل های سرور ASP.Net و امثال اینها .
-
قطعه کدهای برنامه نویسی مثل مدیریت کننده
رویدادها ، تابع ها و سایر کدها .
به طور کلی برنامه نویسی ASP.Net دو مدل را برای
مدیریت اجزای تصویری و کدها را در یک صفحه وب ارائه می دهد :
-
مدل فایل تک صفحه :
در این مدل کدها و اجزای تصویری هر دو در یک فایل
aspx و در کنار هم قرار دارند .
-
مدل کد پشت پرده ( فایل جدا برای کد )
: در این حالت اجزای تصویری و المنت های وب در فایل اصلی صفحه یعنی فایل aspx
قرار داده شده و کدهای برنامه نویسی در یک فایل جداگانه و در پشت پرده صفحه
اصلی در یک فایل با پسوند aspx.cs یا aspx.vb نوشته می شوند . به این فایل در
اصطلاح فایل کد پشت صفحه می گویند .
هر دو مدل اشاره شده دارای عملکرد و خروجی یکسانی
بوده و شما می توانید هر کدام را بنا به نیاز و یا سلیقه خود برای طراحی صفحه به
کار ببرید . در هر دو مدل کدها و کنترل های یکسانی استفاده می شود .
در ادامه به توضیح کاملتر و مثال های عملی برای هر دو روش خواهیم پرداخت .
مدل صفحه تک فایل :
همانطور که اشاره کردیم ، در مدل تک
فایل کلیه اجزای تصویری ، المنت های وب و کدهای برنامه نویسی در یک فایل تکی aspx
قرار دارند .
کدهای برنامه نویسی در این روش در بلوک هایی با تگ < script > که مقدار خاصیت Runat
آن برابر با مقدار " server " تعیین شده است ، قرار می گیرند . وجود این خاصیت با
مقدار اشاره شده باعث می شود تا این اسکریپت ها و کدهای آن توسط سرور ASP.Net
پردازش شوند .
کد زیر ، کد یک صفحه تک فایل ASP.Net را نشان می دهد . کد مثال شامل یک دکمه فرمان
Button و یک کنترل Label است . قسمتی که با رنگ سبز مشخص شده یک مدیریت کننده
رویداد است که کد لازم را برای عملکرد صفحه در هنگام کلیک بر روی دکمه فرمان تعیین
می کند .
<%@ Page Language="C#" %>
<script runat="server">
void Button1_Click(Object sender, EventArgs e)
{ Label1.Text = "Clicked at " + DateTime.Now.ToString(); }
</script>
<html>
<head>
<title>Single-File Page Model</title>
</head>
<body>
<form id="Form1" runat="server">
<div>
<asp:Label id="Label1" runat="server" Text="Label">
</asp:Label>
<asp:Button id="Button1" runat="server"
onclick="Button1_Click" Text="Button">
</asp:Button>
</div>
</form>
</body>
</html>
|
تگ < script > می تواند به هر میزان که
لازم داشته باشید ، کدهای مورد نیاز صفحه را در خود جای دهد . کدهای قرار داده شده
می تواند شامل مدیریت کننده رویدادها برای کنترل های روی صفحه ( همانند ارائه شده
در مثال ) ، متدها ، خواص و یا هر گونه کدی که به صورت نرمال در صفحات وب به کار می
برید ، باشد .
نکته مهمی که در به کار بردن روش فایل تک صفحه برای کد نویسی وجود دارد ، این است
که در برنامه نویسی NET. شما برای اضافه کردن namespace ها به صفحه از عبارت using
استفاده می کنید . اما در حالت فایل تک صفحه این امکان وجود ندارد و برای وارد
نمودن namesapce ها ، باید از یک عبارت import @ یا یک رفرنس به فایل DLL ای که
namespace در آن قرار دارد ، استفاده کنید .
مدل فایل جدا برای کد ( کد پشت پرده )
:
در مدل فایل جدا برای کد ( فایل کد پشت
پرده ) عناصر وب و اجزای تصویری صفحه همه در فایل اصلی aspx قرار گرفته و کدهای
برنامه نویسی در یک فایل جداگانه قرار می گیرند .
پسوند فایل کد بنا بر زبان برنامه نویسی که از آن استفاده می کنید ، متفاوت خواهد
بود . برای مثال اگر نام فایل اصلی صفحه Sample.aspx باشد ، نام فایل کد آن برای
زبان VB نام Sample.aspx.vb و برای زبان #C نام Sample.aspx.cs می باشد .
کد مثال قبل را برای حالت فایل کد جدا
بازنویسی کرده ایم . در این حالت اجزای تصویری و المنت های وب را در فایل اصلی صفحه
یعنی Sample.aspx قرار داده و قسمت کد برنامه به فایل کد یعنی فایل Sample.aspx.cs
انتقال یافته است .
<%@ page language="C#"
codefile="SamplePage.aspx.cs" inherits="SamplePage"
autoeventwireup="true" %>
<html>
<head id="Head1" runat="server">
<title>Code-Behind Page Model</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label">
</asp:Label>
<br />
<asp:Button ID="Button1" runat="server"
OnClick="Button1_Click" Text="Button"></asp:Button>
</div>
</form>
</body>
</html> |
دو تفاوت عمده بین کد صفحه تک فایل و صفحه با فایل کد
جدا وجود دارد . در مدل صفحه با فایل کد جدا ، تگ اسکریپت < script > با خاصیت "
Runat = " server وجود ندارد ( در عوض صفحه می تواند به تعداد مورد نیاز تگ <
script > برای قرار دادن کدهای کلاینت ساید در صفحه داشته باشد ) .
تفاوت دوم این است که اشاره گر Page @ در ابتدای صفحه در حالت فایل جدا برای کد ،
دارای یک خاصیت ویژه است که به نام و آدرس فایل کد صفحه اشاره می کند . این خاصیت
صفحه aspx را به صفحه کد پشت صفحه آن پیوند می زند . همانطور که قبلا گفتیم نام این
فایل برای مثال می تواند Sample.aspx.vb یا Sample.aspx.cs باشد .
در مثال فوق خاصیتی که نام فایل کد پشت پرده را تعیین می کند ، خاصیت CodeFile است
. اما در برنامه های کاربردی وب ( Web Application Projects ) این خاصیت CodeBehind
است .
کد زیر نیز کد فایل جدا برای کدهای برنامه نویسی صفحه که شامل همان رویداد click و
مدیریت کننده رویداد آن که در مثال قبل در درون خود صفحه aspx تعریف شده بود ، می
باشد .
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class SamplePage :
System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Clicked at " + DateTime.Now.ToString();
}
}
|
انتخاب مدل کدنویسی برای صفحه ( تک
فایل یا فایل جدا برای کد ) :
هر دو مدل فایل تک صفحه و فایل جدا
برای کد به صورت کاملا یکسان عمل کرده و دارای خروجی مشابهی هستند . در هنگام اجرا
نیز به یک روش اجرا شده و تفاوت کیفی بین آنها وجود ندارد .
بنابراین انتخاب مدل کد صفحه به فاکتورهایی دیگری به غیر از اینها بستگی دارد . به
اینکه شما چگونه می خواهید کدهای خود را در صفحه سازماندهی کرده و یا اینکه مهم است
کدها در یک بخش جدا باشند و یا خیر .
در بخش زیر به معرفی مزایا و معایب استفاده از هر روش می پردازیم :
مزایای فایل های تک صفحه :
به طور کلی مدل فایل تک صفحه برای حالت
های برنامه نویسی خوب است که صفحه شامل مدیریت کننده رویدادهای کنترل های موجود بر
روی صفحه است و نه چیز دیگر .
مزایای فایل های تک صفحه عبارتند از :
-
برای صفحاتی که کد برنامه نویسی
چندانی ندارند ، استفاده از مدل تک فایل بهتر است . زیرا هم کد صفحه کاهش یافته
و مطالعه و تغییر یک فایل تکی ساده تر و سریعتر از دو فایل است .
-
صفحاتی که به صورت تک فایل طراحی
می شوند برای انتقال بین رسانه ها و آپلود بر روی سایت ساده تر هستند ، چون فقط
یک فایل دارند .
-
به دلیل عدم وجود وابستگی بین فایل
اصلی و فایل کد در حالت صفحه تک فایل ، تغییر نام فایل تک صفحه در زمانی که از
ویرایشگری به جز ویژوال استودیو استفاده می کنید ، ساده تر است . ( در حالت
فایل جدا برای کد ، هنگام تغییر نام فایل اصلی aspx ، برنامه ویژوال استودیو
نام فایل کد را نیز به صورت اتوماتیک عوض می کند ) .
مزایای صفحات با فایل جدا برای کد :
صفحات با فایل جدا برای کد برای طراحی
برنامه های وب و صفحه هایی که دارای کدهای برنامه نویسی زیاد هستند ، مناسب می
باشند .
مزایای صفحات با فایل جدا برای کد عبارتند از :
-
در صفحات با فایل جدا برای کد ،
اجزای تصویری و المنت های وب به صورت مرتب و جدا از کدهای برنامه نویسی قرار
گرفته و ساختار مناسب تری دارند . همچنین این امکان فراهم می شود که طراح وب به
طراحی صفحه اصلی پرداخته و همزمان کدنویس مشغول نوشتن کدهای لازم در فایل کد
باشد .
-
کدهای برنامه نویسی و کدهای پشت
صفحه به طراحان وب و کاربران عادی صفحه که دانش برنامه نویسی ندارند ، نمایش
داده نمی شوند .
-
کد صفحه می تواند برای چندین فایل
و صفحه مورد استفاده قرار بگیرد .