بخش اول: معرفی فریم ورک های SPA و کار با Angular 19
هدف اصلی از این بخش ساخت 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