در این بخش ما قصد داریم به آموزش ASP.net بپردازیم یعنی به معرفی و آموزش زبان برنامه نویسی سرور صفحات وب پرداخته می شود تا شما بتوانید با اصول ابتدایی ASP.net آشنا شوید و طریقه طراحی سایت و برنامه نویسی آن را بیاموزید.
همچنین در این مجموعه مقالات به آموزش کلاس ها پر کاربرد خواهیم پرداخت و نحوی کد نویسی برای طراحی وب سایت های داینامیک و پویا را آموزش خواهیم داد.
با ظهور ASP.net به طور باور نکردنی برنامه نویسی تحت وب را آسان شده است که کنترل های سرور ASP.net در آن نقشه بسزایی دارند.
در ASP.net شما میتوانید با کمترین میزان کد نویسی پروژه های بزرگ و قوی را ایجاد کرده و آن را به پایان برسانید. با بهره گیری ازکنترل ها قادر خواهید بود به راحتی به Database وصل شوید، به راحتی میتوانید اعتبار ورودی کاربران را بسنجید، فایل ها را به راحتی بروی سرور آپلود کنید. و بهترین امکانی که این ابزار در دسترس ما قرار می دهد این است که دیگر لزومی ندارد نگران اجرا شدن برنامه بر روی انواع مرورگرها باشید چرا که بر روی همه ی مرورگر ها قابل اجرا میباشد.
در حالت کلی ASP.net سه نوع روش توسعه را پوشش میدهد:
- مدل مبتنی بر صفحات (web page)
- مدل مبتنی بر رویداد (web form)
- مدل مبتنی بر کنترلر (MVC)
به کسانی که میخواهند تازه برنامه نویسی ASP.net را شروع کنند بهتر است از ASP.net web page آغاز کنند زیرا ساده ترین مدل ساختن و طراحی سایت است. در web page شما چگونگی ترکیب CSS، javaScript و HTML با ASP.net می آموزید و توسعه صفحات خود را با استفاده از پایگاه داده، گرافیک و شبکه های اجتماعی و ... را نیز فرا میگیرید.
ASP.NET چیست؟
یکی از زبان های برنامه نویسی حرفه ای برای طراحی سایت ,ASP.NET است. ASP.NET نسل جدید ASP است. که با ASP کلاسیک سازگار نیست، اما ممکن است ASP.NET شامل ASP کلاسیک باشد. صفحات ASP.NET تالیف شده اند، که موجب سریع تر شدن آن از ASP کلاسیک شده است. ASP.NET دارای پشتیبانی بهتر زبان، یک مجموعه بزرگ از کنترل های کاربر، قطعات مبتنی بر XML، و تأیید یکپارچه هویت کاربر است.
صفحات ASP.NET دارای پسوند aspx. است، و به طور معمول در VB (ویژوال بیسیک) یا #C (سی شارپ) نوشته می شود. کنترل های کاربر در ASP.NET می توان به زبان های مختلف، از جمله ++ C و جاوا نوشته شود. هنگامی که یک مرورگر درخواست یک فایل ASP.NET را دارد، موتور ASP.NET فایل را می خواند، اسکریپت را در فایل اجرا و تالیف می کند، و نتیجه را به شکل زبان HTML ساده به مرورگر برمی گرداند.
ASP.NET Razor
Razor یک نحو نشانه گذاری جدید و ساده برای تعبیه کد سرور در صفحات وب ASP.NET است، که بسیار شبیه به ASP کلاسیک است. البته یادگیری و استفاده از آن نسبت به مدل کلاسیک ساده تر است.
زبان های برنامه نویسی ASP.NET
آموزش ASP.NET، زبان های برنامه نویسی زیر را در بردارد:
• ویژوال بیسیک (VB.NET)
• #C (سی شارپ)
فناوری سرور ASP.NET
آموزش ASP.NET در طراحی سایت فن آوری های سرور زیر را پوشش می دهد:
• صفحات وب (با ترکیب Razor)
• MVC (کنترل کننده مدل نمایش)
• فرم های وب (ASP.NET سنتی)
ابزارهای توسعه ASP.NET
ASP.NET از ابزار توسعه ی زیر پشتیبانی می کند:
• وب ماتریکس (WebMatrix)
• Visual Web Developer
• ویژوال استدیو (Visual Studio)
در طراحی سایت با ASP.NET، از وب ماتریکس برای صفحات وب، و Visual Web Developer برای MVC و فرم های وب استفاده می شود.
پسوند فایل های ASP.NET
در طراحی سایت با استفاده از ASP.NET، فایل های ASP.NET بسته به ترکیبی که دارند، دارای پسوند های مختلفی هستند:
• فایل های ASP کلاسیک دارای پسوند فایل asp. هستند.
• فایل های ASP.NET دارای پسوند فایل aspx. هستند.
• فایل های ASP.NET با ترکیب #Razor C دارای پسوند فایل cshtml. هستند.
• فایل های ASP.NET با ترکیب Razor VB دارای پسوند فایلvbhtml. هستند.
طراحی سایت با Asp.net
Asp.net یک زبان یا بهتر بگوییم یک تکنولوژی برای طراحی سایت داینامیک میباشد که توسط شرکت بزرگ و قدرتمند مایکروسافت طراحی و ساخته شده است چنانچه مایل به آموختن زبان asp.net می باشید باید از قبل با زبانهای vb و c# نیز آشنایی داشته باشید.
با توجه به اینکه زبان های قدیمی کامپیوتری از امکانات کمی برخوردار هستند شاهد این هستیم که روز به روز بر تعداد زبان های برنامه نویسی اضافه میشود. asp.net را میتوان نسل پیشرفته ای از asp دانست که مایکروسافت به خوبی آنرا برای برنامه نویسان آماده و مهیا کرده است. asp.net را میتوان کامل ترین زبان برنامه نویسی دانست که به وسیله آن میتوان از یک زبان ماشین تا بالاترین سطح برنامه نویسی که همان ویژوال است برای طراحی سایت استفاده نمود، به طبع استفاده از این زبان برنامه نویسی در برابر سایر زبان های برنامه نویسی مزایای ویژه ای دارد.
برتری زبان برنامه نویسی asp.net نسبت به سایر زبان های برنامه نویسی
یکی از بزرگترین برتری های آن امکانات اینترنت آن است.
یکی دیگر از مزایای مهم استفاده از asp.net میتوان به استفاده از آن برای طراحی سایت شرکتی از کوچک تا سایت های تجاری بزرگ اشاره کرد.
Asp.net به عنوان یک زبان برنامه نویسی runtime شناخته میشود و ساختار آن نیز بر اساس framework می باشد که میتواند تمام لایه های برنامه نویسی را در بالای سیستم عامل در برگیرد در این زبان برنامه نویسی تمامی تکنولوژی های موجود در مایکروسافت و سایر شرکتها قرار داده شده است.
در .net تمامی اعمال به کارگرفتن حافظه و طبقه بندی فایل ها بر عهده ی framework.net نهاده شده است تا بتوان برنامه ای نوشت که برای اجرا به سیستم عامل متکی نباشد و به صورت مستقل بتواند به فعالیت خود ادامه دهد.
قلب framework، clr می باشد که مسئول اجرای فایل ها ، فراخوانی داده ها به حافظه و کمپایل کردن آنها به زبان msil می باشد. پس از آن کد های IL به هنگام اجرا شدن توسط برنامه ی کمپایلر just in time به زبان ماشین تغییر پیدا میکنند. تمامی اینها برای این است که به شما بگوییم .net در دو مرحله کامپایل را انجام میدهد. اولین مرحله زمانی اتفاق می افتد که برنامه به Il کمپایل شود که این کد وابستگی به سیستم عامل ندارد و مرحله ی بعد از آن زمانی اجرا می باشد که کمپایلر just in time کد IL را برای اجرا به زبان ماشین ترجمه میکند.
Asp.net توسعه یافته دارای ویژگی های مهمی است:
بهبود عملکرد
Asp.net یکی از تکنولوژی های قدرتمند server-side برای طراحی سایت به صورت داینامیک است. asp.net می تواند در مقید سازی، کمپایل just in time ، بهینه سازی و سرویسcache را ارائه دهد و این دقیقا بر خلاف پردازشگر های مفسر می باشد.
پشتیبانی از ابزار جهانی
Asp.net از جعبه ابزاری کامل و محیط طراحی توسعه یافته ای برخوردار است، با توجه به تغییرات خوبی که در برنامه داده شده است برنامه اینترنتی با قابلیت گرافیکی را پیدا کرده است
قدرت و انعطاف پذیری
با توجه به اینکه این زبان برنامه نویسی از CLR استفاده مینماید در بحث قدرت و انعطاف پذیری توسعه برنامه های کاربردی حرف زیادی برای گفتن خواهد داشت. کتابخانه ی .net نسبت به سایر زبانهای برنامه نویسی از کاملتر می باشد.
سادگی
asp.net باعث ساده شدن کار ها میشود و شما با استفاده از آن میتوانید به صورت داینامیک قسمت های مختلفی را به طراحی سایت خود اضافه و یا از آن حذف کنید.
مدیریت
ASP.Net بر پایه ی متن پیکربندی سلسله مراتبی که در محیط سرور و برنامه های کاربردی وب ظاهرمی شود، کار می کند. این بدان دلیل است که اطلاعات پیکربندی در قالب متن ذخیره میشود و تنظیمات اعمال شده ی جدید بدون هیچ ابزار مدیریتی ظاهر میشوند. تمام این سادگی برای آن است که چنین مدیرتی سبب گسترش برنامه ی کاربردی در asp.net میشود. برای توسعه آن نیز تنها کافی است فایل های لازمه را روی سرور کپی کرد. برای توسعه نیز حتی به راه اندازی مجدد سرور نیازی نیس و با جایگزینی کد های کمپایل شده یا توسعه یافته گسترش می یابد.
قدرت و توانایی
Asp.net در بالاترین سطح توانایی ساخته شده است و میتواند در محیط های چند پردازنده ای به خوبی کار کرده ، آنها را مدیریت نموده وسرعت عمل بیشتری داشته باشد.
مشتری مداری و قابلیت تمدید
asp.net به گونه ای ساخته شده است که به کاربران عادی و شرکت های توسعه دهنده این اجازه داده شده است که بتوانند افزونه های دلخواه خود را نوشته و به برنامه اضافه کنند.
امنیت
asp.net از امنیت بالایی برخوردار است و می توان با استفاده از آن و پیکربندی برنامه های کاربردی در سطوح مختلف امنیت قابل قبولی ایجاد نمود.
تفاوت بین PHP و ASP.NET در طراحی سایت
PHP و ASP.NET هر دو اضلاع تکنولوژی سرور برای توسعه برنامه های کاربردی وب و طراحی سایت می باشند. در جدول زیر تفاوت بین این دو فناوری سرور یعنی PHP و ASP.NET را برای شما کاربران عزیز شرح داده ایم.
ردیف
|
PHP
|
ASP.NET
|
1
|
PHP یک تکنولوژی با منبع آزاد است که می تواند به صورت رایگان استفاده می شود.
|
ASP.NET یک تکنولوژی مایکروسافتی است که دارای قیمت بالایی است
|
2
|
PHP یک زبان برنامه نویسی است که برای ایجاد برنامه های کاربردی وب و طراحی سایت استفاده می شود.
|
ASP.NET یک پلت فرم است که در آن می توان با استفاده از زبان های برنامه نویسی مانند #C وVB.NET برنامه های کاربردی ASP.NET ایجاد کرد.
|
3
|
PHP در هر نوع پلت فرم و سروری به خوبی کار می کند
|
ASP.NET تنها با سرور اطلاعات اینترنت (IIS) قابل استفاده است.
|
4
|
PHP توسط راسموس لردوف در سال 1995 راه اندازی شد.
|
ASP.NET توسط مایکروسافت در سال 2002 راه اندازی شد.
|
5
|
PHP به خوبی با پایگاه داده MySQL کار می کند. پایگاه داده MySQL نیز به صورت رایگان در دسترس است.
|
ASP.NET عمدتا با پایگاه داده MS-SQL، که آن هم متعلق به شرکت مایکروسافت است به خوبی کار می کند و MS-SQL به صورت رایگان در دسترس نیست.
|
6
|
PHP می تواند در سیستم عامل لینوکس که به صورت رایگان در دسترس است، اجرا شود.
|
ASP.NET نیاز به پلت فرم ویندوز دارد که رایگان نیست.
|
7
|
اجرای PHP سریعتر است، زیرا PHP از فضای حافظه داخلی استفاده می کند
|
اجرای کدهای ASP.NET نسبتا کندتر است زیرا در حین اجرا از فضای سرور استفاده می کند.
|
8
|
برنامه نویسی و طراحی سایت با استفاده از PHP نسبت به سایر زبان های برنامه نویسی آسان تر است.
|
برنامه نویسی با ASP.NET پیچیده است و نیاز به یادگیری و تلاش زیادی دارد.
|
9
|
PHP با کار بر روی سیستم عامل های مختلف مانند ویندوز، یونیکس و لینوکس سازگار است.
|
ASP.NET با پلت فرم ویندوز کار می کند. اگر بخواهیم از ASP.NET در لینوکس استفاده کنیم، باید ASP-Apache بر روی سرور نصب شده باشد.
|
10
|
بسیاری از ابزارهای مفید که می توانند با PHP استفاده شوند رایگان هستند.
|
ابزارهایی که می توانند با ASP.NET استفاده شوند رایگان نیستند
|
11
|
ترکیب PHP شبیه به ترکیب زبان های برنامه نویسی C و++C است.
|
ترکیب و مفاهیم ASP.NET شبیه به ترکیب Visual Basic می باشد.
|
MVC چیست؟
Model Views Controllers اسم کامل مدل MVC است. تکنولوژی جدیدی در ASP.net برای بهبود امر طراحی سایت می باشد. که هر کدام از این ها مستقل هستند و در انتها کار به هم وصل می شوند. MVC بر روی معماری چند لایه ای جهت جداسازی قسمته ها مختلف برنامه قرار میگیرد. این مفهوم فقط برای برنامه نویسان ASP.net تازگی دارد چرا که قبل از آن زبان های جاوا، PHP و بسیاری دیگر از پلت فرم ها این ویژگی را دارا بوده اند.
مدل (Model): در این بخش اطلاعاتی قرار دارد که کاربر به طور مستقیم با آن ها در ارتباط است که به راحتی در View Models می تواند رخ دهد. که اطلاعات را در بین view و controller جا به جا می کند و یا در Domain model که حاوی اطلاعات مهم از دامنه می باشد.
برای مثال یک شی Product ممکن است اطلاعات را از بانک اطلاعتی بازیابی کرده باشد و بر روی آن ها فعالیت هایی انجام داده باشد و در آخر نتیجه رادر بانک اطلاعاتی در جدول Products ذخیره می کند.
نمایشگر (Views): برای رندر کردن قسمتی از مدل که با کاربر در ارتباط مستقیم است. در واقع وظیفه نمایش به کاربر را دارد و به کاربر نتایج عملیات، بازیابی و نمایش داده را نشان میدهد.
برای مثال زمانی که کاربر در بخش ورود به سیستم رمز عبور را وارد می کند بیشتر برنامه نویسان در همان فرم تصحیح بودن آن را بررسی می کنند که در برنامه نویسی با MVC عمل درستی نیست. در MVC رمز عبور بدون هیچ گونه بررسی و چک کردنی به قسمت های دیگر انتقال میابد و تنها نتیجه ساده از قسمت های دیگر دریافت میکند که به آن وسیله اجازه ورود به برنامه داده میشود.
کنترلگر(controller): برای پردازش کردن درخواست های ارسالی، بهبود وضعیت کارایی در مدل، انتخاب نمایشگر مناسب برای نمایش دادن به کاربر. به بیان دیگر کنترل کننده جریان منطقی برنامه کاربردی است که با تعمل بین model و view می تواند برنامه را اجرا و جریان های اطلاعاتی را تحت کنترل قرار دهد.
برای مثال کنترلگر عبارت های پر و جو بانک اطلاعاتی را مدیریت کرده و آن ها را به مدل میفرستد. مدل وظیفه دارد پرس وجو ها را به اجرا دراورد.
چه زمانی از MVC استفاده کنیم؟
MVC در طراحی سایت جایگزینی برای فرم های ASP.net نمی باشد و شما در هنگام انتخاب ASP.net و ASP.NET MVC برای ساخت برنامه ی اینترنتی باید دقت فراوان کنید. اگر شما یک برنامه اینترنتی بر اساس فرم های وبی دارید میتوانید به شیوه قدیمی اقدام نمایید.
سایت stackoverflow.com با استفاده از امکان MVC ساخته شده است.
مدل های MVC
یکی از زبان های برنامه نویسی پرکاربرد در طراحی سایت ,زبان برنامه نویسی ASP.NET است. مدل های MVC دربردارنده منطق تمام برنامه ها (منطق کسب و کار، منطق اعتبارسنجی، و منطق دسترسی به داده ها)، به جز برهان نمایش محض و منطق کنترل است. در MVC، هر دو مدل ها حفظ می شوند و داده های برنامه دستکاری می شود.
فولدر مدل ها (The Models Folder)
فولدر مدل ها شامل کلاس هایی است که بیانگر مدل برنامه ها است. نرم افزار Visual Web Developer به طور خودکار یک فایل AccountModels.cs ایجاد می کنند که شامل مدل هایی برای امنیت نرم افزار است.
AccountModels شامل یک ورود به مدل (LogOnModel)، یک تغییر رمز عبور مدل (ChangePasswordModel) و یک ثبت نام کردن در مدل (RegisterModel) است.
افزودن یک مدل پایگاه داده
مدل پایگاه داده با انجام سه گام زیر ایجاد می شود:
• در قسمت Solution Explorer، بر روی فولدر مدل ها کلیک راست کنید و گزینه های Add و Class را انتخاب کنید.
• گزینه Class را MovieDB.cs نامگذاری کنید و بر روی add کلیک کنید.
• ویرایش Class:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace MvcDemo.Models
{
public class MovieDB
{
public int ID { get; set; }
public string Title { get; set; }
public string Director { get; set; }
public DateTime Date { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<MovieDB> Movies { get; set; }
}
}
افزودن یک کنترلر پایگاه داده
کنترل کننده پایگاه داده با انجام مراحل زیر ایجاد می شود:
• پروژه خود را مجددا بسازید: گزینه اشکال زدایی (Debug) را انتخاب کنید سپس MvcDemo را از منو بسازید.
• در بخش Solution Explorer بر روی گزینه فولدر کنترلر (Controllers folder) راست کلیک کنید و گزینه های Add و Controller را انتخاب کنید.
• نام کنترلر را با عنوان MoviesController تنظیم کنید.
• انتخاب قالب: برای ایجاد کنترلر با قابلیت خواندن/ نوشتن و مشاهده از گزینه Entity Framework استفاده کنید.
• انتخاب کلاس مدل: MovieDB (MvcDemo.Models)
• کلاس متن داده را ) MovieDBContext (MvcDemo.Models تنظیم کنید
• انتخاب گزینه Razor (CSHTML) در قسمت مشاهدات (views)
• برروی گزینه Add کلیک کنید.
افزودن نمایشگرهای پایگاه داده (Database Views)
فایل های زیر به طور خودکار در فولدر Movies ساخته می شود:
• Create.cshtml
• Delete.cshtml
• Details.cshtml
• Edit.cshtml
• Index.cshtml
افزودن یک سلسله اتصال (Connection String)
عنصر زیر را به <connectionStrings> در فایل Web.config اضافه کنید:
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|\Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
با انجام دقیق این مراحل شما اولین مدل داده MVC را به اپلیکیشن خود اضافه کرده اید. در طراحی سایت توجه داشته باشید که MVC به تنهایی نمی تواند جایگزینی برای زبان برنامه نویسی ASP.NET باشد.