سرفصلهای دوره آموزش Web API (مقدماتی)
جلسه اول
مطالب این جلسه شامل :
معرفی مدرس
معرفی دوره
پیش نیازهای فنی دوره :
- زبان سی شارپ
- اس کیو ال
نرم افزارهای مورد نیاز :
- Microsoft Visual Studio
- Microsoft Visual Studio Code (VS code)
- .NET 8 SDK
تاریخچه dotnet :
- ابتدا با .NET Framework
- از سال 2017 نسخه بازنویسی شده با نام .NET Core
آخرین نسخه .NET 8 می باشد.
موارد کاربرد Web API :
- ساخت Web Application از نوع SPA
ساخت پروژه :
دو عبارت در پروژه های دات نت :
- Solution : برای دسته بندی یک تا چند پروژه مرتبط با یکدیگر
- Project : به ازای هر موضوع پروژه می توانیم یک یا چند پروژه داشته باشیم :
- Web App :
- Web API
- MVC
- Razor Page
- Blazor
- Class Library
- Console App
- Cross Platform (mobile) :
- Xamarin
- MAUI
- Web App :
مراحل ایجاد پروژه در VS Code :
- ایجاد Solution :
- dotnet new sln -o Session01Apps
- ایجاد پروژه از نوع Web API :
- dotnet new webapi -o Name
بررسی ساختار پروژه
نوشتن یک Controller به همراه Action ها
جلسه دوم
جلسه دوم :
- انجام عملیات Crud در یک Controller
- ساختن Entity ها به همراه DbContext
- اجرای Migration و ساختن دیتابیس
- انجام عملیات Crud در دیتابیس
روش های کار کردن با دیتابیس :
- DB First
- Code First
برای استفاده از Code First بهترین گزینه Entity Framework
نصب package :
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Design
اجرای دستور Migration :
dotnet ef migrations add InitDB
dotnet ef database update
ویژگی IQueryable
ویژگی IEnumrable
جلسه سوم
شروع جلسه سوم
صفحه بندی نتایج :
روش های ذخیره سازی فایل ها :
- ذخیره فایل روی دیتابیس به صورت byte[]
- ذخیره روی disk و نگهداری آدرس روی دیتابیس
- روش FileSteam
کارکردن با Resource فایل ها در vs code :
https://github.com/pmahend1/resxpress
<img src=”data:image/png;base64,content” />
جلسه چهارم
جلسه چهارم
اجرای عملیات CRUD به روش DB First به کمک Dapper
dotnet add package Dapper
dotnet add package Microsoft.Data.SqlClient
dotnet sln MySLN.sln add .\MyProject\MyProject.csproj
dotnet add .\MyProject\MyProject.csproj reference .\Application\Application.csproj
dotnet add package Microsoft.AspNetCore.Http
dotnet add package MiniProfiler.AspNetCore
جلسه پنجم
جلسه پنجم :
App Metrics
https://www.nuget.org/packages/prometheus-net.AspNetCore
dotnet add package prometheus-net.AspNetCore
Grafana = Dashboard Creator
app.UseHttpMetrics();
بحث Security :
- Authentication : کی هستی؟
- Form Auth : از طریق JWT
- Authorization : کنترل دسترسی های کاربر
- دسترسی روی سرویس ها
- دسترسی روی داده ها
- Data Protection :
- عدم دستکاری داده توسط کاربر
dotnet add package Microsoft.EntityFrameworkCore.Tools
dotnet add package Microsoft.AspNetCore.Authentication.JwtBearer --version 7.0.10
جلسه ششم
جلسه ششم :
نکات مهم کنترل دسترسی :
- دسترسی به صورت کاربر یا نقش یا هر دو
- دسترسی روی داده ها
دسترسی های api ها شامل :
- Controller name
- Method name
- Method Type : get , post ,put , delete
استفاده از Cache در ASP.NET Core :
- In-Memory Cache : built-in
- Distributed Cache : Redis
افزودن پروژه به Source Control :
دانلود و نصب git :
جلسه هفتم
جلسه هفتم :
نحوه Encrypt و Decrypt کردن Id قبل از ارسال و پس از دریافت از کلاینت
- Export و Import در اکسل فایل
- FluentValidation
- Scheduler
- Polly
- Publish پروژه :
- روش Publish دستی :
- اجرای دستور Publish و کپی فایل ها روی سرور IIS :
- Vs code :
- dotnet publish –configuration release
- Visual Studio
- Vs code :
- استفاده از Container ها مثل Docker
- اجرای دستور Publish و کپی فایل ها روی سرور IIS :
- روش Publish دستی :
https://www.nuget.org/packages/EPPlus
https://www.nuget.org/packages/FluentValidation.AspNetCore
https://www.nuget.org/packages/polly/
https://www.nuget.org/packages/Quartz.AspNetCore