آموزش ASP.NET Core 10 از صفر تا پیشرفته | توسعه وب با .NET 10
در این دوره با فریمورک قدرتمند ASP.NET Core 10 آشنا میشوید و قدمبهقدم یاد میگیرید چگونه برنامهها و وبسایتهای مدرن، سریع و قابل توسعه را با استفاده از C# و .NET طراحی و پیادهسازی کنید. در ابتدای دوره با ساختار پروژههای ASP.NET Core، نحوه ایجاد پروژه، تنظیمات برنامه، Middleware، Routing، Dependency Injection و ساختار کلی یک برنامه ASP.NET Core آشنا میشوید. سپس معماری ASP.NET Core MVC را بررسی میکنیم و با Controller، Action، View، Model، ViewModel، Model Binding، Validation و Razor Viewها کار خواهیم کرد.
سرفصل جلسات دوره
33 جلسهASP.NET Core چیست؟ معرفی .NET 10 و ASP.NET Core 10 تفاوت ASP.NET Core با ASP.NET Framework معماری Cross-Platform کاربرد ASP.NET Core در Web و API ساختار پروژههای ASP.NET Core آشنایی با SDK و Runtime نصب و آمادهسازی محیط توسعه Visual Studio و VS Code ایجاد اولین پروژه ASP.NET Core 10 اجرای پروژه و آشنایی با محیط Development
بررسی فایلهای پروژه فایل .csproj Program.cs Configuration Dependency Injection Environmentها Development و Production Static Files Routing Middleware Request و Response چرخه پردازش HTTP Request
Middleware چیست؟ Pipeline پردازش درخواست ترتیب اجرای Middlewareها Middlewareهای داخلی ساخت Custom Middleware استفاده از Use استفاده از Run استفاده از Map مدیریت Exception با Middleware Middleware برای Logging Middleware برای Authentication و Authorization Best Practiceهای Middleware
مفهوم Routing Conventional Routing Attribute Routing Route Parameter Optional Parameter Constraintها Route Name Route Group Endpoint Mapping Minimal API Routing مدیریت مسیرهای پیچیده طراحی استاندارد URL
Minimal API چیست؟ ساخت اولین Minimal API تعریف Endpoint GET، POST، PUT و DELETE دریافت Parameter Query String Route Parameter Request Body Response Dependency Injection در Minimal API گروهبندی Endpointها Validation مدیریت Exception ساخت API واقعی با Minimal API
معماری MVC Model View Controller ساخت Controller Action Method Routing در MVC ViewData ViewBag TempData ارسال Model به View Partial View Layout View Component Tag Helperها
Razor چیست؟ Syntaxهای Razor نمایش Dynamic Data Conditional Rendering Loop در Razor Layout Partial Razor Pages چیست؟ Page Model Handlerها Model Binding در Razor Pages Validation در Razor Pages
REST API چیست؟ اصول طراحی REST ساخت Web API Controllerهای API HTTP Methodها GET POST PUT PATCH DELETE Status Codeها Request و Response DTO Model Binding Content Negotiation طراحی API استاندارد
Model Binding چیست؟ Binding از Route Binding از Query Binding از Body Binding از Header Data Annotation Required StringLength Range EmailAddress Validation سفارشی FluentValidation مدیریت خطاهای Validation ساخت Response استاندارد برای خطاها
مفهوم Dependency Injection IoC چیست؟ Service Registration Constructor Injection Singleton Scoped Transient Interface و Implementation مدیریت وابستگیها Dependency Injection در Controller Dependency Injection در Minimal API Best Practiceهای DI
Configuration در ASP.NET Core appsettings.json appsettings.Development.json Environment Variables User Secrets Options Pattern IOptions IOptionsSnapshot IOptionsMonitor مدیریت Connection String مدیریت تنظیمات Production مدیریت اطلاعات حساس
Logging چیست؟ ILogger Log Levelها Information Warning Error Critical Structured Logging Exception Handling Global Exception Handler Problem Details ثبت خطاها مدیریت خطا در API طراحی Error Response استاندارد
EF Core چیست؟ ORM چیست؟ نصب و پیکربندی EF Core DbContext DbSet Entity Connection String Database Provider Migration ایجاد Database Update Database Seed Data Tracking و No Tracking Query با LINQ مدیریت Connection
One-to-One One-to-Many Many-to-Many Foreign Key Primary Key Navigation Property Fluent API Data Annotation Cascade Delete Composite Key Index Unique Constraint طراحی Database مناسب برای پروژههای واقعی
LINQ چیست؟ Where Select OrderBy ThenBy GroupBy Join Include Any All Count First FirstOrDefault Single Skip Take Pagination با LINQ بهینهسازی Queryه
Repository Pattern چیست؟ Service Layer چیست؟ Generic Repository Repository Interface پیادهسازی Repository مدیریت Business Logic جداسازی Data Access Dependency Injection مزایا و معایب Repository Pattern طراحی معماری قابل نگهداری
Authentication چیست؟ Authorization چیست؟ ASP.NET Core Identity User Management Registration Login Password Hashing مدیریت Roleها مدیریت Claimها User Profile تغییر Password Reset Password Email Confirmation مدیریت دسترسی کاربران
JWT چیست؟ ساخت Access Token Claims Token Validation Bearer Authentication Refresh Token Expiration مدیریت Token Role-Based Authorization Policy-Based Authorization محافظت از Endpointها امنیت API
Role-Based Authorization Policy-Based Authorization Claims-Based Authorization Custom Authorization Policy Authorization Handler دسترسی بر اساس Permission دسترسی به منابع مدیریت دسترسی در API طراحی سیستم Permission
Upload File IFormFile Multiple File Upload ذخیره فایل روی Server نامگذاری امن فایل محدودیت حجم فایل Validation فایل دانلود فایل حذف فایل ذخیره اطلاعات فایل در Database آپلود تصاویر نکات امنیتی File Upload
مفهوم Cache Memory Cache Distributed Cache Redis Cache کردن Response Cache کردن دادههای Database Cache Expiration Cache Invalidation استفاده از Redis طراحی استراتژی Cache
Background Task چیست؟ Hosted Service BackgroundService اجرای Jobهای زمانبندیشده پردازش Queue مدیریت CancellationToken اجرای عملیات طولانی مدیریت خطا در Background Service کاربرد Background Service در پروژه واقعی
SignalR چیست؟ WebSocket چیست؟ ساخت Hub اتصال Client به Hub ارسال پیام Real-Time ارسال پیام به کاربران Groupها Authentication در SignalR Notification Chat Real-Time پیادهسازی قابلیتهای Real-Time
HttpClient HttpClientFactory ارسال GET Request ارسال POST Request Header Query Parameter ارسال JSON دریافت JSON Timeout Retry ارتباط با APIهای خارجی مدیریت خطاهای سرویسهای خارجی
OpenAPI چیست؟ Swagger چیست؟ فعالسازی مستندات API نمایش Endpointها تعریف Request و Response مستندسازی API Authentication در Swagger JWT در Swagger تست API با Swagger UI تولید مستندات حرفهای API
اهمیت Testing Unit Test Integration Test تست Controller تست Service تست Repository تست API استفاده از xUnit Mocking Moq Test Database تست Authentication تست Validation
Clean Architecture چیست؟ Separation of Concerns لایه Domain لایه Application لایه Infrastructure لایه API Dependency Rule Repository Interface Serviceها DTOها Mapping Dependency Injection پیادهسازی Clean Architecture در ASP.NET Core
SOLID Repository Pattern Unit of Work Factory Pattern Strategy Pattern Specification Pattern CQRS Mediator Pattern آشنایی با MediatR انتخاب Pattern مناسب جلوگیری از پیچیدگی معماری
Performance در ASP.NET Core بهینهسازی Queryهای EF Core AsNoTracking Pagination Caching Async/Await کاهش مصرف Memory بهینهسازی API Response Compression مدیریت Connectionها بررسی Performance Profiling جلوگیری از N+1 Query
اصول امنیت Web HTTPS CORS CSRF XSS SQL Injection Password Security مدیریت Secretها JWT Security Rate Limiting Secure Headers Input Validation File Upload Security مدیریت دسترسی کاربران Best Practiceهای امنیتی ASP.NET Core
Container چیست؟ Docker چیست؟ ساخت Dockerfile برای ASP.NET Core Multi-Stage Build ساخت Docker Image اجرای Application در Container Docker Compose اتصال API به Database مدیریت Environment Variableها Health Check آمادهسازی پروژه برای Production
مفهوم CI/CD آمادهسازی پروژه برای Deployment Build و Publish GitHub Actions ساخت Pipeline اجرای تستها در Pipeline Build کردن Docker Image Push کردن Image Deploy روی Server مدیریت Environmentها Logging در Production
<p>در پروژه نهایی یک <strong>Web API حرفهای و قابل استفاده در محیط Production</strong> طراحی و پیادهسازی میشود:</p><ol><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>طراحی معماری پروژه</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>پیادهسازی Clean Architecture</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>ایجاد Database</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>پیادهسازی Entity Framework Core 10</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>طراحی Entityها و Relationshipها</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>پیادهسازی Repository و Service</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>Dependency Injection</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>پیادهسازی Authentication</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>JWT و Refresh Token</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>Role و Permission</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>پیادهسازی CRUD</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>DTO و Mapping</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>Validation</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>Global Exception Handling</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>Logging</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>Pagination و Filtering</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>Caching با Redis</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>مستندسازی با Swagger/OpenAPI</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>Unit Test و Integration Test</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>Dockerize کردن پروژه</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>اتصال Docker به Database</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>آمادهسازی CI/CD</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>Deployment پروژه روی Server</li><li data-list="bullet"><span class="ql-ui" contenteditable="false"></span>بهینهسازی Performance و امنیت</li></ol><p><br></p>