آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

دوره آموزش پروژه محور MVC Core همراه با فروشگاه الکترونیکی

پیشنیاز : دوره آموزش سی شارپ مقدماتی
دوره آموزش طراحی سایت
تاریخ شروع طول دوره ساعت برگزاری نام استاد هزینه (تومان) وضعیت
1400/02/22 66 ساعت چهارشنبه ها ساعت 16:30 تا 20:30 (حضوری و آنلاین) مهندس رفوآ 2,800,000 درحال برگزاری
1400/08/05 66 ساعت چهارشنبه ها ساعت 16:30 تا 20:30 (حضوری و آنلاین) مهندس رفوآ 3,000,000 ثبت نام

توجه: از دانشجویان عزیز تقاضا میگردد جهت قطعی کردن ثبت نام با آموزشگاه تماس بگیرند.

آموزش ASP.Net Core


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



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

  • آموزش پروژه محور مراحل ساخت یک پروژه حرفه ای از تحلیل تا مرحله نهایی بارگذاری روی هاست در محیطی عملی
  • آموزش کاربردی معماری MVC به همراه جزئیات آن در MVC Core
  • آموزش Web API Core با رعایت استانداردهای Rest
  • آموزش معماری .NET Core و تفاوت فریمورک .NET Core با دیگر فریمورک های مایکروسافت
  • آموزش MVC Core Request Pipeline ها و همچنین آموزش انواع Middle Ware و تنظیمات آنها
  • آموزش تنظیمات انواع Environment و همچنین Command Argument ها در MVC Core
  • آموزش پروژه محور Entity Framework Core Code First بصورت کامل
  • آموزش حرفه ای نوشتن کوئری های پیچیده در Entity Framework Core
  • آموزش گام به گام و پروژه محور حرفه ای ترین معماری روز دنیا (Onion Architecture) بصورت عملی و تئوری برای برنامه نویسانی که برنامه های خود را تا به امروز به صورت Flat نوشته اند
  • آموزش پروژه محور Microsoft Identity برای ایمن سازی پروژه های نرم افزاری
  • آموزش امنیت مبتنی بر Token و ایمن سازی وب سایت بر اساس JWT Token
  • آموزش امنیت مبتنی بر نقش (Role Base Security) در Microsoft Identity
  • آموزش ساخت یک Web Application بصورت Full Ajax
  • آموزش پروژه محور ساخت یک پنل مدیریتی جذاب که بر اساس Ajax و BootStrap ساخته می شود
  • آموزش پروژه محور ساخت یک Layout حرفه ای با استفاده از MVC Core و تقسیم عناصر Layout به تعدادی View Component
  • آموزش چگونگی تقسیم لایه UI به بخش های کوچکتر با استفاده از View Component ها (این امر باعث می شود قابلیت تست پذیری برنامه افزایش یابد)
  • آموزش Routing در MVC Core و چگونگی استفاده از Routing برای بهبود عملکرد سئو سایت (با استفاده از استانداردهای SEO Well-Form URLs)
  • آموزش پیاده سازی State Management با استفاده از امکانات MVC Core همچون Cookie, Session, Cache
  • آموزش پروژه محور برنامه نویسی صفحات فروشگاه الکترونیکی با استفاده از MVC Core
  • آموزش پروژه محور Unit of Work Design Pattern و پیاده سازی تراکنش های فروشگاه الکترونیکی با استفاده از آن
  • آموزش Unit Test برای تست خودکار پروژه ها
  • آموزش تمامی مراحل Publish وبسایت از مرحله آغازین تا مرحله نهایی بارگذاری سایت روی سرور و همینطور اسکریپت گرفتن از بانک اطلاعاتی


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



سرفصل دوره آموزش MVC Core


فصل اول : آموزش برخی ویژگی های زبان C#

  • آموزش 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 و کاربردهای آن ها
  • کاربرد await و async در Multi Thread
  • چه هنگام از Multi Thread استفاده کنیم
  • در چه مواقعی استفاده از Multi Thread به ما کمکی نمی کند
  • کپسوله سازی مفهوم Threating در await و async


فصل دوم : آموزش Request Life Cycle در ASP.NET Core

مرحله ASP.NET Core MVC Request Life Cycle یک مرحله از رویدادها یا کامپوننت هایی است که برای پردازش درخواست های HTTP با یکدیگر در تعامل هستند و پاسخی که باید به کاربر فرستاده شود را تولید می کنند Request Life Cycle در ASP.NET Core را می توان با استفاده از شکل زیر بصورت مختصر شرح داد.


چرخه حیات درخواست در Asp.Net Core

کامپوننت Middleware قالب اصلی HTTP Pipeline در یک برنامه را شکل می دهد. بعبارت دیگر، مجموعه ای از کامپوننت ها وجود دارند که با یکدیگر ترکیب می شوند و Pipeline مورد نیاز برای یک درخواست را شکل می دهند تا قادر به مدیریت هر نوع درخواست ورودی باشند.


ساخت middleware در asp.net core

Routing یکی از کامپوننت های Middleware است که فریمورک MVC را اجرا می کند. کامپوننتRouting تصمیم می گیرد که یک درخواست چطور می تواند با کمک مسیرهای مشخصه و قراردادی به کنترلرها و متودهای عملیاتی نگاشت شود.


در این مرحله از Request Life Cycle فرآیند مقدار دهی اولیه و اجرا کنترلرها اتفاق می افتد. کنترلرها مسئول مدیریت درخواست های ورودی هستند. کنترلر متودهای عملیاتی مناسب را بر اساس قالب های ارائه شده برای route (مسیر) ارائه می کند.


پس از اینکه مقدار دهی اولیه برای کنترلرها انجام شد، متودهای عملیاتی اجرا شده و مستندی از HTML را در قالب یک view ارائه می دهد تا بعنوان پاسخ برای مرورگر فرستاده شود.



در این مرحله ازRequest Life Cycle ، نتیجه که همان پاسخ تولید شده برای در خواست اصلی HTTP است اجرا می شود. اگر یکی از متودهای عملیاتی، نتیجه ای در قالب view را تولید کند، موتور view در معماری MVC یک view ارائه می دهد و پاسخ HTML را بر می گرداند؛ اما اگر نتیجه در قالب view ارائه نشود، متود عملیاتی پاسخ خود را تولید می کند.


  • آموزش Middleware در Request Life Cycle
  • آموزش Routing در Request Life Cycle
  • آموزش Controller Initialization در Request Life Cycle
  • آموزش Action Method Execution در Request Life Cycle
  • آموزش Result Execution در Request Life Cycle
  • آموزش View Rendering در Request Life Cycle


فصل سوم : آموزش مقابله با خطا در زبان سی شارپ پیشرفته

  • آموزش بکارگیری Exceptionهای پیش ساخته زبان سی شارپ و استفاده از چندین Catch برای مهار انواع مختلف Error
  • آموزش ارث بری از Exceptionها و کاربرد Custom Exceptionها در طراحی نرم افزار
  • آموزش Exceptionهای ارث بری شده و کاربرد آنها در Unit Test

فصل چهارم : آموزش اصول SOLID در طراحی نرم افزار

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

  • آموزش Single Responsibility و مزیت و معایب آن در برنامه نویسی و معماری نرم افزار
  • آموزش طراحی کلاس ها مبنی بر Open-Closed Principle و بررسی مزایا و معایب آن در برنامه نویسی و معماری نرم افزار
  • آموزش استفاده از Liskov Substitution Principle در طراحی کلاس ها و بهینه سازی توارث مبتنی بر Polymorphism
  • آموزش Interface Segregation Principle در طراحی Interfaceهای پروژه های بزرگ و ارائه Best Practice در طراحی Interface
  • آموزش Dependency Inversion Principle و کاربرد آن در طراحی نرم افزار


فصل پنجم : آموزش معماری MVC

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


دوره MVC Core

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


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


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


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


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

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


Object Relational Mapping

رویکرد Code First در میان برنامه نویسانی که از معماری MVC استفاده می کنند بسیار معمول است. در این روش، کنترل کامل بر روی کد صورت می گیرد. با استفاده از این رویکرد می توان تمامی فعالیت پایگاه داده را با استفاده از کد پیاده سازی کرد. بنابراین، می توان گفت در نتیجه استفاده از این رویکرد، تغییراتی که بصورت دستی بر روی پایگاه داده انجام می شدند، حذف می شوند و همه چیز وابسته به کد خواهد بود.


Entity Framework Core دارای یک پیش فرض برای ساخت جداول و ساختار بانک اطلاعاتی از روی کلاس های موجود است، ولی این ساختار بسیار کلی بوده و دارای نواقص بسیار فاحشی است، برای مثال برای فیلدهایی از سی شارپ که از نوع string هستند، در دیتابیس دیتا تایپ nvarchar(max) را در نظر می گیرد که باعث افت شدید کارایی می شود. در بسیاری از اصلاحات دیگر، برای جبران این کمبود دو روش کمکی دیگر وجود دارد: روش اول Data Annotation و روش دوم Fluent API است که روش Fluent API دارای کاربرد بیشتر و حرفه ای تری است.


  • آموزش مفهوم 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


فصل هفتم : آموزش کوئری نویسی

  • آموزش کوئری نویسی به روش Query Syntax در Entity Framework Core
  • آموزش کوئری نویسی به روش Method Syntax در Entity Framework Core

تبصره :

تمامی کوئری های ذکر شده در مراحل زیر به روش های Query Syntax , Method Syntax انجام می شوند.


  • آموزش جستجو رشته ها با استفاده از تابع Starts With در Entity Framework Core
  • آموزش جستجو رشته ها با استفاده از تابع Ends With در Entity Framework Core
  • آموزش جستجو رشته ها با استفاده از تابع Contains در Entity Framework Core
  • آموزش گروه بندی رکوردها در Entity Framework Core
  • آموزش Having در Entity Framework Core
  • آموزش مرتب سازی داده ها با استفاده از Order By
  • آموزش شرط گذاری با استفاده از Where
  • آموزش کوئری نویسی با خروجی Anonymous Object
  • آموزش کوئری نویسی با خروجی Business Object
  • آموزش Scalar SubQuery در Entity Framework Core
  • آموزش Table Drive SubQuery در Entity Framework Core
  • آموزش SubQuery نوع سوم در Entity Framework Core
  • آموزش Inner Join در Entity Framework Core
  • آموزش Left Join در Entity Framework Core
  • آموزش Right Join در Entity Framework Core
  • آموزش Full Join در Entity Framework Core
  • آموزش جستجو پیشرفته در Entity Framework Core
  • آموزش مفهوم Page بندی در Entity Framework Core
  • آموزش Dynamic Query در Entity Framework Core


فصل هشتم : آموزش ذخیره و بازیابی داده ها در 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


فصل نهم : آشنایی با مفهوم 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

ASP.NET MVC Core دارای یک سیستم مسیریابی فوق العاده پیشرفته است که از طریق آن می توان URL های مبتنی بر سئو (SEO Friendly) را طراحی نمود. در بسیاری موارد، وبسایت هایی که از قبل سئو شده اند، بعنوان مثال سایت های قدیمی با پسوند .aspx و .php دارای تعداد زیادی صفحات ایندکس شده در گوگل هستند و می خواهند ساختار آدرس خود را حفظ کنند. MVC Core می تواند با استفاده از سیستم routing پیشرفته خود، آدرس های شبیه صفحات قبلی را حفظ کند.

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


فصل چهاردهم : آموزشDependency Injection (تزریق وابستگی) در.NET Core

  • آشنایی با وابستگی و مشکلات آن
  • معرفی اصل معکوس سازی وابستگی
  • آشنایی با تزریق وابستگی
  • تزریق وابستگی در Middlewareها
  • دریافت وابستگی‌ها از HttpContext
  • تعیین طول عمر Serviceها
  • زنجیره وابستگی‌ها و تنظیم آن‌ها
  • چندین پیاده سازی برای یک سرویس


فصل پانزدهم : آموزش 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


فصل شانزدهم : آموزش Model Binding در ASP.Net Core

  • آشنایی با Model Binding در ASP.NET Core
  • واکشی اطلاعات از Request Header
  • بررسی نحوه واکشی اطلاعات از Request Body
  • Model Validation
  • بررسی نحوه نمایش خطا به کاربر


فصل هفدهم :آموزش دسترسی و امنیت

  • آشنایی یا JWT
  • آشنایی با مفهوم Claim-based Identity
  • احراز هویت با Login از طریق وب سایت های Google ، Facebook و ...
  • تعریف Role و Policy
  • رمز نگاری Token
  • منقضی کردن توکن به صورت Real Time و Refresh Token
  • آشنایی با حمله های متداول و جلوگیری از آنها


فصل هجدهم : آموزش 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 و ارائه مثال کاربردی


فصل بیست و دوم : آموزش معماری لایه ای

در مهندسی نرم افزار، معماری لایه ای یک معماری Client-Server است که در آن توابع مدیریت داده ها، پردازش برنامه و نمایش اطلاعات، بصورت فیزیکی از یکدیگر جدا می شوند. از جمله فواید این معماری می توان به موارد زیر اشاره کرد :

  1. امکان بروزرسانی تکنولوژی یک لایه را بدون تحت تاثیر قرار دادن دیگر بخش های برنامه فراهم می کند.
  2. برای تیم های برنامه نویسی این امکان را فراهم می کند که هر شخص بر روی بخش مخصوصی کار کند.
  3. با استفاده از معماری لایه ای می توانید مقیاس یک برنامه را کم یا زیاد کنید. برای مثال، وجود یک لایه مجزا برای Back-End این امکان را برای شما فراهم می کند که به جای استفاده از یک تکنولوژی خاص، چندین پایگاه داده را بکار گیرید. علاوه بر این، امکان افزایش مقیاس را با اضافه کردن چندین Web Server فراهم می کند.
  4. قابلیت اطمینان و استقلال سرورها یا سرویس ها را ارتقا می دهد.
  5. سهولت نگهداری کدها، مدیریت ارائه کد و Business Logic را بصورت جداگانه فراهم می کند تا برای مثال بتوان در Business Logic تغییر ایجاد کرد، بگونه ای که Presentation Layer را تحت تاثیر قرار ندهد.
  • آموزش علل استفاده از معماری لایه ای در 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ها و کاربرد آنها در پروژه های وب


فصل بیست و پنجم : آموزش Routing در MVC Core

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


فصل بیست و ششم : آموزش یونیت تست

الف) آموزش مبانی تست در .NET Core

  • تست خودکار در ASP.NET Core
  • مزایا تست خودکار در MVC Core
  • انواع تست در ASP.NET Core
  • هرم تست در برنامه نویسی در MVC Core
  • ابزار تست در برنامه نویسی در ASP.NET Core

ب‌) مبانی تست واحد در .NET Core

  • ویژگی یونیت تست مناسب در ASP.NET Core
  • آموزش نام گذاری تست در MVC Core
  • آموزش rider در تست واحد در ASP.NET Core
  • آموزش نوشتن تست واحد در MVC Core
  • آموزش تست black box در ASP.NET Core
  • آموزش set up در تست واحد در MVC Core
  • آشنایی با tear down در تست واحد در ASP.NET Core
  • آموزش تست پارامتری شده در MVC Core
  • آشنایی با ignoring test در ASP.NET Core
  • آموزش نوشتن تست واحد قابل اعتماد در MVC Core

ج‌) آموزش core تست در .NET Core

  • آموزش تست رشته ها در MVC Core
  • آموزش مجموعه های تست واحد در ASP.NET Core
  • آموزش تست متدهای برگشتی در MVC Core
  • آموزش تست متدهای void در ASP.NET Core
  • تست واحد برای مدیریت خطا در MVC Core
  • آشنایی با تست متد private در ASP.NET Core
  • آشنایی با code coverage در MVC Core

د‌) رفع وابستگی خارجی در سی شارپ

  • آموزش کدهای قابل تست در MVC Core
  • آشنایی با مفهوم loosely coupled در ASP.NET Core
  • تزریق وابستگی با استفاده از پارامترهای متد در MVC Core
  • تزریق وابستگی با استفاده از properties در ASP.NET Core
  • تزریق وابستگی با استفاده از constructor در MVC Core
  • تزریق وابستگی با استفاده از فریمورک ها در ASP.NET Core
  • فریمورک های ساختگی در MVC Core
  • آبجکت های ساختگی در .NET Core در ASP.NET Core


شرح مختصری از پروژه دوره آموزش ASP.NET Core


1. شرح عملکرد پروژه

1-1) امکانات بخش مدیریت رده بندی محصولات

در این فروشگاه الکترونیکی، امکان رده بندی محصولات وجود دارد و بر اساس این رده بندی منوهای سایت بصورت داینامیک ساخته می شوند، همچنین هر رده به تنهایی دارای کلیه پارامترهای سئو می باشد. فیلدهای مورد نباز برای دسته بندی محصولات عبارتند از : نام رده، رده های رده، قیمت رده، توضیح مختصر رده، توضیح کامل رده، تصویر رده، تعداد بازدید رده، جمع امتیازات رده، میانگین امتیازات رده، Meta KeyWord رده ها، Meta Description رده ها، Slug رده ها (Slug بخش انتهایی URL است که نقش بسیار زیادی در سئو صفحات دارد)، Page Title رده ها (توضیح کاربرد آن در مبحث سئو است). هر رده می تواند تعداد بیشماری محصول باشد.



1-2) امکانات بخش مدیریت محصولات

هر محصول دارای فیلدهای زیر است:


  • نام محصول، رده محصول، قیمت محصول، توضیح مختصر محصول، توضیح کامل محصول (CK Editor)، تصویر محصول، تعداد بازدید محصول، جمع امتیازات محصول، میانگین امتیازات محصول، Meta KeyWord محصولات، Meta Description محصولات، Slug محصولات (Slug بخش انتهایی URL است که نقش بسیار زیادی در سئو صفحات دارد)، Page Title محصولات (توضیح کاربرد آن در مبحث سئو است).
  • مدیر سایت در بخش مدیریت، قابلیت ویرایش، حذف، تغییر رده و ثبت محصول جدید را دارد
  • جستجو محصولات، یک جستجو داینامیک بر اساس ترکیب یک یا همه یا بخشی از فیلدهای رده، نام محصول، قیمت از، قیمت تا، توضیحات و Slug است.


1-3) امکانات بخش محصولات مرتبط

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



1-4) امکانات بخش مدیریت نظرات کاربران

در این فروشگاه الکترونیکی، کاربران چنانچه Login کرده باشند، می توانند نظرات خود را ثبت کنند. نظرات ثبت شده توسط کاربران، پس از تایید مدیر سایت، نمایش داده می شود. در ضمن، خود کاربر هنگامی که به Panel خود در وبسایت وارد می شود، می تواند فهرست نظرات قبلی خود را به تفکیک تایید شده یا تایید نشده مشاهده کند.



1-5) امکانات بخش مدیریت کاربران و نقش ها در فروشگاه الکترونیکی

در این فروشگاه الکترونیکی سه نوع کاربر داریم :


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

فیلدهای مورد نیاز عبارتند از : نام، نام خانوادگی، ایمیل، آدرس 1، آدرس 2، موبایل، تلفن، کد پستی، کد ملی، نام کاربری، رمز عبور، استان و شهر.
همچنین هر کاربر می تواند در یکی از نقش های بالا عضویت داشته باشد. امکان ثبت کاربر جدید، امکان ویرایش کاربر، امکان حذف کاربر، امکان جستجو داینامیک بر اساس یک یا چند مورد از فیلدهای نام، نام خانوادگی، ایمیل و موبایل. علاوه بر این، هنگام ثبت نام کاربر، پس از انتخاب استان، شهرهای آن استان فهرست می شود تا کاربر از بین آنها بتواند شهر مورد نظر خود را انتخاب کند. امکان فعالسازی ایمیل کاربر و امکان فعالسازی موبایل کاربر نیز از دیگر امکانات ارائه شده و آموزشی است.



2. شرح مختصری از معماری مورد استفاده در دوره MVC Core

معماری بکار گرفته شده در این دوره، یک معماری برگرفته شده از معماری Onion است که در عین پیچیدگی از کلیه اصول Solid, Dependency Injection, Unit of Work و امکان Testability بصورت همزمان برخوردار است.


Onion Architecture

لایه های این معماری عبارتند از :


1. لایه Domain

تمامی کلاس های مربوط به ساخت فروشگاه الکترونیکی در این لایه تعریف می شوند.



2. لایه Domain Service

تمامی نیازهای مورد نظر در Domain پروژه، در این لایه قرار دارند و برای رعایت اصل پنجم SOLID که همان Dependency Inversion Principle است، تمامی Interface های مورد نیاز برای پوشش دادن نیازهای Domain را شامل می شود.



3. لایه Domain Service.Implementation

این لایه تمامی پیاده سازی های لایه Domain Service را درون خود جا داده و به این ترتیب لایه Domain، نیاز بیرونی خود را بدون وابستگی به تکنولوژی و از طریق Domain Service بدست می آورد.



4. لایه Application Service

در لایه Application، تمامی Business سطح کلان پیاده سازی می گردد. این لایه، خود از دو لایه تشکیل شده است. یکی Application Service Contract است که Interfaceهای لازم برای همه سرویس های مورد نیاز برای UI پروژه و همچنین سرویس های مورد نیاز برای تست نرم افزار را فراهم می کنند. این سرویس ها در قالب تعدادی Interface معرفی می شوند. لایه دیگر Application است که همان پیاده سازی Interfaceهای لایه Application Service می باشد که تمام هماهنگی سطح کلان و رعایت Businessهای پیچیده سیستم بر عهده آن است.



5. لایه UI

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



6. لایه FrameWork

تمامی Class Libraryهای عمومی که می خواهیم در قالب یک کتابخانه بسازیم تا در همه جا پروژه قابل استفاده باشد را در این لایه قرار دهیم.



7. لایه تست

تمامی Unit Testها، Integration Testها و End to End Testها در این لایه قرار می گیرند.



3. مراحل تحلیل، طراحی و برنامه نویسی فروشگاه الکترونیکی

طراحی کلاس های مربوطه (Domain Model)

در این بخش از دوره آموزش MVC Core تمامی کلاس های لازم برای ساخت فروشگاه الکترونیکی بصورت Pure طراحی می شوند و در مراحل بعدی بر اساس این کلاس ها و با استفاده از تکنولوژی Entity Framework Core دیتابیس ساخته می شود.



4. توضیح مراحل پیاده سازی فروشگاه الکترونیکی

4-1) طراحی لایه Domain Model

در این بخش از دوره آموزش پروژه محور MVC Core، تمامی کلاس های لازم برای اجرا پروژه فوق، پس از طراحی لایه Domain Model در این لایه طراحی می شوند. تمامی مراحل ساخت دیتابیس از روی کلاس های موجود را می توان با استفاده از Entity Framework Code First و Fluent API اجرا کرد. علاوه بر روابط میان کلاس استاندارد، تمامی روابط بین کلاس ها در لایه ای جداگانه به نام Entity Framework Persistence و با استفاده از Fluent API Model Builder طراحی می شوند.



4-2) طراحی لایه Domain Model.Application

در این بخش با استفاده از MVC Core Validation Data Annotation اقدام به طراحی اعتبارسنجی کلاس ها می کنیم. در واقع در این لایه، اقدام به ساخت کلاس های ساده و پیچیده ای می نماییم که در لایه های UI و تست مورد استفاده قرار می گیرند. این کلاس ها که جنبه DTO (Data Transfer Object) دارند، وظایف زیر را بر عهده دارند :


  • تمامی اعتبارسنجی های ساده در سطح فیلدها، در قالب Data Annotation در این لایه قرار می گیرند.
  • تمامی پیچیدگی های Business و پیچیدگی فراهم کردن استنتاجی داده ها، در این بخش Encapsulate می شوند.


4-3) طراحی لایه Domain Service

در این بخش از دوره آموزشی برای اینکه اصول SOLID در طراحی نرم افزار رعایت شوند، پس از طراحی عملکردهای مورد نیاز Application فروشگاه الکترونیک، تمامی Interfaceهای شی گرایی این فروشگاه برای دسترسی به بانک اطلاعات طراحی می شوند. برخی از اهداف این بخش عبارتند از :


  • آموزش بکارگیری Generic Interfaceها
  • آموزش ارث بری Interfaceها از همدیگر


4-4) پیاده سازی لایه Domain Service Implementation

در این بخش از دوره آموزشی، تمامی پیاده سازی لایه های Interface در بخش های قبلی، با استفاده از Entity Framework Core محقق می گردد. برخی از مباحث این بخش عبارتند از :


  • طراحی UoW Pattern(Unit of Work Pattern) برای شبیه سازی تراکنش ها در SQL
  • طراحی Repository Pattern برای سهولت در لایه بندی پروژه ها
  • اجرا کوئری های پیچیده برای ساخت گزارش های مدیریتی فروشگاه


4-5) طراحی لایه Application Service

در این بخش از دوره آموزش عملی MVC Core، تمامی سرویس های مورد نیاز برای لایه Application را پیاده سازی می کنیم. لایه Application از لایه های اساسی در پیاده سازی پروژه های پیچیده نرم افزاری است و تمامی قوانین مهم و پیچیده نرم افزار در این لایه پیاده سازی می گردد. در این بخش نیز با توجه به قوانین پنج گانه SOLID، تمامی Interfaceهای مورد نیاز برای طراحی این لایه ساخته می شوند.



4-6) طراحی لایه Application Service Implementation

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



4-7) طراحی UI برای فروشگاه الکترونیکی

4-7-1) طراحی قالب Admin پروژه

در این بخش از دوره با ارائه یک قالب کاملا حرفه ای برای بخش Admin وبسایت، آماده اجرا پروژه می شویم.


  • طراحی Layout برای بخش Admin مربوط به وبسایت
    صفحه شروع سریع
  • طراحی View Component برای Login نمودن کاربران
  • طراحی View Component برای Logout نمودن کاربران
  • طراحی View Component برای منو اصلی مدیر سایت
  • طراحی Layout Page بصورت Full Ajax برای بخش Admin در وب سایت
  • طراحی فرم های لازم برای ادمین سایت
    فرم های عمومی
    فرم های پیشرفته
  • طراحی فرم مدیریت رده ها
  • طراحی فرم مدیریت محصولات بصورت Full Ajax
  • طراحی File Uploaded بصورت Full Ajax برای مدیریت محصولات
  • طراحی بخش مدیریت کاربران بصورت Full Ajax
  • طراحی بخش مدیریت سفارشات بصورت Full Ajax
  • ارائه پیغام های جذاب به کاربران سایت با استفاده از Sweet Alert
  • قابلیت ویرایش رکوردها در فرم های Modal با ترکیب JavaScript, HTML, CSS


4-7-2) فهرست فعالیت های اجرائی در بخش UI صفحات بازدیدکنندگان فروشگاه

در این بخش از دوره با ارائه یک قالب کاملا حرفه ای برای بخش Admin وبسایت، آماده اجرا پروژه می شویم.


  • طراحی View Component برای ساخت منو فروشگاه
  • طراحی View Component برای Login/Logout مشتریان فروشگاه
    صفحه ورود به سایت
  • طراحی View Component برای محصولات پر بازدید فروشگاه
  • طراحی View Component برای تبلیغ محصول پر سود فروشگاه
  • طراحی Layout حرفه ای برای کنار هم قرار دادن تمامی View Componentها
  • طراحی امکان جستجو محصولات با استفاده از View Componentها
    جستجو محصولات
  • طراحی صفحه جزئیات محصولات
    جزئیات محصولات
  • طراحی View Component برای نمایش محصولات مرتبط
  • طراحی View Component برای امتیازدهی به محصولات
  • طراحی View Component برای ثبت نظرات کاربران
  • طراحی سبد خرید فروشگاه الکترونیک در قالب آموزشی با استفاده از MVC Core
    سبد خرید
  • طراحی فرم ثبت نام کاربران در قالب آموزشی با استفاده از MVC Core
    فرم ثبت نام کاربران
  • طراحی فرم فعالسازی Email کاربران
  • طراحی Panel کاربران فروشگاه الکترونیکی
    پنل کاربران
  • طراحی Actionهای مورد نیاز برای فراموشی رمز عبور
  • طراحی Actionهای مورد نیاز برای تغییر پروفایل کاربر
  • طراحی Actionهای مورد نیاز برای مشاهده سفارشات قبلی


4-8) اجرا صفحه مدیریت رده بندی سایت با استفاده از Razor Pages



4-9) طراحی صفحه مدیریت محصولات به صورت Full Ajax

در این بخش از دوره آموزشی، دانشجویان با مفهوم Ajax آشنا می شوند و یاد می گیرند که چگونه صفحات Full Ajax بسازند، بدون اینکه نیاز به Refresh شدن صفحه داشته باشد.



4-10) طراحی مدیریت نظرات

در این بخش از دوره آموزش، دانشجویان با مفهوم تاثیر مدیر سایت برای نمایش دیدگاه هاآشنا می شوند. دیدگاه های تایید شده مدیر سایت، در این بخش نمایش داده می شوند.



دوره آموزش asp core آموزش asp core دوره آموزشی asp coreکارگاه عملی asp core

فیلم های آموزشی مرتبط با این دوره

آغاز کار با MVC
شروع کار با EF6 در MVC5
آموزش EF6 با رویکرد DataBase First در MVC5
آموزش مقدمات ASP.Net MVC Core
آموزش MVC Core-آموزش پاسخ دهی حافظه(Cache) در MVC Core
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال
آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .