بخش اول: معرفی فریم ورک های SPA و کار با Angular 9
هدف اصلی از این بخش ساخت SPA Client برای پروژه است. در این بخش تمامی تکنیک های مورد نیاز برای توسعه رابط کاربری برنامه با استفاده از angular 9 تدریس خواهد شد. در این بخش با ساخت 2 پروژه کاربردی، مفاهیم و مقدمات Angular به دانشجویان آموزش داده خواهد شد. همچنین در ساخت پروژه ها از طراحی بسیار زیبای Material Design استفاده خواهد شد.
راه اندازی محیط توسعه Angular
- آشنایی با TypeScript, NPM, Angular CLI و نصب آن ها
- ECMA 6
- معرفی IDE های مناسب برای توسعه انگولار
- معرفی افزونه های پرکاربرد VS Code جهت توسعه پروژه های Angular
مقدمات و مفاهیم اولیه ی Angular
- آشنایی با ساختار و معماری انگولار
- آشنایی با Module ، Component و Service
- آشنایی با Template و View ها
- آشنایی با مکانیزم Dependency Injection در Angular
- آموزش Angular CLI و دستورات آن
- ng new
- ng serve
- ng generate
- ng build
- ng test
Component ها و Directive ها در Angular
- بررسی مفهوم Directive و انواع آن
- آشنایی با Metadata و Annotation های Component ها
- Component Selector و حالت های مختلف آن (ByTagName, ByCss, …)
- نحوه تعیین Component Template
- نحوه ی کار با CSS ها و اعمال CSS به آنها
- بررسی انواع Two-Way Binding
- بررسی Life Cycle یک Component
- بررسی Directives های پرکاربرد Angular مانند NgIf, NgSwitch, NgStyle
- آموزش Component Interaction و ارتباط بین کامپوننت ها
- Input
- Output
- ViewChild
کار با فرم ها در Angular
- آشنایی با Template Driven Form
- آشنایی با Reactive Form
- آموزش کار با FormGroup, FormControl
- آموزش Validation فرم های Angular
- آموزش کار با فایل و آپلود فایل در Angular
ارتباط با سرور در Angular
- آشنایی با Observable ها و کتابخانه ی RxJS
- نصب و اضافه کردن ماژول HttpClient
- نحوه ارسال درخواست های Http مختلف
- مدیریت خطاهای دریافتی از سرور
- مکانیزم Retry در کتابخانه ی RxJs
- آشنایی با Behavior Subject
- شنایی با Interception و نحوه نوشتن Interceptor
Routing در Angular
- آشنایی با Client-Side Routing در SPA ها
- نصب و اضافه کردن ماژول Routing
- نحوه تنظیم Route های مختلف
- استفاده از RouterOutlet
- استفاده از RouterLink
- آشنایی با استراتژی های مختلف Routing
- پاس دادن مقادیر با Route Parameters
- کار با ActivatedRoute و همچنین Event های Router مانند NavigationStart
- نحوه راه اندازی NestedRouting
- نحوه کار با Routing Guards
بخش دوم: Asp.net core web api
هدف از این بخش آموزش مفاهیم .net core و web api است. همچنین مواردی همچون Archtecture و Security در این بخش مورد بحث و بررسی قرار خواهد گرفت. در این بخش با ایجاد پروژه های متنوع Use Case ها و تکنیک های متفاوت به دانشجویان آموزش داده خواهد شد.
بررسی مفاهیم REST
- تعریف REST و RESTful API
- بررسی 7 Constraint در REST
- Client-Server
- Uniform Interface
- Layered System
- Cache
- Stateless
- Code-on-demand
- بررسی HATEAOS) Hypermedia As The Engine Of Application State)
- بررسی ION Specification
- بررسی Richardson Maturity Model
- قوانین طراحی سرویس های REST
- آشنایی با Verb های HTTP مانند Put, Delete, Get, Post, Options, Patch
- بررسی موضوع Content-Negotiation
مقدمات ASP.NET Core
- آشنایی با .NET Core
- معرفی NET Core
- مزایا و قابلیت هایNET Core
- آشنایی با .NET Core CLI
- بررسی Middlewareها در NET Core
- آشنایی با مکانیزم Routing
- نحوه انجام Paging , Sorting و Filtering
- آشنایی با Filter ها و نوشتن Custom Filter
- آشنایی با Application Part ها
- آشنایی با Package Manager ها و نحوه کار با آنها در Visual Studio 2019
- آشنایی با Configuration Provider ها
- مدیریت خطاها و Exception ها
مباحث پیشرفته ASP.NET Core
- نحوه ی مستند سازی API و کار با ابزار Swagger
- مدیریت تغییرات و استراتژی های Versioning
- بررسی مکانیزم Caching و کار با Header های مخصوص به Cache
- فشرده سازی Response ها
- آشنایی با Asynchronous Programming و Controller های Async در NET Core
آموزش کامل Dependency Injection
- نگاهی به اصول طراحی SOLID
- آموزش اصل (DIP) Dependency Inversion Principle
- loosely coupled components
- آشنایی با مفهوم Dependency Injection (DI)
- آموزش Inversion Of Control (IOC)
- Constructor Injection
- Property Injection
- Method Injection
- کار با Built-in DI Container .Net Core
- تغییر دادن Built-in DI Container .Net Core
- آشنایی با castle windsor
- آشنایی با Autofac
- آشنایی با انواع lifecycle ها
- singleton
- transient
- scoped
معماری نرم افزار
- آشنایی با معماری لایه ای
- آشنایی با onion architecture و نحوه لایه بندی در آن
- تحلیل، بررسی و پیاده سازی لایه های مختلف در معماری onion
- پیاده سازی لایه Domain
- مفهوم Business Logic و نحوه جداسازی آن از زیرساخت نرم افزار
- پیاده سازی لایه Application
- مفهوم Application Logic و وظایف لایه Application
- پیاده سازی لایه Repository
- پیاده سازی Generic Repository
- پیاده سازی لایه Infrastructure
- پیاده سازی لایه Presentation
دسترسی به داده ها با Entity Framework Core
- آشنایی با EF Core
- Installing EF Core
- آشنایی با رویکرد های استفاده از EF Core
- Database First
- Code First
- Introducing DBContext
- تعریف DbSet ها
- Setting Connection String
- EF Core Migration
- Adding Data To Database
- Updating Data
- Deleting Data
- Query Data From Database
- Mapping (Fluent API & Data Annotation)
Authentication & Authorization
- آشنایی با Token Authentication
- آشنایی با OAuth و OpenId Connect
- آشنایی با انواع Token مانند ( Access Token, Id Token, Refresh Token )
- آشنایی با Identity Server 4 و راه اندازی آن
- آشنایی با انواع Grant-type ها در IdentityServer4
- ClientCredentials
- Authorization Code
- Resource Owner Password
- ارتباط بین کلاینت های مختلف با IdentityServer
- برقراری امنیت Api به کمک IdentityServer
- ایجاد Token برای احراز هویت و نحوه دریافت آن
- پیاده سازی انواع سطح دسترسی و نقش های مختلف در سیستم
Git & Source Control
- git چیست؟
- آموزش Source Control
- آشنایی با Source Control های مختلف مثل gitlab و github
- تفاوت git و github
- آموزش نحوه کار با سایت github.com
- آموزش دستورات مهم و کاربردی git
- init
- status
- commit
- push
- pull
راه اندازی و Host کردن یک پروژه ی ASP.NET Core
- مفهوم CORS و نحوه فعال سازی آن درNET Core
- بررسی روش های Hosting مختلف درNET Core
- آشنایی با Kestrel
- آشنایی با IWebHostBuilder و IHostBuilder
- بررسی WebHost و GenericHost