• تهرانپارس ، خ شهید محمود آمینه بزرگراه رسالت، پلاک 213، طبقه2، واحد7

  • 021-77295097 0912-8099518

  • شنبه تا پنجشنبه۹ صبح تا ۶ بعد از ظهر

پکیج آموزش معماری پیاز(Onion Architecture)

درباره دوره

در این دوره آموزشی به آموزش Angular9 ، آموزش Web API و ASP.NET Core می پردازیم.

تاریخ شروعتعداد ساعتساعت برگزارینام استادهزینه (تومان)وضعیتثبت نام
1399/05/2748دوشنبه ها و چهارشنبه ها 17:30 الی 21:00مهندس عباس آبادی1,350,000درحال ثبت نامثبت نام

پیشنیاز ها

  • تسلط بر زبان #C و مفاهیم برنامه نویسی وب
  • تسلط بر HTML ، CSS و سابقه کار با Javascript

مخاطبین

  • شرکت های تولید نرم افزاری که از روش های سنتی طراحی وب مانندNet Web Forms و یا ASP.NET MVC جهت پیاده سازی نرم افزارهای تحت وب استفاده می کنند و یا برای پیاده سازی صفحات پویا و Ajax Base از روش های قدیمی مانند jQuery استفاده میکنند و قصد دارند در پروژه های جدید به سمت تولید نرم افزارهای وب SPA بروند.
  • شرکت های تولید نرم افزاری که از تکنولوژی های موجود در .NET Framework (مانند Web Api) برای تولید سرویس های REST استفاده می کنند و قصد دارند در پروژه های جدید ازNET Core استفاده کنند.

اهداف دوره

دانشجو در این دوره با مفاهیم SPA ، معماری سرویس گرا و سرویس های REST آشنا شده و نحوه پیاده سازی این نوع سرویس ها را با جدید ترین تکنولوژی مایکروسافت به نام ASP.NET Core فرا می گیرد. سپس برای پیاده سازی Front-end ، ابتدا زبان TypeScript و سپس تکنولوژی Angular 9 را فرا می گیرد. همچنین جهت ساخت یک Web Application مدرن را آموزش می بیند.

سرفصل دوره:

بخش اول: معرفی فریم ورک های SPA و کار با Angular 9

هدف اصلی از این بخش ساخت SPA Client برای پروژه است. در این بخش تمامی تکنیک های مورد نیاز برای توسعه رابط کاربری برنامه با استفاده از angular 9 تدریس خواهد شد. در این بخش با ساخت 2 پروژه کاربردی، مفاهیم و مقدمات Angular به دانشجویان آموزش داده خواهد شد. همچنین در ساخت پروژه ها از طراحی بسیار زیبای Material Design استفاده خواهد شد.

مروری بر مفاهیم SPA

  • بررسی چالش ها و مشکلات طراحی وب سنتی (استفاده از Postback و لود مجدد صفحات)
  • بررسی مفاهیم اولیه و معماری سایت های SPA
  • بررسی چالش ها و مشکلات استفاده از jQuery Ajax
  • بررسی فریم ورک های نسل دوم SPA مانند ( Angular8 ،Reactjs, vuejs ) و قابلیت های آنان

راه اندازی محیط توسعه 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

Service ها و DI در Angular

  • آشنایی با مکانیزم Dependency Injection در Angular
  • آشنایی با مفاهیم Injector, Provider و Dependency
  • آشنایی با Provider های مختلف (Class, Factory, Value و ... )
  • پیاده سازی Service ها و Inject آنها
  • آشنایی با lifecyle های سرویس ها در angular

کار با فرم ها در 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

Publish و Deploy پروژه های Angular

  • آشنایی با روش های مختلف Compile در Angular
  • بررسی نحوه ی کار AOT و محدودیت های آن
  • بررسی پارامترهای Build مانند BaseHref و Target

 

بخش دوم: 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
  • نگاهی بر ORM های معروف .net
  • مقایسه EF و NHibernate
  • پیاده سازی Generic Repository
  • پیاده سازی لایه Infrastructure
  • پیاده سازی لایه Presentation
  • پیاده سازی ارتباط بین لایه ها با استفاده از Dependency Injection

دسترسی به داده ها با 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
  • آموزش مدیریت فایل ها در Visual Studio

راه اندازی و Host کردن یک پروژه ی ASP.NET Core

  • مفهوم CORS و نحوه فعال سازی آن درNET Core
  • بررسی روش های Hosting مختلف درNET Core
  • آشنایی با Kestrel
  • آشنایی با IWebHostBuilder و IHostBuilder
  • بررسی WebHost و GenericHost