پرتال شخصی مهدی رافعی

فروشگاه افق
ofogh-shop.com

نویسندگان
چهارشنبه, ۲۲ خرداد ۱۳۹۲، ۱۱:۵۷ ق.ظ

بررسی مدل های کد نویسی در صفحات ASP.Net

asp.net

در این بخش قصد داریم تا شما را با انواع مدل های کد نویسی در صفحات ASP.Net آشنا سازیم .
صفحات ASP.Net به طور کلی از 2 بخش یا اجزا تشکیل شده اند :

  1. اجزای تصویری مثل متن های ساده ، تصاویر ، تگ ها و المنت های HTML ، کنترل های سرور ASP.Net و امثال اینها .
  2. قطعه کدهای برنامه نویسی مثل مدیریت کننده رویدادها ، تابع ها و سایر کدها .

به طور کلی برنامه نویسی ASP.Net دو مدل را برای مدیریت اجزای تصویری و کدها را در یک صفحه وب ارائه می دهد :

  1. مدل فایل تک صفحه : در این مدل کدها و اجزای تصویری هر دو در یک فایل aspx و در کنار هم قرار دارند .
  2. مدل کد پشت پرده ( فایل جدا برای کد ) : در این حالت اجزای تصویری و المنت های وب در فایل اصلی صفحه یعنی فایل 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 ، برنامه ویژوال استودیو نام فایل کد را نیز به صورت اتوماتیک عوض می کند ) .

مزایای صفحات با فایل جدا برای کد :

صفحات با فایل جدا برای کد برای طراحی برنامه های وب و صفحه هایی که دارای کدهای برنامه نویسی زیاد هستند ، مناسب می باشند .
مزایای صفحات با فایل جدا برای کد عبارتند از :

  • در صفحات با فایل جدا برای کد ، اجزای تصویری و المنت های وب به صورت مرتب و جدا از کدهای برنامه نویسی قرار گرفته و ساختار مناسب تری دارند . همچنین این امکان فراهم می شود که طراح وب به طراحی صفحه اصلی پرداخته و همزمان کدنویس مشغول نوشتن کدهای لازم در فایل کد باشد .
  • کدهای برنامه نویسی و کدهای پشت صفحه به طراحان وب و کاربران عادی صفحه که دانش برنامه نویسی ندارند ، نمایش داده نمی شوند .
  • کد صفحه می تواند برای چندین فایل و صفحه مورد استفاده قرار بگیرد .

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی