آموزش جامع ASP.NET MVC - جلسه1

آموزش جامع ASP.NET MVC – جلسه1

به درخواست کاربران عزیز، تصمیم گرفتیم دوره کامل و جامع آموزش ASP.NET MVC رو برای شما عزیز منتشر کنیم. در این مطلب با ما همراه باشید با آموزش جامع ASP.NET MVC – جلسه1 از وب سایت آموزش برنامه نویسی سورس باران. این دوره نسخه ASP.NET MVC 5.2 رو طی 21 جلسه بصورت موضوع محور به شما آموزش می دهد. که پس از از اتمام، یک دوره پروژه محور ساخت فروشگاه رو خواهیم داشت.

 

آموزش جامع ASP.NET MVC – جلسه1

  • معرفی اجمالی دوره
  • مقدمه ای بر دوره
  • پیش نیازها و برنامه های مورد استفاده
  • تعریف MVC
  • علت پیدایش نسل جدید Asp.Net
  • نحوه کار کرد پلتفرم MVC به صورت واقعی

 

پیش نیاز های دوره :

آموزش Html

آشنایی مقدماتی با SQl

آشنایی مقدماتی با سی شارپ

نرم افزارهای مورد نیاز :

ویژوال استودیو 2013

اس کیو ال سرور 2012

چرا MVC؟ چرا از Web Form استفاده نمیکنیم؟

یکی از دلایلش اینه که Web From دسترسی برنامه نویس به خروجی کد های تولید شده رو محدود می کنه و خودش کدها  html نامرتبی رو که در سئوی سایت تاثیر منفی میزاره رو تولید می کنه. در ضمن MVC یک تکنولوژی جدید است که دست مارو در برنامه نویسی خیلی باز میکنه. در برخی موارد هم کد نویسی ها رو آسون تر میکنه مثلا ایجاد فرم های ورود اطلاعات رو ساده تر یاحتی گاهی وقتی کلا فرم هارو خودش ایجاد میکنه و برای هرکدام از فیلد ها اعتبار سنجی قرار می دهد. در کل MVC هم، مزایا و معایبی داره که بعضی از مزایا رو برسی کردیم و از معایبش هم می توان به این مورد اشاره کرد Asp.net Web Form امتحان خودشو پس داده و چون خیلی ازش استفاده شده بسیاری از مشکلات آن رفع شده ولی MVC یک تکنولوژی جدید هست و راه طولانی در پیش داره. البته مایکروسافت سرمایه گذاری زیادی روش انجام داده و در آینده ای نزدیک می توان گفت خیلی کاملتر میشه. حالا ما بعدا مزایا و معایبش رو بیشتر برسی می کنیم.

Asp.Net MVC  چیست و چگونه کار می کند

MVCمخفف سه کلمه Model View Controller هست. در واقع MVC بر روی معماری های چند لایه ای جهت جداسازی قسمت های مختلف برنامه و به طور دقیق تر جدا کردن بخش ها منطقی برنامه اعم از دیتا ، permission ها ، چـــــک کردن صحت داده ها و …. از لایه Presentation layer یا در واقع همان لایه ای که مستقیما با کاربر نهایی (End user) در ارتباط است ،قرار میگیـــــــرد. پس بر اساس توضیحات فوق می توانیم هر یک از بخش های معماری MVC یعنی Model و View و controller را به شکل زیر تعریف کنیم.

  1. Model
    در واقع بار اصلی معماری MVC بر عهده این بخش است. این بخش می تواند با داده ها در ارتباط باشد .الزاماً منظور از داده حتما ارتباط با پایگاه های داده همچون MSSQL و Access و … نیست ، حتی منبع داده ها در بخش Model می تواند یک آرایه از اعداد و یا هر چیز دیگری باشد . همچنین Model وظیفه چک کردن داده ها جهت صحت درستی داده ها را هم بر عهده دارد (در این زمینه همکاری بیشتری با بخش Controller دارد) و همینطور وظایف دیگری که در مثال ها ی عملی که در آینده خواهم زد بیشتر آشنا خواهید شد.
  2. View
    این بخش که در واقع همان بخش Presentation Layer در معماری 3 لایه میباشد وظیفه بر قراری ارتباط با کاربر نهایی و گرفتن داده از کاربر و نمایش داده های اماده به کاربر از طریق برقراری ارتباط با دو بخش دیگر یعنی Model و controller است. در واقع نکته مهمی که در بخش View باید مد نظر داشت این است که این لایه مسئول کنترل صحت داده های وارد شده از طریق کاربر و همچنین مسئول صحت داده های نشان داده شده به کاربر نیست . در واقع این بخش با داده های خام کار میکند . یک مثال ساده خیلی از برنامه نویسان هنگامی که در فرم Login برنامه ،کاربر کلمه عبور خود را وارد میکند ، در همان فرم Login اقدام به چک کردن پسورد مبنی بر صحت آن و … می کنند . که این عمل در معماری MVC قابل قبول نیست . در واقع برای حل مسئله فوق در معماری MVC در فرم Login هنگامی که کاربر کلمه عبور را وارد کرد و دکمه Login یا ورود را زد ، کلمه عبور داده شده بدون هیچ گونه اعمالی اعم از Encrypt کردن و … به بخش های دیگر فرستاده میشود و فقط یک نتیجه ساده مبنی بر این که کاربر اجازه ورود دارد یا خیر را از بخش های دیگر دریافت میکند که بر اساس آن اجازه ورود کاربر به برنامه داده میشود .
  3. Controller
    این بخش همانطور که از اسم آن مشخص است یک بخش کنترل کننده می باشد ، و در واقع واسطی بین دو بخش Model و View میباشد. حال ببینیم روند اجرای برنامه در معماری MVC به چه نحوی خواهد بود . در معماری MVC روند کلی برنامه (جزئیات را در ادامه خواهید دید) به این شکل است که کاربر تقاضای خود را از طریق واسط های برنامه نویسی (نظیر Form ها و User Control ها و .. ) از برنامه (از بخش (Viewدرخواست می کند . بخش View در خواست ها را به بخش Controller فرستاده و این بخش با برقراری ارتباط با بخش Model در خواست های کاربر را پردازش کرده و پس از پایان پردازش زمانی که خروجی درخواست داده شده آماده گردید بخش Controller بخش View را آگاه می سازد تا خود را بر اسا س تغییرات جدید که اصطلاحاً در معماری MVC به آن حال Model می گویند ، به روز سازد . در واقع چیزی که باعث میشود تا بخش Controller به بخش View  اطلاع دهد که باید حالت جدید model را دریافت کند و خود را Update کند این است که بخش View باید قبلا خودش را در بخش Model اصطلاحا Register کرده باشد که البته عمل Register کردن توسط بخش Controller انجام میگیرد . نحوه register کردن بخش  View  به معماری آن محیط و همچنین زبانی که توسط آن برنامه را گسترش میدهید و همچنین قابلیت های آن زبان بستگی دارد.

مزایای ASP.NET MVC و معایب  Web Forms

  1. با توجه به ساختارMVC برنامه نویسان بیشتر مجبور خواهند شد تا کد خوانا تولید کنند. زیرا به طور طبیعی در NET MVC هر بخش باید کاری که بر عهده آن است انجام دهد و حداقل اطلاع از کاری که بخش های دیگر مسئول آن هستند داشته باشد. اما در Web Forms با ساختار Code-Behind در صفحات،  Controller و View ترکیب شده اند.
  2. Unit testing در صورت استفاده از NET MVC فوق العاده آسان تر است.
  3. درWeb Forms صفحات در بین ارسال ها وضعیت خود را حفظ می کردند. کارها کمی آسانتر می شد، اما اینکه ارتباط client و server حقیقتا چگونه اتفاق می افتد مخفی بود. با حذف view state و PostBack توسعه وب برای متخصصان وب آسان تر خواهد بود و کنترل بیشتری بر ارتباط client و server وجود دارد. زیرا مطابق با طبیعت وب طراحی شده است.
  4. با حذفview state و PostBack خروجی HTML بسیار خواناتر خواهد بود و کد HTML فارغ از کدهای اضافه مربوط به view state خواهد بود.
  5. تقریبا بر روی کدHTML تولید شده کنترل کامل خواهیم داشت که در NET Web Forms  ممکن نیست.
  6. استفاده ازJavaScript/Ajax/jQuery بسیار آسانتر خواهد بود. (توضیح بیشتر در پروژه)
  7. SEO و بهینه سازی آدرس ها برای سایت های جستجو آسانتر خواهد بود. در Web Forms  نیازمند این بودیم که آدرس های اینترنتی rewrite شوند، اما در NET MVC به این کار نیازی نخواهد بود.
  8. با کنترل کامل بر کدHTML تولید شده، امکان SEO بر اساس کد HTML نیز خواهیم داشت.
  9. با جدا شدنview از Controller طراحی صفحات وب استاندارد و زیبا دیگر پیچیده نیست و طراح وب می تواند بدون توجه به کار برنامه نویسی،  viewها را آنگونه که می خواهد ایجاد کند و برنامه نویس Viewها را به کار خواهد گرفت و دیگر کار آنها با هم تداخل نخواهد کرد
  10. NET MVC به علت حذف لایه بندی های اضافی در معماری، فوق العاده سریعتر اجرا می شود.
  11. NET Web Forms سعی می کند تا پیچیدگی هایHTML را از برنامه نویس دور کند. اما اگر طراح قصد داشته باشد ظاهر کنترل ها را تغییر دهد، گاهی به پیچیدگی های بیشتری برخورد خواهد کرد.

مزایای Web Forms و معایب  ASP.NET MVC

  1. با استفاده ازNET MVC همه ی لایه ها باید ساخته شوند تا بتوانیم اجرای نرم افزار را ببینیم. اما توسعه برنامه ها در ASP.NET Web Forms سریعتر است. در ASP.NET Web Forms  می توانیم کنترل ها را بر روی فرم بکشیم و بعد فرم قابل استفاده استASP.NET Web Forms را می توانیم Visual Basic در وب نام نهیم.
  2. NET Web Forms در نرم افزارهای زیادی به کار گرفته شده است و اشکالات زیادی از آن رفع شده است، برنامه نویسان زیادی با آن آشنا هستند و توسعه نرم افزار در آن برای برنامه نویسانی که از برنامه نویسی ویندوز می آیند راحت تر است، اما برای استفاده از  ASP.NET MVC برنامه نویسان باید آموزش ببینند. از آنجایی که ASP.NET MVC کمتر سعی می کند تا جزئیات http و html را از کاربر پنهان کند، استفاده از آن برای بعضی برنامهنویسان سخت تر است.
  3. در طی سالیان، کنترل های بسیاری برای آن ساخته شده است که در نرم افزارهای تحت وب مختلف می توان از آنها استفاده کرد، مانند کنترل هایTelerik اما این کنترل ها اگر در آنها از PostBack یا  view state استفاده شده باشد دیگر در NET MVC قابل استفاده نیستند.
  4. درNET MVC امکان استفاده از Eventها وجود ندارد.
  5. Grid Controlوupdate panel هنوز برای NET MVC ایجاد نشده اند.
  6. برای استفاده از آن باید بسته جداگانه ای را دانلود کرد. (البته در نگارش های جدید به صورت پیش فرض همراهNET خواهد بود(
  7. سایت مشهورstack overflow با استفاده از NET MVC توسعه داده شده است.
  8. فراموش نباید کرد که نظرMicrosoft این است که نه NET MVC بهتر از ASP.NET Web Forms است و نه جایگزین آن. بلکه هر دو اجزاء اساسی ASP.NET خواهند بود و تا مدت قابل توجهی هر دو پشتیبانی می شوند و توسعه داده خواهند شد.

 

IIS چیست؟

IIS مخفف Internet Information Services است که توسط مایکروسافت ارائه می شود. IIS برای ما یک وبسرور ایجاد می کند تا بتوانیم سایت های نوشته شده با Asp.net حالا Web Form یا MVC را روی آن اجرا کرده و از آن ها تست بگیریم. یا حتی می توان اگر امکانات دیگر مانند اینترنت پرسرعت و … فراهم بود توسط آن وبسایت را در سطح اینترنت منتشر کرد. IIS سرویس های دیگری مانند FTP و Mail و … رو نیز به ما می دهد.

خود Visual Studio که ما کار برنامه نویسی رو با آن انجام می دهیم می تواند از IIS خود ویندوز استفاده کند. ولی مایکروسافت به همراه خود Visual Studio وبسرور IIS Express رو قرار داده و ما می توانیم از آن استفاده کنیم. IIS Express هم نسخه ی رایگان IIS هست که امکانات کمتری نسبت به نسخه ی تجاری آن دارد. خب برای توضیحات IIS کافیه چون ما به صورت مستقیم با این قسمت کار نداریم و نصب و کانفیگ آن هم نیاز به بحث تخصصی داره من از ادامه ی بحث خودداری می کنم.

 

مقایسه ی جزئی PHP و Asp.net

به دلیل اینکه خیلی از کاربران جستوجو  می کنند که آیا PHP بهتر است یا Asp.net من این بخش رو ایجاد کردم و تا نقاط قوت و ضعف رو برسی کنیم و کاربران زبان مورد نیاز برای کار خودشان رو انتخاب کنند و شروع به یادگیری نمایید. در خیلی جاها کاربران هر کدام از زبان ها به دلیل این که نسبت به زبانی که با آن کار میکنند تعصب دارند دلایل غیر منطقی می آورند و خیلی نا عادلانه یک زبان را بالا می کشند و دیگری را خورد می کنند. حالا ما این مقایسه رو انجام می دهیم:

  1. از نظر سرعت:

وقتی ما سایت ها رو با ASP.NET می نویسم بعد از کامل شدن سایت باید آن را Compile کنیم. وقتی سایت را کامپایل می کنیم کدهای ما به dll ها تبدیل شده و نیاز به تفسیر دوباره ی کد ها نیست. ولی در سایت ها یphp کد ها تفسیر می شوند و خط به خط باید خوانده و اجرا شوند.

حالا من با توجه به اینکه در خیلی از سایت ها خونده ام که سرعت برنامه های کامپایل شده از برنامه های تفسیر شده بیشتر است باید بگم سرعت Asp.net بیشتر است.ولی در عمل خودم شاهد همچین چیزی نبوده ام.

  1. از نظر امنیت

در Asp.net به صورت خودکار اقدام به مقاوم سازی سایت در برابر برخی از حمله ها می شود ولی در PHP باید نکات امنیتی را به صورت کامل لحاظ کرد. ناگفته نمونه که به امنیت پیشفرض Asp.net هم نمیتوان خیلی زیاد اعتماد کرد و در هرحال باید نکات امنیتی رو رعایت کرد.

  1. دسترسی به فایل های سیستمی برای اجرا

یکی دیگر از وظایف هر برنامه ی تحت وب دسترسی به فایل های سیستمی است. یافتن فایل دلخواه و ارسال آن به وب سرور. در این مورد زبان های برنامه نویسی نقش پررنگی را بازی نمی کنند، این سیستم عامل است که بازیگر اصلی این نقش محسوب می شود.

طبق بررسی های انجام شده و مقایسه های یافت شده، سیستم عامل لینوکس با فایل سیستم ext4 برتری قابل توجهی نسبت به سیستم عامل ویندوز با فایل سیستم NTFS دارد.

  1. سادگی در کد نویسی و توسعه ی پروژه

در Asp.net به لطف Visual Studio می توان سایت را با سرعت بیشتر و در مدت زمان کمتری ایجاد کرد. به خصوص در MVC که حتی در بعضی مواقع خود Visual Studio اقدام به ایجاد خودکار فرم های Insert و Edit و …  می کند. البته برای PHP نیز ویرایشگر قدرتمند Dream Viewer وجود دارد که بسیار قدرتمند است ولی در بحث شی گرایی و کلاس ها بنظرم نمی تواند با Visual Studio مقابله کند

  1. ویرایشگر ها و ابزارها:

PHP و MySQL در ضمینه ی ادیتور یا ویرایشگر ها کاملا مستقل و آزاد هستند و توسعه دهنده های این پلتفرم با تعداد بسیار زیادی از ادیتور ها مواجهند.
جالب آن است که حتی با ادیتور هایی مثل Notepad نیز میتوان به توسعه ی PHP پرداخت.
نکته ی دیگر این است که در ترکیب با مواردی همچون JavaScript و Ajax و JQuery و… که متن باز هستند،  PHP که خود نیز متن باز است توانایی بالاتری ارائه می دهد.

ولی ASP.NET از نرم افزار قدرتمند Visual Studio استفاده می کند که به جرات می توان گفت از این نظر Asp.net بر PHP برتری کامل را دارد. البته یک عیب که ممکنه همه ی سیسم ها توانایی اجرای ویژوال استادیو را نداشته باشند.

  1. استقلال در بستر اجرا:

PHP یک زبان مستقل از بستر اجراییست بدین معنی که بر روی تمامی سیستم عامل ها اعم از لینوکس، ویندوز، مک و… به سادگی نصب و اجرا می شود که در نقطه ی مقابل ASP.NET طراحی شده تا فقط بر روی ویندوز اجرا و نصب شود. البته به تازگی مایکروسافت هم تحت عنوان پروژه ی Mono قدام به اضافه کردن قدرت اجرای Asp.net بر روی Linux کرده است.

 

 

5/5 - (1 امتیاز)

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.

نظرات

سرفصل کلی دوره

  • معرفی زبان تحت وب ASP
  • تفاوت زبان  Asp. Net form با  Asp.Net Mvc
  • معرفی خصوصیات صفحات mvc
  • معرفی صفحه Razor
  • تفاوت صفحات  Razor با Form
  • معرفی تگ های کاربردی Razor
  • معرفی دستورات حلقه ها در Razor
  • معرفی دستورات شرطی در Razor
  • معرفی تکنولوژی Linq
  • صفحه بندی ساده صفحات با linq  در razor
  • معرفی ساده دستورات Sql
  • نحوه کار  linq با sql
  • معرفی دستورات  sql با linq   در صفحات razor
  • معرفی توابع پرکاربرد linq  در razor
  • معرفی فریم ورک مورد استفاده در mvc
  • ساخت مدل از روی پایگاه داده برای mvc
  • بررسی تفاوت database first  با code first
  • آشنایی کامل با چگونگی ارتباط پایگاه با mvc
  • نحوه ساخت پرژه mvc
  • معرفی پلتفرم های مختلف برای ایجاد پروژه
  • معرفی لایوت اصلی در mvc
  • معرفی پارچیال ویو
  • معرفی ریپوزیتوری
  • ساخت یک منو ساده داینامیک
  • ساخت منو حرفه ای
  • ساخت اسلاید شو داینامیک
  • ارسال ایمیل در mvc
  • ساخت صفحه ارتباط با ما در mv
  • نحوه تعریف قالب آماده در mvc
  • جمع بندی نهایی مطالب
برچسب ها:
آموزش جامع برنامه نویسی PHP و MySQL به همراه صفر تا صد ساخت فروشگاه اینترنتی
  • جم فايل : 95 مگابایت
  • مدت زمان دوره : 00:53:28
  • منبع : سورس باران
  • رمز فايل : www.sourcebaran.com
  • انتشار: ۱۵ آذر ۱۴۰۰
دانلود با لینک مستقیم

دسته بندی موضوعات

آخرین محصولات فروشگاه

مشاهده همه

نظرات

بازخوردهای خود را برای ما ارسال کنید

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.