آشنایی با asp.net (بخش اول)
فهرست مطالب
آخرین به روزرسانی در 21/10/2022
در این مقاله قصد داریم به آموزش ابتدایی و کلی asp.net بپردازیم.
لازم به ذکر است ما قبلا در مقاله ی آشنایی با سی شارپ کلیات زبان برنامه نویسی
سی شارپ که هسته ی برنامه نویسی asp.net است را شرح داده ایم.
پس قائدتا در این مقاله از جزئیات زبان سی شارپ پرهیز کرده و بیشتر تمرکز بر کلیات
برنامه نویسی با asp.net خواهیم داشت.
آشنایی اولیه
ASP.NET به صورت اختصاصی برای برنامه نویسی وب و سمت سرور مورد استفاده قرار می گیرد.
همچنین به صورت کاملا شی گرا بوده و کاملا تعامل گرا نیز می باشد.
ابزار توسعه برای ساخت برنامه های ASP.NET و فرانت اند Visual Studio است.
در این آموزش با Visual Studio 2008 سر و کار داریم.
Visual Studio یک محیط توسعه یکپارچه برای نوشتن، کامپایل و اشکال زدایی کد است.
این مجموعه کاملی از ابزارهای توسعه را برای ساخت برنامه های کاربردی وب ASP.NET، خدمات وب،
برنامه های کاربردی دسکتاپ و حتی برنامه های تلفن همراه ارائه می دهد.
شروع کار
در مرحله ی اول ویژوال استادیو را نصب کرده و مراحل مربوط به نصب آن را طی میکنیم.
(به علت سادگی این بخش از توضیح در رابطه با مراحل نصب می پرهیزیم.)
هنگامی که یک وب سایت جدید راه اندازی می کنید، ASP.NET پوشه ها و فایل های شروع را برای سایت فراهم می کند، از جمله دو فایل برای اولین فرم وب سایت.
فایلی با نام Default.aspx حاوی کد HTML و asp است که فرم را تعریف می کند و فایلی با نام Default.aspx.cs برای کدنویسی C# یا فایلی با نام Default.aspx.vb برای کدنویسی VB حاوی کد موجود در زبانی که انتخاب کرده اید و این کد مسئول اعمال انجام شده روی یک فرم است.
پنجره اصلی در Visual Studio IDE پنجره Web Forms Designer است.
سایر پنجره های پشتیبانی کننده جعبه ابزار، Solution Explorer و پنجره Properties هستند.
شما از طراح برای طراحی یک فرم وب استفاده می کنید، برای اضافه کردن کد به کنترل روی فرم به طوری که فرم مطابق نیاز شما کار می کند،
از ویرایشگر کد استفاده می کنید.
کار با Views و Windows
شما می توانید با ویندوز به روش های زیر کار کنید:
برای تغییر Web Forms Designer از یک نمای به نمای دیگر، روی دکمه Design یا Source کلیک کنید.
برای بستن یک پنجره، روی دکمه بستن در گوشه بالا سمت راست کلیک کنید و برای نمایش مجدد، آن را از منوی View انتخاب کنید.
برای مخفی کردن یک پنجره، روی دکمه پنهان کردن خودکار آن کلیک کنید.
سپس پنجره به تب تبدیل می شود. برای نمایش مجدد، دوباره روی دکمه Auto Hide کلیک کنید.
برای تغییر اندازه یک پنجره، فقط آن را بکشید.
اضافه کردن پوشه ها و فایل ها به وب سایت شما
هنگامی که یک فرم وب جدید ایجاد می شود، ویژوال استودیو به طور خودکار HTML اولیه فرم را تولید می کند و آن را در نمای منبع طراح فرم های وب نمایش می دهد.
Solution Explorer برای افزودن هر فایل، پوشه یا هر مورد موجود در وب سایت استفاده می شود.
برای افزودن یک پوشه استاندارد، روی پروژه یا پوشه ای که قرار است در آن پوشه را در
Solution Explorer اضافه کنید، راست کلیک کرده و New Folder را انتخاب کنید.
برای افزودن یک پوشه ASP.NET، روی پروژه در Solution Explorer راست کلیک کرده و پوشه را از لیست انتخاب کنید.
برای افزودن یک آیتم موجود به سایت، روی پروژه یا پوشه ای که در آن می خواهید
مورد را در Solution Explorer اضافه کنید کلیک راست کرده و از کادر محاوره ای انتخاب کنید.
پروژه ها و راه حل ها
یک برنامه معمولی ASP.NET شامل موارد زیادی است :
- فایلهای محتوای وب (aspx.)
- فایلهای منبع (فایلهای cs)
- مجموعهها (فایلهای .dll و .exe)
- فایلهای منبع داده (فایلهای mdb.)
- مراجع، نمادها
- کنترل های کاربر و فایل ها و پوشه های متفرقه دیگر
تمام این فایلهایی که وبسایت را تشکیل میدهند در یک Solution قرار دارند.
هنگامی که یک وب سایت جدید ایجاد می شود. VB2008 به طور خودکار Solution را ایجاد می کند و آن را در کاوشگر Solution نمایش می دهد.
Solution ها ممکن است شامل یک یا چند پروژه باشند.
یک پروژه حاوی فایل های محتوا، فایل های منبع و فایل های دیگر مانند منابع داده و فایل های تصویری است.
به طور کلی، محتویات یک پروژه در یک اسمبلی به عنوان یک فایل اجرایی (exe.) یا یک فایل کتابخانه پیوند پویا (.dll) کامپایل می شود.
به طور معمول یک پروژه حاوی فایل های محتوای زیر است:
- فایل صفحه (aspx.)
- کنترل کاربر (ascx.)
- وب سرویس (asmx.)
- صفحه اصلی (.master)
- نقشه سایت (sitemap.)
- فایل پیکربندی وب سایت (config.)
چرخه حیات asp.net
ما قبلا در مقاله ی چرخه ی حیات اندروید به توضیحات اجمالی در رابطه با چرخه حیات پرداخته ایم.
در asp.net چرخه ی حیات به دو دسته بندی زیر تقسیم می شود :
- 1- چرخه حیات برنامه
- 2- چرخه حیات صفحات
چرخه عمر برنامه دارای مراحل زیر است :
در ابتدای کار کاربر درخواستی برای دسترسی به منبع برنامه، یک صفحه می کند.
مرورگر این درخواست را به وب سرور ارسال می کند.
یک unified pipeline اولین درخواست را دریافت می کند و رویدادهای زیر رخ می دهد :
یک شی از کلاس ApplicationManager ایجاد می شود.
یک شی از کلاس HostingEnvironment برای ارائه اطلاعات در مورد منابع ایجاد می شود.
موارد سطح بالا در برنامه کامپایل شده است.
آبجکت ها ایجاد می شوند. آبجکت های برنامه مانند HttpContext، HttpRequest و HttpResponse ایجاد و مقداردهی اولیه می شوند.
نمونه ای از شی HttpApplication ایجاد شده و به درخواست اختصاص داده می شود.
درخواست توسط کلاس HttpApplication پردازش می شود.
رویدادهای مختلفی توسط این کلاس برای پردازش درخواست مطرح می شود.
چرخه حیات صفحه در ASP.NET :
هنگامی که صفحه ای درخواست می شود، در حافظه سرور بارگذاری شده و پردازش می شود و پس از آن به مرورگر ارسال می شود.
در مرحله ی بعد از حافظه تخلیه می شود.
در هر یک از این مراحل، روشها و رویدادهایی در دسترس هستند که میتوان آنها را با توجه به نیاز برنامه لغو یا متوقف کرد.
کلاس Page یک درخت سلسله مراتبی از تمام کنترل های صفحه ایجاد می کند.
تمام اجزای صفحه، به جز دستورالعمل ها، بخشی از این درخت کنترل هستند.
می توانید درخت کنترل را با افزودن trace= “true” به دستورالعمل صفحه ببینید.
ما دستورالعملهای صفحه و ردیابی را تحت «دستورالعملها» و «مدیریت رویداد» پوشش خواهیم داد.
مراحل چرخه حیات صفحه به صورت اختصار عبارتند از:
- مقداردهی اولیه
- نمونه سازی از کنترل ها در صفحه
- بازسازی و نگهداری
- اجرای کدهای کنترل کننده
- پردازش صفحه
درک چرخه حیات صفحه به نوشتن کدهایی برای ایجاد یک چیز خاص در هر مرحله از چرخه حیات صفحه کمک می کند.
همچنین به نوشتن کنترلهای سفارشی و راهاندازی اولیه آنها در زمان مناسب،
پر کردن ویژگیهای آنها با دادههای حالت نمایش و اجرای کد آن کمک میکند.
مراحل مختلف یک صفحه ASP.NET
Page request : وقتی ASP.NET یک درخواست برای نمایش صفحه دریافت می کند،
تصمیم می گیرد که آیا صفحه را تجزیه و کامپایل کند یا یک نسخه کش شده از صفحه را نمایش دهد.
بر این اساس پاسخ ارسال می شود.
Starting of page life cycle : در این مرحله، اشیاء Request و Response تنظیم می شوند.
اگر درخواست یک درخواست قدیمی یا ارسال مجدد باشد، ویژگی IsPostBack صفحه روی true تنظیم می شود.
ویژگی UICulture صفحه نیز تنظیم شده است.
Page initialization : در این مرحله با تنظیم خاصیت UniqueID به کنترل های صفحه شناسه منحصر به فرد اختصاص داده می شود و تم ها اعمال می شوند.
Page load : در این مرحله، ویژگی های کنترل با استفاده از مقادیر view state و control state تنظیم می شوند.
Validation : متد Validate فراخوانی می شود و در اجرای آن، ویژگی IsValid صفحه روی true تنظیم می شود.
Postback event handling : اگر درخواست یک postback (درخواست قدیمی) باشد، کنترلکننده رویداد مربوطه فراخوانی میشود.
Page rendering : در این مرحله حالت مشاهده صفحه و تمامی کنترل ها ذخیره می شود.
صفحه متد Render را برای هر کنترل فراخوانی می کند و خروجی رندر در کلاس OutputStream از ویژگی Response صفحه نوشته می شود.
Unload : صفحه رندر شده برای مشتری ارسال می شود و ویژگی های صفحه مانند Response و Request بارگیری می شوند و تمام پاکسازی ها انجام می شود.
اولین مثال
یک صفحه ASP.NET نیز یک فایل سمت سرور است که با پسوند .aspx ذخیره شده است.
ماهیت آن مدولار است و می توان آن را به بخش های اصلی زیر تقسیم کرد:
- دستورالعمل های صفحه
- بخش کد
- قالب صفحه
Page Directives (دستورالعمل های صفحه)
محیطی را برای بارگیری صفحه تنظیم می کنند. دستور @Page ویژگی های خاص صفحه را که توسط تجزیه کننده و کامپایلر صفحه ASP.NET استفاده می شود، تعریف می کند.
دستورالعمل های صفحه مشخص می کنند که صفحه چگونه باید پردازش شود، و چه فرضیاتی باید در مورد صفحه در نظر گرفته شود.
این امکان وارد کردن namespaces ، بارگیری assemblies ، و ثبت کنترل های جدید با نام تگ های سفارشی و پیشوندهای namespace را می دهد.
Code Section (بخش کد)
بخش کد، کنترل کننده های صفحه و رویدادهای کنترلی را به همراه سایر توابع مورد نیاز ارائه می دهد.
اشاره کردیم که ASP.NET از یک مدل آبجکت پیروی می کند.
اکنون، این آبجکت ها هنگامی که برخی رویدادها در رابط کاربری اتفاق میافتند، رویدادها را افزایش میدهند، مانند کلیک کاربر روی دکمه یا حرکت مکاننما.
نوع پاسخی که این رویدادها باید برگردانند در توابع event handler کدگذاری شده است.
event handler چیزی جز توابع functions bound نیستند.
Page Layout (قالبت صفحه)
قالب صفحه رابط کاربری صفحه را فراهم می کند. این شامل کنترل های سرور، متن، جاوا اسکریپت و تگ های HTML است.
قطعه کد زیر نمونه ای از صفحه ASP.NET را ارائه می دهد که دستورالعمل های صفحه، بخش کد و قالب صفحه نوشته شده در سی شارپ را توضیح می دهد:
<% @Page Language="C#" %>
Change to Upper Case
Conversion to Upper Case
رویدادها در ASP.NET
رویداد یک عمل یا رخداد است مانند کلیک ماوس، فشار دادن یک دکمه، حرکت ماوس یا هر اعلان تولید شده توسط سیستم.
یک فرآیند از طریق رویدادها ارتباط برقرار می کند.
به عنوان مثال، وقفه ها رویدادهای تولید شده توسط سیستم هستند.
هنگامی که رویدادها رخ می دهند، برنامه باید بتواند به آن پاسخ دهد و آن را مدیریت کند.
رویدادها در ASP.NET در سمت کلاینت بوده و در سمت سرور مدیریت می شوند.
برای مثال، کاربر روی دکمه ای که در مرورگر نمایش داده می شود کلیک می کند.
یک رویداد کلیک خوانده می شود. مرورگر این رویداد سمت کلاینت را با ارسال آن به سرور مدیریت می کند.
سرور دارای یک برنامه فرعی است که در آن توضیح می دهد که در هنگام بالا آمدن رویداد چه کاری باید انجام شود.
به آن رویداد Handler گفته می شود. بنابراین، هنگامی که پیام رویداد به سرور منتقل میشود، بررسی میکند که آیا رویداد کلیک دارای یک کنترل کننده رویداد مرتبط است یا خیر. در صورت وجود، کنترل کننده رویداد اجرا می شود.
Event Arguments
ASP.NET event handlers معمولاً دو پارامتر را میگیرند و void را برمیگردانند.
پارامتر اول نشان دهنده شیء افزایش دهنده رویداد و پارامتر دوم آرگومان رویداد است.
نحو کلی یک رویداد به صورت زیر است:
private void EventName (object sender, EventArgs e);
مهم ترین رویدادها
Application_Start : زمانی که برنامه/وب سایت راه اندازی می شود، افزایش می یابد.
Application_End : زمانی که برنامه/وب سایت متوقف می شود، افزایش می یابد.
به طور مشابه، پر استفاده ترین رویدادهای Session عبارتند از:
Session_Start : زمانی که کاربر برای اولین بار صفحه ای را از برنامه درخواست می کند، افزایش می یابد.
Session_End : هنگامی که جلسه به پایان می رسد، بالا می رود.
رویدادهای صفحه و کنترل
DataBinding : هنگامی که یک کنترل به منبع داده متصل می شود، افزایش می یابد.
Disposed : هنگامی که صفحه یا کنترل آزاد می شود، بالا می رود.
Error : زمانی رخ می دهد که یک استثنا کنترل نشده ارسال می شود.
Init : هنگامی که صفحه یا کنترل مقداردهی اولیه می شود، افزایش می یابد.
Load : هنگامی که صفحه یا یک کنترل بارگذاری می شود، افزایش می یابد.
PreRender : زمانی که صفحه یا کنترل قرار است رندر شود بالا می رود.
Unload : هنگامی که صفحه یا کنترل از حافظه بارگیری می شود، افزایش می یابد.
مدیریت رویداد با استفاده از کنترل ها
تمام کنترلهای ASP.NET بهعنوان کلاسها پیادهسازی میشوند و رویدادهایی دارند که زمانی که کاربر
یک عمل خاص را روی آنها انجام میدهد، فعال میشوند.
به عنوان مثال، هنگامی که کاربر روی دکمه ای کلیک می کند، رویداد “Click” ایجاد می شود.
برای مدیریت رویدادها، ویژگی ها و کنترل کننده های رویداد داخلی وجود دارد.
کنترل کننده رویداد برای پاسخ به یک رویداد و انجام اقدامات مناسب در مورد آن کدگذاری شده است.
بهطور پیشفرض، ویژوال استودیو با قرار دادن یک بند Handles در رویه Sub، یک مدیریت رویداد ایجاد میکند.
تگ ASP برای کنترل دکمه :
کنترل کننده رویداد برای رویداد کلیک :
Protected Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Handles btnCancel.Click
End Sub
یک رویداد همچنین می تواند بدون بند Handles کدگذاری شود. سپس، کنترل کننده باید با توجه به ویژگی رویداد مناسب کنترل نامگذاری شود.
تگ ASP برای کنترل دکمه:
سمت سرور
در این بخش آبجکت Request و آبجکت Response را بررسی خواهیم کرد.
آبجکت Server در Asp.NET نمونه ای از کلاس System.Web.HttpServerUtility است.
کلاس HttpServerUtility ویژگی ها و روش های متعددی را برای انجام کارهای مختلف ارائه می دهد.
جدول زیر لیستی از خواص را ارائه می دهد:
Property | Description |
MachineName | Name of server computer |
ScriptTimeOut | Gets and sets the request time-out value in seconds. |
جدول زیر فهرستی از چند روش مهم را ارائه می دهد :
Method | Description |
CreateObject(String) | نمونه ای از شی COM که توسط ProgID ایجاد می شود. |
CreateObject(Type) | نمونه ای از شی COM که با نوع مشخص شده ی ایجاد می کند. |
Equals(Object) | تعیین می کند که آیا شی مشخص شده با شی فعلی برابر است یا خیر. |
Execute(String) | کنترل کننده مسیر مجازی مشخص شده را در زمینه درخواست فعلی اجرا می کند. |
Execute(String, Boolean) | کنترل کننده مسیر مجازی مشخص شده را در زمینه درخواست فعلی اجرا می کند و مشخص می کند که آیا مجموعه های QueryString و Form پاک شوند یا خیر. |
GetLastError | Exception قبلی را باز می گرداند. |
GetType | نوع نمونه فعلی را دریافت می کند. |
HtmlEncode | یک رشته معمولی را به رشته ای با کاراکترهای قانونی HTML تغییر می دهد. |
HtmlDecode | یک رشته Html را به یک رشته معمولی تبدیل می کند. |
ToString | رشته ای را برمی گرداند که نشان دهنده شی فعلی است. |
Transfer(String) | برای درخواست فعلی، اجرای صفحه فعلی را خاتمه می دهد و با استفاده از مسیر URL مشخص شده صفحه، اجرای یک صفحه جدید را آغاز می کند. |
UrlDecode | یک رشته URL را به یک رشته معمولی تبدیل می کند. |
UrlEncodeToken | مانند UrlEncode کار می کند، اما روی یک آرایه بایتی که حاوی داده های کدگذاری شده با Base64 است. |
UrlDecodeToken | مانند UrlEncode کار می کند، اما روی یک آرایه بایتی که حاوی داده های کدگذاری شده با Base64 است. |
MapPath | مسیر فیزیکی مربوط به مسیر فایل مجازی مشخص شده در سرور را برگردانید. |
Transfer | اجرا را به صفحه وب دیگری در برنامه فعلی منتقل می کند. |
کنترلرها
کنترلها بلوکهای کوچکی از رابط کاربری گرافیکی هستند که شامل textbox، دکمهها، menu border، برچسبها و ابزارهای متعدد دیگر میشوند.
با استفاده از این ابزار، کاربران می توانند داده ها را وارد کرده، انتخاب کرده و انتخاب های خود را نشان دهند.
کنترل ها همچنین برای عملیات های ساختاری مانند اعتبارسنجی، دسترسی به داده ها، امنیت، ایجاد صفحات اصلی و دستکاری داده ها استفاده می شوند.
ASP.NET از پنج نوع کنترل وب استفاده می کند که عبارتند از:
- کنترل های HTML
- کنترل های سرور HTML
- کنترل های سرور ASP.NET
- کنترل های سرور ASP.NET Ajax
کنترل های کاربر و کنترل های سفارشی
کنترل های سرور ASP.NET کنترل های اولیه ای هستند که در ASP.NET استفاده می شوند.
این کنترل ها را می توان به دسته های زیر دسته بندی کرد:
Validation controls : برای تأیید ورودی کاربر استفاده میشوند و با اجرای اسکریپت سمت سرویس گیرنده کار میکنند.
Data source controls : این کنترل ها اتصال داده ها را به منابع داده های مختلف فراهم می کند.
Data view controls : اینها فهرستها و جداول مختلفی هستند که میتوانند برای نمایش به دادههای منابع داده متصل شوند.
Personalization controls : برای شخصیسازی صفحه با توجه به تنظیمات کاربر، بر اساس اطلاعات کاربر استفاده میشود.
Login and security controls : این کنترل ها احراز هویت کاربر را فراهم می کنند.
Master pages : این کنترل ها چیدمان و رابط کاربری ثابتی را در سراسر برنامه ارائه می دهند.
Navigation controls : این کنترل ها به ناوبری کمک می کنند. به عنوان مثال، منوها، نمای درختی و …
Rich controls : این کنترل ها ویژگی های خاصی را اجرا می کنند. به عنوان مثال، کنترل AdRotator، FileUpload و Calendar.
نحو استفاده از کنترل های سرور به صورت زیر است:
تنظیمات کنترلرها
کنترل های سرور ASP.Net تمام ویژگی ها، رویدادها و روش های کلاس WebControl و System.Web.UI.Control را به ارث می برند.
در لینک : https://www.tutorialspoint.com/asp.net/asp.net_server_controls.htm
جدولی وچود دارد که ویژگی های ارثی را نشان می دهد که در همه کنترل های سرور مشترک است.
HTML Server
کنترلهای سرور HTML اساساً کنترلهای استاندارد HTML هستند که برای فعال کردن پردازش سمت سرور بهبود یافتهاند.
کنترلهای HTML مانند تگهای هدر، تگهای لنگر و عناصر ورودی توسط سرور پردازش نمیشوند اما برای نمایش به مرورگر ارسال میشوند.
آنها به طور خاص با افزودن ویژگی runat = “server” و افزودن یک ویژگی id به یک کنترل سرور تبدیل می شوند تا برای پردازش سمت سرور در دسترس قرار گیرند.
به عنوان مثال، کنترل ورودی HTML را در نظر بگیرید:
می توان آن را با افزودن ویژگی runat و id به یک کنترل سرور تبدیل کرد:
اگرچه کنترل های سرور ASP.NET می توانند هر کار انجام شده توسط کنترل های سرور HTML را انجام دهند اما کنترل های بعدی در موارد زیر مفید هستند:
استفاده از جداول استاتیک برای layout purposes.
تبدیل یک صفحه HTML برای اجرا تحت ASP.NET
جدول زیر کنترل های سرور HTML را توضیح می دهد:
Control Name | HTML tag |
HtmlHead | <head>element |
HtmlInputButton | <input type=button|submit|reset> |
HtmlInputCheckbox | <input type=checkbox> |
HtmlInputFile | <input type = file> |
HtmlInputHidden | <input type = hidden> |
HtmlInputImage | <input type = image> |
HtmlInputPassword | <input type = password> |
HtmlInputRadioButton | <input type = radio> |
HtmlInputReset | <input type = reset> |
HtmlText | <input type = text|password> |
HtmlImage | <img> element |
HtmlLink | <link> element |
HtmlAnchor | <a> element |
HtmlButton | <button> element |
HtmlButton | <button> element |
HtmlForm | <form> element |
HtmlTable | <table> element |
HtmlTableCell | <td> and <th> |
HtmlTableRow | <tr> element |
HtmlTitle | <title> element |
HtmlSelect | <select&t; element |
HtmlGenericControl | All HTML controls not listed |
مثال زیر از یک جدول HTML اصلی برای چیدمان استفاده می کند. از کادرهایی برای دریافت ورودی از کاربران مانند نام، آدرس، شهرو … استفاده می کند.
همچنین دارای یک دکمه کنترل است که روی آن کلیک می شود تا داده های کاربر در ردیف آخر جدول نمایش داده شود.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="htmlserver._Default" %>
Untitled Page
کد بک ان دکمه کنترل :
protected void Button1_Click(object sender, EventArgs e)
{
string str = "";
str += txtname.Text + "
";
str += txtstreet.Text + "
";
str += txtcity.Text + "
";
str += txtstate.Text + "
";
displayrow.InnerHtml = str;
}
سمت کلاینت
کدنویسی سمت کلاینت ASP.NET دو جنبه دارد :
اسکریپت های سمت کلاینت: روی مرورگر اجرا می شود و به نوبه خود سرعت اجرای صفحه را افزایش می دهد.
سورس کد سمت کلاینت : صفحات ASP.NET این را تولید می کنند.
به عنوان مثال، سورس کد HTML یک صفحه ASP.NET حاوی تعدادی فیلد پنهان و بلوک های کد جاوا اسکریپت است که به طور خودکار تزریق می شود،
که اطلاعاتی مانند حالت نمایش را نگه می دارد یا کارهای دیگری را برای کارکرد صفحه انجام می دهد.
اسکریپت های سمت کلاینت
تمام کنترل های سرور ASP.NET امکان فراخوانی کد سمت کلاینت نوشته شده با جاوا اسکریپت یا VBScript را می دهند.
برخی از کنترل های سرور ASP.NET از برنامه نویسی سمت سرویس گیرنده برای ارائه پاسخ به کاربران بدون ارسال مجدد به سرور استفاده می کنند.
به عنوان مثال، کنترل های اعتبارسنجی.
جدای از این اسکریپتها، کنترل Button دارای ویژگی OnClientClick است که امکان اجرای اسکریپت سمت کلاینت را با کلیک روی دکمه فراهم میکند.
کنترلهای HTML سنتی و سرور دارای رویدادهای زیر هستند که میتوانند یک اسکریپت را هنگام بالا کشیدن اجرا کنند:
Event Description
onblur When the control loses focus
onfocus When the control receives focus
onclick When the control is clicked
onchange When the value of the control changes
onkeydown When the user presses a key
onkeypress When the user presses an alphanumeric key
onkeyup When the user releases a key
onmouseover When the user moves the mouse pointer over the control
onserverclick It raises the ServerClick event of the control, when the control is clicked
سورس کد سمت کلاینت
قبلاً بحث کردیم که صفحات ASP.NET معمولاً در دو فایل نوشته می شوند:
- فایل محتوا یا فایل نشانه گذاری (.aspx)
- فایل بک اند
فایل محتوا حاوی تگهای کنترلی HTML یا ASP.NET و literals برای تشکیل ساختار صفحه است.
فایل بک اند حاوی تعریف کلاس است. در زمان اجرا، فایل محتوا تجزیه شده و به یک کلاس صفحه تبدیل می شود.
این کلاس به همراه تعریف کلاس در فایل کد تولید شده توسط سیستم، با هم کد اجرایی (مجموعه) را می سازند
که تمام داده های ارسال شده را پردازش می کند، پاسخ تولید می کند و آن را به مشتری ارسال می کند.
صفحه ساده را در نظر بگیرید:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
Inherits="clientside._Default" %>
Untitled Page
هنگامی که این صفحه در مرورگر اجرا می شود، گزینه View Source صفحه HTML ارسال شده توسط ASP.Net را به مرورگر نشان می دهد :
Untitled Page
اگر کد را به درستی مرور کنید، می بینید که دو تگ <div> اول حاوی فیلدهای مخفی هستند که وضعیت view و اطلاعات اعتبار سنجی را ذخیره می کنند.
دستورالعمل های برنامه
دستورالعمل Application ویژگی های خاص برنامه را تعریف می کند که در بالای فایل global.aspx ارائه شده است.
سینتکس اصلی Application Directive به شرح زیر است:
<%@ Application Language="C#" %>
ویژگی های دستورالعمل برنامه عبارتند از:
Attributes | Description |
Inherits | نام کلاسی که از آن به ارث می رسد. |
Description | توضیحات متنی برنامه تجزیه کننده ها و کامپایلرها این را نادیده می گیرند. |
Language | زبان مورد استفاده در بلوک های کد. |
ویژگی های دستورالعمل مجمع عبارتند از:
Attributes | Description |
Name | نام مجمعی که باید پیوند داده شود. |
Src | مسیر سورس کد که باید به صورت پویا پیوند داده و کامپایل شود. |
دستورالعمل Implement نشان می دهد که صفحه وب، صفحه اصلی یا صفحه کنترل کاربر باید رابط چارچوب .Net مشخص شده را پیاده سازی کند.
سینتکس اصلی برای دستورالعمل پیاده سازی به شرح زیر است:
<%@ Implements Interface="interface_name" %>
دستورالعمل Import یک namespace را به یک صفحه وب، صفحه کنترل کاربر برنامه وارد می کند.
اگر دایرکتیو Import در فایل global.asax مشخص شده باشد، در کل برنامه اعمال می شود.
اگر در صفحه ای از صفحه کنترل کاربر باشد، در آن صفحه یا کنترل اعمال می شود.
نحو اصلی برای دستور Import عبارت است از:
<%@ namespace="System.Drawing" %>
دستورالعمل MasterType یک نام کلاس را به ویژگی Master یک صفحه اختصاص می دهد .
نحو اصلی دستور MasterType عبارت است از:
<%@ MasterType attribute="value"[attribute="value" ...] %>
دستور OutputCache سیاست های کش خروجی یک صفحه وب یا کنترل کاربر را کنترل می کند.
نحو اصلی دستور OutputCache به شرح زیر است:
<%@ OutputCache Duration="15" VaryByParam="None" %>
دستورالعمل Page ویژگی های خاص فایل صفحه را برای کامپایلر تعریف می کند.
دستور اصلی Page Directive به صورت زیر است:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Trace="true" %>
Register برای ثبت کنترل های سرور سفارشی و کنترل های کاربر استفاده می شود.
نحو اصلی دستورالعمل Register به شرح زیر است:
<%@ Register Src="~/footer.ascx" TagName="footer" TagPrefix="Tfooter" %>
برای جلوگیری از طولانی تر شدن این مقاله ی آموزشی ادامه ی آشنایی و آموزش اجمالی asp.net در مقاله ی بعدی گفته خواهد شد.
مهرسا امینی
برنامه نویس ، انیماتور ، سئوکار
در زندگی رویاهات را دنبال کن