دوره آموزشی ASP.Net

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

دوره آموزشی ASP.Net

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

آموزش ASP.NET Core-آموزش ساخت پروژه در ASP.NET Core

تصمیم گرفتم آموزش ASP.NET COre امروز رو با ساخت پروژه در ASP.NET Core MVC شروع کنیم.

امروز میخوایم راجع به ساخت پروژه در ASP.NET Core MVC و اضافه کردن کنترلر به پروژه با همدیگه صحبت کنیم.

پیش از هر چیزی باید ویژوال استودیو رو بر روی سیستم خودتون نصب کنید و برای نصب ویژوال با ورژن های بالاتر از 2017 باید دو گزینه زیر رو انتخاب کنید :

  • ASP.NET and web development (under Web & Cloud)
  • .NET Core cross-platform development (under Other Toolsets)

پس از آن باید یک برنامه تحت وب ایجاد کنید که برای اینکار باید مسیر زیر را طی کنید :

برای ساخت پروژه در ASP.NET Core MVC، بعد از باز شدن کامل پنجره New Project در پنل سمت چپ گزینه Net Core را انتخاب می کنیم، در پنل وسط تب (ASP.NET Core Web Application (.NET Core انتخاب می کنیم و نام پروژه را MvcMovie می گذاریم. بعد از باز شدن پنچره New ASP.NET Core Web Application (.NET Core) - MvcMovie گزینه Web Application را انتخاب کنید بگونه ای که حالت پیش فرض No Authentication باشد.

ویژوال استودیو از یک قالب پیش فرض برای پروژه های MVC استفاده می کند. شما با وارد کردن یک نام پروژه و انتخاب چند گزینه یک برنامه کاری واقعی دارید. با استفاده از کلید F5 یا Ctrl+F5 می توانید پروژه ساخته شده را اجرا کنید.

F5 = Debug Mode     &     Ctrl+F5 = Non-Debug Mode

با استفاده از کلید Ctrl+F5 می توانید بدون دیباگ کردن، پروژه را اجرا کرده و با تغییر در کد ها، بدون نیاز به اجرا میتوانید با رفرش کردن مروگر تغییرات را ببینید.

قالب پیش فرض به شما لینک های Home,Contact,About را می دهد. (Model-View-Controller (MVC الگوی معماری این برنامه را به سه قسمت اصلی تقسیم می کند :

  1. Model
  2. View
  3. Controller

فریم ورک MVC در آموزش ASP.NET Core MVC

فریمورک MVC که مخفف Model-View-Controllerاست، یک قالب معماری است که برنامه را از نظر منطقی به سه کامپوننت اصلی مدل (Model)، ویو (View) و کنترلر (Controler) تقسیم می کند. هر یک از این کامپوننت ها برای مدیریت جنبه خاصی از توسعه یک برنامه ساخته می شود. MVC منطق تجاری و لایه نمایش را از یکدیگر جدا می کند. این معماری برای رابط های کاربری گرافیکی قابل اجرا در دسکتاپ استفاده می شد، اما امروزه هم برای طراحی برنامه های تحت وب و هم برنامه های موبایل استفاده می شود.

تاریخچه MVC

معماری MVC برای اولین بار در سال 1979 مورد بحث قرار گرفت. پس از آن معماری MVC در سال 1987 در زبان برنامه نویسی Smalltalkظهور کرد و در سال 1988 بعنوان یک مفهوم عمومی پذیرفته شد. در مدت اخیر نیز قالب MVC در برنامه های مدرن تحت وب بصورت گسترده مورد استفاده قرار گرفته است.

ویژگی های MVC

  • فریمورکی با قابلیت تست، نصب و توسعه پذیری بالاست.
  • امکان کنترل کامل HTMLرا علاوه بر URLها برای شما فراهم می کند.
  • قدرت نفوذ در مشخصه های موجود ارائه شده توسط ASP.NET ، JSP ، Django و ... را داراست.
  • تفکیک منطق برنامه بصورت آشکار : مدل (Model) ، ویو (View) و کنترلر (Controler). تفکیک وظایف برنامه مانند : منطق تجاری، منطق UIو منطق ورودی.
  • آدرس دهی به URLبرای URLهای سازگار با سئو.
  • قابلیت پشتیبانی برای (Test Driven Development (TDD

معماری MVCدر ASP.NET

سه کامپوننت مهم MVC به شرح زیر هستند :

مدل (Model) : مدل تمامی داده ها و منطق مربوط به آنها را شامل می شود.

ویو (View) : اطلاعات را به کاربر نمایش می دهد یا تعامل کاربر با سیستم را مدیریت می کند.

کنترلر (Controller) : رابط کاربری میان کامپوننت های View و Model است.

ویو (View) :

ویو بخشی از یک برنامه است که مسئولیت نمایش اطلاعات را بعهده دارد. ویوها بوسیله داده های جمع آوری شده از داده های مدل ایجاد می شوند. یک ویو برای دریافت اطلاعات به مدل درخواست می دهد. ویو همینطور داده های مربوط به چت ها، دیاگرام ها و جدول را نیز نشان می دهد. برای مثال، هر ویو تمامی کامپوننت های UI همچون Text Box، Drop Down و ... را شامل می شود.

کنترلر (Controller) :

کنترلر بخشی از یک برنامه است که تعامل کاربر با برنامه را مدیریت می کند. کنترلر، ورودی های کیبورد و موس را تفسیر کرده، و به مدل و ویو اطلاع رسانی می کند تا تغییرات را بصورت مناسب اعمال کند. کنترلر دستورات را به مدل می فرستد تا وضعیت خود را بروزرسانی کند (برای مثال ذخیره یک مستند خاص). کنترلر همینطور دستورات را به ویو مربوطه ارسال می کند تا نمایش ویو را تغییر دهد (برای مثال جابجایی یک مستند خاص).

مدل (Model) :

داده ها و منطق مربوط به آنها در کامپوننت مدل ذخیره می شود. این کامپوننت، داده هایی که در میان کامپوننت های کنترلر یا هر منطق تجاری دیگری انتقال داده می شوند را نمایش می دهد. برای مثال، یک آبجکت کنترلر اطلاعات کاربر را از پایگاه داده بازیابی و آن را دستکاری کرده و دوباره به پایگاه داده می فرستد یا آن را برای انتقال داده های یکسان بکار می گیرد.

کامپوننت مدل به درخواست های فرستاده شده از ویو (View) و همینطور دستورات کنترلر (Controller) پاسخ می دهد تا خود را بروزرسانی کند. این بخش همینطور پایین ترین سطح از قالب است که مسئول حفظ و نگهداری داده هاست.

مثالی جالب از MVC :

حال بیایید به مصداقی از قالب MVC که در زندگی روزمره با آن مواجه هستیم، بپردازیم :

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

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

کامپوننت های MVC در این مثال به شرح زیر هستند :

View = You

Controller = Waiter

Model = Cook

Data = Refrigerator

فریمورک های معمول MVC در وب

برخی فریمورک های معمول در MVC عبارتند از :

  • Ruby on Rails
  • Django
  • CakePHP
  • Yii
  • CherryPy
  • Spring MVC
  • Catalyst
  • Rails
  • Zend Framework
  • CodeIgniter
  • Laravel
  • Fuel PHP
  • Symphony

مزایا فریم ورک MVCدر Asp.NET Core

  • حفظ و نگهداری کدها و همینطور توسع و رشد آنها آسان است.
  • کامپوننت مدل در MVCرا می توان بصورت مجزا از کاربر تست کرد.
  • پشتیبانی آن برای نمونه کلاینت های جدید آسانتر است.
  • توسعه کامپوننت های مختلف می تواند بصورت موازی انجام شود.
  • فریمورک MVC با تقسیم برنامه به سه واحد – Model, View, Controller – به شما کمک می کند که پیچیدگی برنامه را کاهش دهید.
  • این فریمورک تنها از یک قالب Front Controller که درخواست های یک برنامه تحت وب را در یک کنترلر مجزا پردازش می کند استفاده می کند.
  • بهترین پشتیبانی را برای Test-Driven Development ارائه می دهد.
  • برای برنامه های تحت وبی که توسط تیم های بزرگی از طراحان و توسعه دهندگان وب پشتیبانی می شوند، عملکرد خوبی را از خود نشان می دهند.
  • تفکیک مسئولیت ها در این فریمورک بخوبی انجام می شود.
  • با فرایند بهینه سازی موتور جستجوگر (سئو) سازگار است.
  • تمامی کلاس ها و آبجکت ها مستقل از یکدیگر هستند و می توانند بصورت مجزا تست شوند.
  • فریمورک MVC دسته بندی منطقی فعالیت های مرتبط بهم در یک کنترلر را امکانپذیر می سازد.

در یک برنامه MVC نمایش(VIew) ها فقط اطلاعات را نمایش می دهند اما کنترلر(controller ) در تعامل با کاربر می باشد و به ورودی های کاربر واکنش مناسب می دهد. در پنجره Solution Explorer بر روی فولدر Controller راست کلیک کرده و AddNew Item را انتخاب می کنیم.

در پنل سمت چپ گزینه Web را انتخاب کرده و در پنل وسط گزینه MVC Controller Class را انتخاب می کنیم و نامش را HelloWorldController می گذاریم.

می توانید کدهای زیر را کپی کنید :

using Microsoft.AspNetCore.Mvc;
using System.Text.Encodings.Web;
namespace MvcMovie.Controllers
{
public class HelloWorldController : Controller
{
// 
// GET: /HelloWorld/
public string Index()
{
return "This is my default action...";
}
// 
// GET: /HelloWorld/Welcome/ 
public string Welcome()
{
return "This is the Welcome action method...";
}
}
}
 

هر متد (public) در کنترلر (controller ) را می توان به عنوان (HTTP endpoint)خواند. در مثال بالا هر دو متد یک رشته(string) بر می گردانند.HTTP endpoint یک URL قابل جستجو در برنامه وب است مانند: http://localhost:1234/HelloWorld و از پروتکل HTTP استفاده می کند.هر دو متد ما با استفاده از HTTP GET فراخوانی شده اند. برنامه را با استفاده از Ctrl+F5 (non-debug mode) اجرا می کنیم و در آخر مسیر URL کلمه HelloWorld را اضافه می کنیم. متد Index یک رشته(string) بر می گرداند.

معماری MVC کنترلر را بسته به نوع ورودی URL فراخوانی میکند(به همراه اکشن مورد نظر ).

حالت پیش فرض URL routing logic که توسط MVC استفاده می شود یک فرمت به شکل زیر است :


/[Controller]/[ActionName]/[Parameters]


فرمت Routing شما درون فایل Startup.cs قرار دارد و پیش فرض به شکل زیر است.


app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});

اولین بخش URL، کلاس کنترل را برای اجرا تعیین می کند. بنابراین localhost:xxxx/HelloWorld نقشه رسیدن به کلاس HelloWorldController می باشد. دومین بخش URL، تعیین اکشن(action ) در کلاس کنترل می باشد. بنابراین localhost:xxxx/HelloWorld/Index باعث می شود اکشن Index از کلاس HelloWorldController اجرا شود. حال درمرورگر آدرسhttp://localhost:xxxx/HelloWorld/Welcome وارد می کنیم.متد Welcome اجرا می شود و رشته "This is the Welcome action method..." بر می گرداند. برای این URL کنترلر(HelloWorld) و اکشن (Welcome) می باشد.

با تغییر کد می توانیم به صورت پارامتر از URL به کنترلر دیتا بفرستیم. برای مثال /HelloWorld/Welcome?name=Rick&numtimes=4. اکشن Welcome را به صورت زیر تغییر می دهیم.


// GET: /HelloWorld/Welcome/ 
// Requires using System.Text.Encodings.Web;
public string Welcome(string name, int numTimes = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, NumTimes is: {numTimes}");
}

توجه داشته باشید که برای نشان دادن این ویژگی سی شارپ به طور اختیاری به پارامتر numTimes مقدار پیش فرض دادیم. از کد HtmlEncoder.Default.Encode استفاده می کنیم برای محافظت برنامه از ورودی های مخرب (یعنی جاوااسکریپت) برنامه را اجرا کرده و به آدرس زیر می رویم:

http://localhost:xxxx/HelloWorld/Welcome?name=Rick&numtimes=4


به جای XXXX پورت سیستم خود را وارد کنید. می توانید از پارامتر های دیگه ای هم به صورت دلخواه استفاده کنید. بخش MVC Model Binding به صورت خودکار پارامتر های نام گذاری شده از query string در URL به پارامتر های اکشن خود انتقال می دهد.

در عکس بالا بخش [Parameters] URL هنوز استفاده نشده.( name) و (numTimes) پارامترها منقل می شوند به query string. علامت سوال (؟) در آدرس بالا یک جدا کننده می باشد و query string آن را دنبال می کند. & کاراکتر های query string را جدا می کند. اکشن Welcome را به صورت زیر تغییر می دهیم.


public string Welcome(string name, int ID = 1)
{
return HtmlEncoder.Default.Encode($"Hello {name}, ID: {ID}");
}

برنامه را اجرا کرده و به آدرس زیر می رویم:

http://localhost:xxx/HelloWorld/Welcome/3?name=Rick

این بار از بخش سوم [Parameters] URL تحت عنوان ID استفاده می کنیم. اکشن (Welcome) شامل یک پارامتر ID است که الگو URL را در MapRoute دنبال می کند. اگر به دنبال ID علامت سوال (؟) بزاریم به این معنی می شود که پارماتر ID اختیاری است.


app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});

در این مثال کنترلر در واقع بخشی از "VC" از "MVC" انجام داده است یعنی نمایش (view ) و کنترلر(controller ). کنترلر به طور مستقیم HTML بر می گرداند.به طور کلی شما نمی خواهید که کنترلر HTML بر گرداند زیرا برا نوشتن کد و نگهداری بسیار دشوار می شود. در عوض، شما معمولا از فایل قالب (template) جداگانه Razor برای کمک به تولید HTML استفاده می کنید.


در آموزش بعدی از مجموعه آموزش های ASP.NET Core این کار را انجام می دهید.

آموزش ASP.NET Core - چرا ASP.NET Core

سلام بر دوستان عزیز و همراه...

امروز با یک مبحث دیگه در زمینه آموزش ASP.NET Core همراه شما هستم، بدون شک دوستانی که در زمینه توسعه اپلیکیشن های تحت وب با استفاده از سی شارپ و فریمورک های NET. فعال هستند، با مفهوم NET. و NET Core. آشنایی دارند، اما بهتر برای دوستانی که آشنایی محدودی با این فریم ورک دارند توضیح مختصری ارائه بدیم.

فریمورک NET. از جمله محصولات مایکروسافت بود که سال ها توسط برنامه نویسان فعال در حوزه تولید اپلیکیشن مورد استفاده قرار می گرفت اما بدلیل برخی محدودیت هایی که برای برنامه نویسان ایجاد می کرد، محبوبیت خود را بویژه در میان Startup ها از دست داد، تا اینکه مایکروسافت با معرفی فریم ورک NET Core. انقلابی جدید ایجاد کرد. فریم ورک NET Core. بصورت محسوسی سبک بود و وجود مزایا دیگری همچون متن باز بودن (Open Source)، چند سکویی بودن (Cross Platform)، ساده، قدرتمند، رایگان و ماژولار بودن باعث شد که این محصول جدید مایکروسافت به سرعت مورد استقبال قرار بگیرد و دوباره مایکروسافت در فضا رقابتی توسعه اپلیکیشن های تحت وب خوش بدرخشد.

علاوه بر این، آموزش ASP.NET Core به شما نشان می دهد که فریم ورک NET Core. تمامی ویژگی های Core که برای راه اندازی یک برنامه NET Core. نیاز است رو شامل میشه. اگر ویژگی دیگری در Core نیاز باشه می توان آن را بوسیله NuGet Packages تامین کرد که در صورت نیاز می تونیم آنها رو به برنامه خود اضافه کنیم. پس برنامه NET Core. می تونه باعث بهبود عملکرد، کاهش حافظه مورد نیاز و آسان شدن حفظ و نگهداری برنامه ساخته شده هم بشه.

خوب اگر از من بپرسید که جواب من به سوال "چرا NET Core." چیه، جواب شما رو با استفاده از دو پاراگراف زیر میدم (این دو پاراگراف برگرفته از مقاله ای هستش که بر اساس مطالب سایت های مختلف آماده کردم) :

استفاده از فریم ورک NET. محدودیت هایی ایجاد می کند که از جمله آنها می توان به موارد زیر اشاره کرد : این فریمورک تنها بر روی پلتفرم ویندوز قابل استفاده است. برای ویندوزهای مختلف، همچون دسکتاپ، استور، تلفن و برنامه های تحت وب باید نمونه های متفاوتی از NET API. را بکار گرفت. علاوه بر این، ساختار فریم ورک NET. بگونه ای است که اگر تغییری در آن ایجاد شود، تمامی برنامه هایی که به آن وابستگی دارند، تحت تاثیر قرار می گیرند.

امروزه، ساخت برنامه ای که بر روی سیستم های مختلف کار کند، برنامه نویسی یک سایت و طراحی آن برای ویندوزهای دسکتاپ و وب، و ساخت برنامه های موبایل، از جمله درخواست های معمول مشتریان است. بنابراین، استفاده از یک فریمورک خاص که سیستم های مختلف را پشتیبانی کند، ضروری است. بهمین دلیل، مایکروسافت NET Core. را معرفی و ارائه کرد. هدف اصلی از معرفی NET Core. این بود که فریم ورک NET. تبدیل به فریمورکی متن باز و کراس پلتفرم (چند سکویی) شود تا قابلیت استفاده بر روی دستگاه های مختلف را داشته باشد.

حالا وقتش رسیده که ویژگی های NET Core. و ضرورت آموزش ASP.NET Core برای دوستان فعال در این حوزه رو بصورت مفصل با همدیگه بررسی و مطالعه کنیم :

1. متن باز بودن فریم ورک NET Core. :

از آنجا که NET Core. فریمورکی متن باز است، بر روی سایت GitHub در دسترس است.

2. ویژگی کراس پلتفرم در فریم ورک NET Core. :

فریم ورک NET Core. را می توان بر روی سیستم های عامل ویندوز، مک و لینوکس اجرا کرد. در هر سیستم عامل، زمان مورد نیاز برای اجرا کد یکسان و خروجی گرفتن از آن متفاوت است.

3. سازگاری با معماری های مختلف در فریم ورک NET Core. :

فریم ورک NET Core. را می توان در معماری های ساختاری مختلف همچون X64، X86 و ARM استفاده کرد و رفتار مشابهی را از آن دریافت کرد.

4. دامنه وسیعی از برنامه ها در MVC Core :

برنامه های بسیاری را می توان بر اساس پلتفرم NET Core. ساخته و راه اندازی کرد. از جمله این برنامه ها می توان به مواردی همچون برنامه های موبایل، برنامه های دسکتاپ، برنامه های تحت وب، برنامه های یادگیری ماشین، مایکرو سرویس ها، بازی و .... اشاره کرد.

5. امکان پشتیبانی از چند زبان در فریمورک NET Core. :

برای توسعه برنامه در Asp.NET Core می توانید از زبان های برنامه نویسی C#، F# و ویژوال بیسیک استفاده کنید. علاوه بر این، می توانید از IDE دلخواه خود، همچون Visual Studio 2017/2019، Visual Studio Code، Sublime Text، Vim و .... استفاده کنید.

6. معماری ماژولار در MVC Core :

فریم ورک NET Core. با استفاده از NuGet Packages از معماری ماژولار پشتیبانی می کند. پکیج های متفاوتی وجود دارد که کاربر آنها را متناسب با نیاز خود به پروژه اضافه می کند. نکته قابل توجه این است که حتی کتابخانه NET Core. نیز بعنوان یک NuGet Package ارائه می شود و این مسئله باعث کاهش فضا اشغال شده از حافظه، بهبود عملکرد و نگهداری آسان پروژه می شود.

7. پیاده سازی CLI در MVC Core :

فریم ورک NET. ابزارهای Command-Line Interface را برای توسعه و یکپارچه سازی برنامه بصورت پیوسته، بکار می گیرد.

8. سازگاری در فریم ورک NET Core. :

با استفاده از بکارگیری .NET Standard Specification با فریمورک NET. و Mono APIs نیز سازگاری دارد.

9. انعطاف پذیری در فریم ورک NET Core. :

برنامه NET Core. می تواند در سطح کاربر یا سیستم یا با کانتینرهای Docker گسترش داده شود.

از اونجایی که دوست ندارم این مطلب رو بصورت ناقص با شما به اشتراک بگذارم، پیکربندی فریم ورک NET Core. رو با استفاده از یک شکل با هم بررسی می کنیم :

آموزش ASP.NET Core

آموزش ASP.NET Core

خوب دوستان، امروز سعی کردم بصورت خیلی ساده و مختصر، امکان آشنایی با فریم ورک NET Core. رو برای شما فراهم کنم، حتمن با ما همراه باشید چون در پست بعدی میخوام راجع به معماری MVC در فریم ورک NET Core. با همدیگه صحبت کنیم ....

دوره آموزش ASP.Net Core

اهداف دوره  MVC Core :

1. در این دوره MVC Core، معماری Core، چگونگی کارکرد MVC Core، بررسی کامل یک Request Life Style و همچنین آموزش انواع MiddleWare، چرخه حیات Middle Ware و انواع آنها بویژه Middle Ware های جدیدی که برای ایمن سازی وبسایت ها از آنها استفاده می شود، آموزش داده می شوند. این بخش از جمله مهم ترین بخش های آموزشی بوده که 2 یا 3 جلسه بطول می انجامد.

2. در این دوره آموزش MVC Core، یک معماری لایه ای قدرتمند (کمی سبک تر از Onion Architecture) بصورت کامل و حرفه ای آموزش داده می شود.

3. در دوره آموزش ASP.Net Core، کلیه اصول طراحی پنج گانه Solid در قالب یک پروژه پیاده سازی می شود.

4. در آموزش MVC Core، کلیه مراحل ساخت بانک اطلاعاتی به روش Code First، Entity Framework و Fluent API آموزش داده می شوند.

5. در دوره MVC Core، کوئری نویسی حرفه ای برای Entity Framework، برای بازیابی انواع مختلفJoin ، SubQuery Table Drive، SubQuery Scollar و همچنین SubQuery نوع سوم، Dynamic Query (جستجو پویا) و گروه بندی داده ها آموزش داده می شود.

6. در دوره ASP.Net Core، تمامی مباحث MVC Core از جمله Model-View-Controller و ارتباط آنها با یکدیگر، بصورت گام به گام آموزش داده می شوند. دانشجویان پس از گذراندن مرحله بالا به توانایی علمی کافی در ساخت پروژه MVC Core می رسند.

7. در این دوره از آموزش پروژه محور ASP.Net Core، کلیه مراحل استفاده از بوت استرپ جهت ساخت پنل مدیریت ریسپانسیو آموزش داده می شود.

8. دانشجویان در دوره MVC Core قادر خواهند بود که بصورت صد در صد کاربردی، پروژه های خود را Full-Ajax کنند؛ بعبارت دیگر در ابتدا آموزش جامعی از یکی از library های فرانت اند و جاوا اسکریپت داده می شود و در بخش بعدی، پس از آموزش Ajax، از ترکیب Ajax با کتابخانه های کمکی مثل بوت استرپ، فرم هایی کاملن مشابه برنامه های تحت ویندوز (پاسخگو به ایونت های کیبورد در جستجو، قابلیت استفاده از Modal جهت افزودن و حذف، استفاده از Sweet Alert جهت نمایش پیغام ها و هشدارها و ...) استفاده می شود.

9. در دوره آموزش پروژه محور MVC Core می آموزید که مراحل ایمن سازی یک وبسایت جهت جلوگیری از هر نوع ورود غیرمجاز بصورت کاربردی و حرفه ای به چه شکل است. در این مرحله، تمامی مباحث identity شامل مدیریت کاربران، مدیریت نقش ها، مدیریت دسترسی نقش ها به بخش های سایت و همچنین استفاده از Claim ها آموزش داده می شود.

10. در این بخش از دوره آموزش MVC Core، تمامی مراحل ساخت یک فروشگاه الکترونیک، از صفر تا صد، بصورت پروژه محور آموزش داده می شود.


در دوره آموزش MVC Core می آموزید که برخلاف فیلم های آموزشی یا انتظار بسیاری از دانشجویان، معماری MVC فقط بعنوان یک پوسته برای پروژه های تحت وب استفاده می شود و تمامی بخش های پروژه در قالب یک معماری برگرفته شده از Onion Architecture ساخته می شود که فرآیند مدلسازی در بخشی جدا، فرآیند ذخیره و بازیابی در بخشی جدا و همچنین هماهنگی تمامی بخش های پروژه برای پیاده سازی قوانین تجاری (Business Rules) در بخش جداگانه ای قرار می گیرند. علاوه بر این، با توجه به قوانین پنج گانه SOLID برای هر یک از بخش های فوق، یک لایه انتزاعی (Abstraction) بصورت جداگانه طراحی می گردد. این دوره آموزشی از دو بخش تشکیل شده که در ابتدا این بخش ها تلاش می شود به شرح مختصری از فریمورک .NET و معماری MVC بپردازیم، سپس عناوین مورد نظر برای تدریس را ارائه دهیم.


سرفصل دوره MVC Core

بخش اول از دوره  MVC Core

آموزش برخی ویژگی های زبان سی شارپ

  • آموزش Generic Method ها و کاربرد آن در ASP.Net Core
  • آموزش Delegateها و کاربرد آن در ASP.Net Core
  • آموزش Anonymous Functionها و کاربرد آن در ASP.Net Core
  • آموزش Actionها و Funcها و کاربردهای آنها در ASP.Net Core
  • آموزش Lambda Expressionها و کاربرد آن در ASP.Net Core
  • آموزش Extension Methodها در C# و کاربرد آن ها در C# Core
  • استفاده از var در C# Core و کاربردهای آن ها
  • آموزش مفهوم Asynchronous Programming در ASP.Net Core
  • کاربرد await و async در Multi Thread
  • Thread چیست و کاربرد آن در ASP.Net Core
  • آموزش MultiThread
  • چه هنگام از Multi Thread استفاده کنیم
  • در چه مواقعی استفاده از Multi Thread به ما کمکی نمی کند
  • کپسوله سازی مفهوم Threating در await و async
  • بررسی State اجرایی یک پردازش async در C# Core
  • آموزش Dependency Injection (DI)
  • آموزش Inversion of Control (IoC)
  • آموزش پروتکل های ATP
  • آموزش Builder Pattern
  • آموزش Marker Builder


آموزش معماری ASP.Net Core و تشریح Request Life Cycle در ASP.Net Core

  • آموزش Model و مفهوم آن در ASP.Net Core
  • آموزش View و مفهوم آن در ASP.Net Core
  • آموزش Controller و مفهوم آن در ASP.Net Core
  • ساخت اولین پروژه کوچک برای درک مفهوم ASP.Net Core


آموزش Entity Framework Code First و کاربردهای آن در برنامه نویسی ASP.Net Core

  • آموزش مفهوم ORM در برنامه نویسی
  • ساخت Data Base براساس Class Diagram
  • بررسی رابطه Composition بین کلاس های موجود در یک Diagram ساده
  • نگاشت Composition با Data Base رابطه ای با استفاده از Code First
  • آموزش Fluent API و کاربرد Fluent API در Entity Framework Core
  • آموزش ساخت Relation یک به چند با استفاده از Fluent API
  • آموزش Unique Constraint با استفاده از Fluent API در ASP.Net Core
  • آموزش Default Value با استفاده از Fluent API در ASP.Net Core
  • آموزش تخصیص دقیق نوع داده ای (Data Type) با استفاده از Fluent API در ASP.Net Core
  • آموزش ساخت رابطه چند به چند(Many to Many) با استفاده از Fluent API در ASP.Net Core
  • بررسی مفهوم Migration در ASP.Net Core
  • آموزش Versioning در ASP.Net Core Migration

 

آموزش ذخیره و بازیابی داده ها در ASP.Net Core

  • آموزش Insert و Update و Delete نمونه رکوردها با استفاده از ASP.Net Core
  • آموزش بازیابی مجموعه ای از Recordها در ASP.Net Core
  • بازیابی از چندین جدول با استفاده از Joinها در ASP.Net Core
  • مفهوم Scalar Subquery در SQL Server و شبیه سازی آن در ASP.Net Core
  • مفهوم Table Drived Sub Query و شبیه سازی آن در ASP.Net Core
  • بازیابی Recordها براساس شناسه اصلی(Primary Key)
  • محدودسازی Recordها با استفاده از Take
  • مفهوم صفحه بندی Recordها در ASP.Net Core
  • آموزش مفهوم Dynamic Query در ASP.Net Core
  • آموزش مفهوم Search Model در ASP.Net Core


پروژه عملی بخش اول از دوره   MVC Core  :

ساخت Class Diagram برای ساخت سایت خبری بصورت گام به گام بهمراه بانک اطلاعات بهینه سازی شده بر اساس Fluent API در ASP.NET Core


بخش دوم از دوره  MVC Core

آشنایی با مفهوم View Model در دوره MVC Core

  • آموزش مفهوم View Model و کاربردهای آن در ASP.Net Core
  • آموزش Attribute Validationها و مفهوم شی گرایی آن
  • آموزش Required Attributeها در ASP.Net Core Model View
  • آموزش String Lengthها در ASP.Net Core Model View
  • آموزش Rangeها در ASP.Net Core Model View
  • آموزش Compareها در ASP.Net Core Model View
  • آموزش Urlها در ASP.Net Core Model View
  • آموزش Regular Expressionها در ASP.Net Core Model View
  • آموزش بررسی صحت داده ای View Model با استفاده از ویژگی Model State
  • آموزش مفهوم Unobtrusive Validation در ASP.Net Core و ارائه چند مثال کاربردی
  • بررسی کتابخانه اعتبارسنجی Unobtrusive مورد نیاز بر ASP.Net Core


آموزش انواع خروجی های توابع Action در ASP.Net Core

  • آموزش View Result و کاربردهای آن در ASP.Net Core
  • آموزش Partial View Result و کاربردهای آن در ASP.Net Core
  • آموزش Redirect Result و کاربردهای آن در ASP.Net Core
  • آموزش JSon Result و کاربردهای آن در ASP.Net Core
  • آموزش JavaScript Result و کاربردهای آن در ASP.Net Core
  • آموزش File Result و کاربردهای آن در ASP.Net Core
  •  آموزش Empty Result و کاربردهای آن در ASP.Net Core


آموزش نحوه ارسال اطلاعات از Actionها به Viewها

  • آموزش View Bag در ASP.Net Core
  • آموزش TempData در ASP.Net Core
  • آموزش View Data در ASP.Net Core
  • آموزش تخصیص یک Model کامل به یک View یا Partial View
  • آموزش Bind به عنوان یک View با یک Model


آموزش انواع Scope Variableها در ASP.Net Core

  • آموزش مفهوم Session در ASP.Net Core و کاربرد آن و اشتراک گذاری داده ها در فضای کاری یک کاربر
  • احتیاط های لازم برای کار کردن با Sessionها در ASP.Net Core
  • قرار دادن Objectهای پیچیده درون Session
  • آموزش Json Serialize برای نگه داری اشیا پیچیده در Session
  • آموزش Reserialize کردن اشیا پیچیده در درون Session
  •  آموزش Applicationها در ASP.Net Core و کاربرردهای آن


آموزش Routing در ASP.Net Core

  • آموزش مفهوم Middle Wareها در ASP.Net Core
  • آموزش تنظیمات Middle Wareهای Routing در ASP.Net Core
  • آموزش تجزیه و تحلیل Routeها و متغیرهای آنها
  • آموزش مفهوم Routing Attribute در ASP.Net Core
  • آموزش استفاده از چندین Routing Attribute برای یک Action در ASP.Net Core


آموزش Security و Login با استفاده از ASP Identity

  • معرفی ASP.Net Core Identity و امکانات آن
  • آموزش نصب و پیکربندی ASP.Net Core Identity
  • ساخت صفحات Login ، Logout و Registry برای ASP.Net Core
  • آموزش Authorize Attribute در ASP.Net Core
  • پیاده سازی Login و Logout در ASP.Net Core


آموزش Cookie در ASP.Net Core

  • آموزش مفهوم Cookie در ASP.Net Core
  • آموزش خواندن داده ها در Cookie در ASP.Net Core
  • آموزش نوشتن داده ها در Cookie در ASP.Net Core
  • آموزش حذف Cookieها در ASP.Net Core
  • آموزش کامل optionهای Cookie شامل Secure ، HTTP Only، Expires، Path و Domain


آموزش Razor و قواعد استفاده از آن

  • آموزش Syntax مربوط به Razor در ASP.Net Core
  • آموزش Razorهای Implicit در ASP.Net Core
  • آموزش Razorهای Explicit در ASP.Net Core
  • آموزش Expression Encoding در Razor و ماهیت کاربردهای آن
  • آموزش Razor Code Blocks در ASP.Net Core
  • استفاده از حلقه های تکرار درRazor
  • استفاده از حلقه های تکراردر Code Variableها در حالات مختلف CsHTML

 

آموزش Tag Helperها در ASP.Net Core

  • Tag Helper چیست و چه کاربردی دارد؟
  • آموزش Form Tag Helper و کاربردهای آن در ASP.Net Core
  • آموزش Action های Post و GET و تفاوت های آنها در ASP.Net Core
  • آموزش Input Tag Helper در ASP.Net Core
  • آموزش Text Area Tag Helper در ASP.Net Core
  • آموزش Validation Message در ASP.Net Core
  • آموزش Validation Summary Tag Helper در ASP.Net Core
  • آموزش Bind کردن در ASP.Net Core
  • آموزش Multi Selector در ASP.Net Core


آموزش کامل View در ASP.Net Core

  • آموزش Layout در ASP.Net Core و ارائه مثال کاربردی
  • آموزش Partial View در ASP.Net Core و ارائه مثال کاربردی
  • آموزش View Component در ASP.Net Core و ارائه مثال کاربردی

پروژه عملی بخش دوم از دوره MVC Core  :

ساخت سایت خبری

برخی موارد دیگر که در کنار ساخت سایت خبری می آموزید :

آموزش معماری لایه ای

  • آموزش علل استفاده از معماری لایه ای در ASP.Net Core
  • آموزش ساخت لایه Domain Model با استفاده از EF Core
  • آموزش ساخت لایه Data Access با استفاده از EF Core
  • آموزش برقراری ارتباط با لایه ها و ساخت DTO هر لایه
  • طراحی Class Diagram مربوط به سایت خبری
  • ساختن لایه Domain Model براساس Class Diagram
  • ساختن Data Base براساس Domain Model
  • تکمیل Repository هریک از Classهای رده بندی خود خبر
  • طراحی بخش نظرات کاربران(Data Access + Domain Model)
  • چگونه از کامنت گذاری کاربران Login نکرده جلوگیری کنیم
  • طرحی از بخش UI مربوط به رده بندی اخبار
  • طراحی بخش UI مرتبط با بخش مدیریت اخبار
  • ساخت صفحه جستجوی Domain مربوط به وب سایت
  • آموزش Page بندی  صفحات
  • چگون از ورود افراد Login نکرده به صفحات مدیریتی جلوگیری کنیم
  • آپلود کردن تصویر همراه با خبر به وب سایت
  • چگونه کلیه راه های نفوذ از طریق آپلود تصویر را بگیریم
  • چگونه در وب سایت هنگام Login کاربران Catch بگذاریم
  • ساخت بخش مدیریتی نظرات کاربران
  • ساخت صفحه مدیریت نظرات کاربران به Ajax کامل
  • استفاده از Logout حرفه ای برای سایت خبری
  • چگونه Menu داینامیک برای رده بندی اخبار بسازیم
  • آموزش امکانات و استاتداردهای لازم جهت SEO سازی صفحات خبری
  • ساخت صفحه درج نظرات
  • جلوگیری از درج نظرات کاربران Login نکرده
  • آموزش تنظیمات Config جهت Upload کردن سایت
  • آموزش Script گیری Data Base جهت Upload کردن سایت
  • آموزش Upload کردن نهایی وب سایت بر روی هاست


آموزش Jquery

  • Jquery چیست؟
  • نحوه استفاده از Layout Pages Jquery
  • آموزش مفهوم DOM و Eventهای Jquery DOM
  • آموزش انواع Jquery Selector جهت هماهنگی با ASP.Net Core
  • آموزش نحوه استفاده از Eventها در JQuery
  • آموزش Effectهای درونی JQuery جهت ASP.Net Core


آموزش Ajax

  • Ajax چیست و کاربرد آن در ASP.Net Core
  • معرفی شی xml HTTP Request و پردازش های async
  • آموزش فراخوانی Requestهای get و جانمایی آنها توسط JQuery در ASP.Net Core
  • آموزش فراخوانی Requestهای Post و دریافت نتایج آنها توسط ASP.Net Core
  • آموزش JSon در ASP.Net Core و کاربرد آن
  • آموزش Serialize کردن و Deserilize کردن داده توسط ASP.Net Core و Jquery
  • آموزش Cascade Drop Down همراه با Sub Form توسط Ajax
  • آموزش استفاده از Auto Completeها و کاربرد آنها در پروژه های وب


 آموزش Roting در MVC Core

  • آموزش Routing Template در MVC Core
  • آموزش مسیریابی متعارف(Conventional Routing)
  • نحوه تنظیم Route های مختلف
  • آموزش Attribute Routing در MVC Core
  • آموزش URL Generation در MVCCore