بررسی مدل های کد نویسی در صفحات 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 است . قسمتی که با رنگ سبز مشخص شده یک مدیریت کننده رویداد است که کد لازم را برای عملکرد صفحه در هنگام کلیک بر روی دکمه فرمان تعیین می کند .
ASP.Net نمونه کد یک صفحه تک فایل |
<%@ 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 انتقال یافته است .
ASP.Net نمونه کد یک صفحه با فایل جدا برای کد |
<%@ 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 ، برنامه ویژوال استودیو نام فایل کد را نیز به صورت اتوماتیک عوض می کند ) .
مزایای صفحات با فایل جدا برای کد :
صفحات با فایل جدا برای کد برای طراحی برنامه های وب و صفحه هایی که دارای کدهای برنامه نویسی زیاد هستند ، مناسب می باشند .
مزایای صفحات با فایل جدا برای کد عبارتند از :
- در صفحات با فایل جدا برای کد ، اجزای تصویری و المنت های وب به صورت مرتب و جدا از کدهای برنامه نویسی قرار گرفته و ساختار مناسب تری دارند . همچنین این امکان فراهم می شود که طراح وب به طراحی صفحه اصلی پرداخته و همزمان کدنویس مشغول نوشتن کدهای لازم در فایل کد باشد .
- کدهای برنامه نویسی و کدهای پشت صفحه به طراحان وب و کاربران عادی صفحه که دانش برنامه نویسی ندارند ، نمایش داده نمی شوند .
- کد صفحه می تواند برای چندین فایل و صفحه مورد استفاده قرار بگیرد .