0 0 تومان

دوره API نویسی اصولی و حرفه ای در ASP.NET Core

دوره API نویسی اصولی و حرفه ای در ASP.NET Core

در این دوره همه نکات مهم و پرکاربرد در API نویسی اصولی و حرفه ای در ASP.NET Core بررسی شده اند.

سورس کامل پروژه نهایی دوره در گیتهاب در دسترس عموم قرار گرفته است.

تکنولوژی، ابزار ها و قابلیت ها

در این دوره سعی شده بهترین و محبوب ترین تکنولوژی ها، کتابخانه ها و ابزار ها داخل پروژه استفاده شود. همچنین Best Practice های پرفرمنسی و امنیتی بعلاوه تکنیک های پرکاربرد را بررسی و در قالب یک معماری حرفه ای و اصولی استفاده می کنیم.

  • لایه بندی اصولی پروژه (Project Layering and Architecture) : در این دوره لایه بندی اصولی یک پروژه را از ابتدا شروع و هر بخش را بررسی می کنیم. همچنین مباحث Repository و UOW رو هم بررسی می کنیم.
  • احراز هویت (Authentication)
    • ASP.NET Core Identity : احراز هویت توسط Identity + سفارشی سازی
    • (Json Web Token) JWT : احراز هویت توسط Jwt + یکپارچه سازی آن با Identity
    • (Json Web Encryption) JWE : ایمن سازی توکن ها بوسیله رمزنگاری توکن (JWE)
    • Security Stamp : جلوگیری از اعتبارسنجی توکن به هنگام تغییر دسترسی های کاربر جهت امنیت بیشتر
    • Claims : کار با Claim ها و تولید خودکار آنها توسط ClaimsFactory
  • Logging (ثبت خطا ها)
    • Elmah : استفاده از Elmah برای لاگ خطا ها در Memory, XML File و Database
    • NLog : استفاده از NLog برای لاگ خطا ها در File و Console
    • Custom Middleware : نوشتن یک میدلویر سفارشی جهت لاگ تمامی خطا (Exception) ها
    • Custom Exception : نوشتن Exception برای مدیریت ساده تر خطا ها
    • Sentry : ثبت خطا ها در سیستم مدیریت لاگ sentry.io (مناسب برای پروژه های بزرگ)
  • تزریق وابستگی (Dependency Injection)
    • ASP.NET Core IOC Container : استفاده از Ioc container داخلی Asp Core
    • Autofac : استفاده از محبوب ترین کتابخانه Autofac (Ioc Container)
    • Auto Registeration : ثبت خودکار سرویس ها توسط یک تکنیک خلاقانه با کمک Autofac
  • ارتباط با دیتابیس (Data Access)
    • Entity Framework Core : استفاده از EF Core
    • Auto Entity Registration : ثبت Entity های DbContext به صورت خودکار توسط Reflection
    • Pluralizing Table Name : جمع بندی نام جداول EF Core به صورت خودکار توسط کتابخانه Pluralize.NET و Reflection
    • Automatic Configuration : اعمال کانفیگ های EntityTypeConfiguration (FluentApi) به صورت خودکار توسط Reflection
    • Sequential Guid : بهینه سازی مقدار دهی identity برای Guid به صورت خودکار توسط Reflection
    • Repository : توضیحاتی در مورد معماری اصولی Repository در EF Core
    • Data Intitializer : یک معماری اصولی برای Seed کردن مقادیر اولیه به Database
    • Auto Migrate : آپدیت Database به آخرین Migration به صورت خودکار
    • Clean String : اصلاح و یک دست سازی حروف "ی" و "ک" عربی به فارسی و encoding اعداد فارسی در DbContext به صورت خودکار به هنگام SaveChanges
  • Versioning : نسخه بندی و مدیریت نسخه های پروژه + سفارشی سازی و ایجاد یک معماری حرفه ای
  • ابزار (Swashbuckle) Swagger
    • Swagger UI : ساخت یک ظاهر شکیل به همراه داکیومنت Aciton ها و Controller های پروژه و امکان تست API ها توسط Swagger UI
    • Versioning : یکپارچه سازی اصولی Swagger با سیستم نسخه گذاری (Versioning)
    • JWT Authentication : یکپارچه سازی Swagger با سیستم احراز هویت بر اساس Jwt
    • OAuth Authentication : یکپارچه سازی Swagger با سیستم احراز هویت بر اساس OAuth
    • Auto Summary Document Generation : تولید خودکار داکیومنت (توضیحات) برای API های پروژه
    • Advanced Customization : سفارشی سازی های پیشرفته در Swagger
  • دیگر قابلیت ها
    • API Standard Resulting : استاندارد سازی و یک دست سازی خروجی API ها توسط ActionFilter
    • Automatic Model Validation : اعتبار سنجی خودکار
    • AutoMapper : جهت Mapping اشیاء توسط کتابخانه محبوب AutoMapper
    • Auto Mapping : سفارشی سازی وایجاد یک معماری حرفه ای برای Mapping اشیا توسط Reflection
    • Generic Controller : ساخت کنترلر برای عملیات CRUD بدون کد نویسی توسط ارث بری از CrudController
    • Site Setting : مدیریت تنظیمات پروژ توسط Configuration و ISnapshotOptions
    • Postman : آشنایی و کار با Postman جهت تست API ها
    • Minimal Mvc : حذف سرویس های اضافه MVC برای افزایش پرفرمنس در API نویسی
    • Best Practices : اعمال Best Practices ها جهت بهینه سازی، افزایش پرفرمنس و کدنویسی تمیز و اصولی
    • و چندین نکته مفید دیگر ...

مزیت اصلی این دوره؟

به جای اینکه ماه ها وقت صرف کنین تحقیق کنین، مطالعه کنین و موارد کاربردی و مهم API نویسی رو یاد بگیرین توی این دوره همشو یک جا و سریع یاد میگیرین و تو وقتتون صرفه جویی میشه. همچنین یک پله هم به Senior Developer شدن نزدیک میشین ;)

پیش نیاز این دوره :

سطح دوره پیشرفته بوده و برای افراد مبتدی مناسب نیست.

این دوره، آموزش ASP.NET Core نیست و زیاد روی مباحثش عمیق نمیشیم و فقط به مباحثی می پردازیم که مرتبط با API نویسی توی ASP.NET Core هستش.

انتظار میره برای شروع این دوره پیش نیاز های زیر رو داشته باشین :

  1. تسلط نسبی بر روی زبان سی شارپ
  2. آشنایی با پروتکل Http و REST
  3. آشنایی با Entity Framework (ترجیحا EF Core)
  4. آشنایی با معماری ASP.NET MVC یا ASP.NET Core (و ترجیحا آشنایی با WebAPI)

سرفصل های دوره API نویسی اصولی و حرفه ای در ASP.NET Core

0 نمایش رایگان

دموی دوره API نویسی ASP.NET Core

دموی کلی از دوره و قابلیت ها، تکنولوژی ها و ابزار های استفاده شده در پروژه

 
1

Layering & Architecture

ایجاد پروژه و بررسی معماری و لایه بندی آن

 
2

Entities Layer

تکمیل لایه Entities

 
3

Data Layer

تکمیل DbContext لایه Data و استفاده از EF Core

 
4

Repository

تکمیل Repository لایه دیتا Data و بررسی لایه Service

 
5

Controller

بررسی و ساخت اولین Controller و تست API ها با Postman

 
6 چند دقیقه ی ابتدایی رایگان

Standard Api Result

یک دست سازی و استاندارد سازی خروجی API ها

 
7

Automatic Validation

اعتبار سنجی خودکار مقادر ارسالی از کلاینت به سرور

 
8 چند دقیقه ی ابتدایی رایگان

Exception Handling

مدیریت خطا ها توسط Middleware سفارشی و استفاده از Custom Exteptions

 
9 چند دقیقه ی ابتدایی رایگان

Exception Logging

لاگ خطا ها و پیام های برنامه توسط Elmah و NLog و ذخیره در دیتابیس و Sentry.io

 
10 چند دقیقه ی ابتدایی رایگان

JWT Authentication

بررسی روش های احراز هویت Token base و Claim به همراه پیاده سازی احراز هویت توسط JWT

 
11 چند دقیقه ی ابتدایی رایگان

JWT Encryption & Security

افزایش امنیت JWT توسط رمزنگاری (Encryption) توکن (JWE) و استفاده از SecurityStamp (مهر امنیتی)

 
12 چند دقیقه ی ابتدایی رایگان

Identity & Customization

افزودن Identity به همراه سفارشی سازی و یکپارچه سازی آن با JWT

 
13 چند دقیقه ی ابتدایی رایگان

Autofac IOC Container

استفاده از کتابخانه محبوب و قدرتمند Autofac جهت تزریق وابستگی

 
14

AutoMapper

ساده سازی و کاهش کد نویسی توسط کتابخانه محبوب AutoMapper

 
15

AutoMapper Advanced & CrudController (Generic)

ریفکتورینگ کد ها، بررسی نکات Reflection ای به همراه Automapper و ساخت کنترولر با 4 عمل اصلی CURD بدون کد نویسی

 
16 چند دقیقه ی ابتدایی رایگان

Api Versioning

مدیریت نسخه بندی API ها توسط مکانیزم Versioning به همراه یک معماری اصولی

 
17 چند دقیقه ی ابتدایی رایگان

Swagger Part1

افزودن ابزار فوق العاده کاربردی Swagger برای تست و داکیومنت نویسی API ها + سفارشی سازی و یکپارچه سازی با قابلیت Versioning

 
18

Swagger Part2

سفارشی سازی بیشتر Swagger و یکپارچه سازی آن با سیستم احراز هویت JWT و OAuth

 
19

Swagger Part3

سفارشی سازی بیشتر Swagger + پیاده سازی مکانیزم Seed یا Initialize کردن مقادیر اولیه در دیتابیس توسط یک معماری اصولی

 

پیش نمایش دوره API نویسی اصولی و حرفه ای در ASP.NET Core

 درس شماره 0  (دموی دوره) زمان فیلم:  21:07

   دانلود مستقیم پیش نمایش (دموی دوره) - حجم دانلود 93 مگابایت (کلیک کنید +)

 درس شماره 6  (Standard Api Result) زمان فیلم:  02:33

   دانلود مستقیم پیش نمایش (Standard Api Result) - حجم دانلود 3 مگابایت (کلیک کنید +)

 درس شماره 8  (Exception Handling) زمان فیلم:  13:13

   دانلود مستقیم پیش نمایش (Exception Handling) - حجم دانلود 17 مگابایت (کلیک کنید +)

 درس شماره 9  (Exception Logging) زمان فیلم:  15:13

   دانلود مستقیم پیش نمایش (Exception Logging) - حجم دانلود 25 مگابایت (کلیک کنید +)

 درس شماره 10  (JWT Authentication) زمان فیلم:  37:19

   دانلود مستقیم پیش نمایش (JWT Authentication) - حجم دانلود 56 مگابایت (کلیک کنید +)

 درس شماره 11  (JWT Encryption & Security) زمان فیلم: 11:40

   دانلود مستقیم پیش نمایش (JWT Encryption & Security) - حجم دانلود 14 مگابایت (کلیک کنید +)

 درس شماره 12  (Identity & Customization) زمان فیلم:  19:43

   دانلود مستقیم پیش نمایش (Identity & Customization) - حجم دانلود 24 مگابایت (کلیک کنید +)

 درس شماره 13  (Autofac IOC Container) زمان فیلم:  13:00

   دانلود مستقیم پیش نمایش (Autofac IOC Container) - حجم دانلود 16 مگابایت (کلیک کنید +)

 درس شماره 16  (Api Versioning) زمان فیلم:  13:34

   دانلود مستقیم پیش نمایش (Api Versioning) - حجم دانلود 17 مگابایت (کلیک کنید +)

 درس شماره 17  (Swagger Part1) زمان فیلم:  11:50

   دانلود مستقیم پیش نمایش (Swagger Part1) - حجم دانلود 14 مگابایت (کلیک کنید +)

 

نظرات کاربران

نظرات کاربران  
سلام، خسته نباشید
ممنون از دوره خوبتون، بسیار عالی بود.
من تقریبا تمام امکاناتی که گفتید رو به پروژه اضافه کردم
و برای بخش یونیت تست نمیدونم اینترفیس imapper و usermanager رو چه جوری وقتی که میخایم سرویس ها رو در قسمت تست بسازم، ایجاد کنم و بدم به ورودی سرویس
با سلام و احترام
واقعا یه ذوره عالی بود
ممنون از مدرس عزیز.
من دارم با دات نت 6 کار میکنم.
اون قسمتی که فیلتر مینوسیم در واقع این فیلتر ApiResultFilterAttribute
نکته ای که هست هیچ وقت وارد این قسمت نمیشه
badRequestObjectResult.Value is SerializableError errors
میخواستم بدونم مشکل از کجاست؟
با سلام و عرض ادب.
با توجه به این که برخی سایت ها از نظر شرعی اجازه داده اند که اگر یکی از اعضای تیم آموزشی را بخرد بقیه نیز میتوانند از آن استفاده کنند ، آیا مدرس محترم اجازه چنین امری را می دهند؟( از نظر شرعی)
با سلام و درود خدمت استاد گرامی . بدون تعارف بگم یکی از بهترین دوره های موجود در بازار این دوره است . واقعا ممنونم .
فقط یه سوال داشتم توی بهش JWT گفتیم برای اینکه هی به دیتا بیش کویری نزنیم و اطلاعات کاربرو بگیریم اطلاعاتو توی توکن ذخیره و دریافت میکنیم ولی بعد از این کار اومدید بخاطر دریافت آخرین تعییرات توکن ادیت رو هر بار از دیتا بیس میگرفتید خب چه تفاوتی داشت که کل اطلاعات رو دیتا بیس میگرفتیم؟ما که در هر صورت برای هر درخواست داریم به دیتابیس کویری میزنیم
واقعا عالی بود
در صورت امکان آموزش https://github.com/dotnet-architecture/eShopOnContainers (DDD و داکر و ماکروسرویس) رو هم قرار بدین
مدرس واقعا مسلط هست و بسیار عالی مطالب رو انتقال میده ، بنده به شدت راضی بودم ، سر فصل ها عالی .. ممنون اقای ابراهیمی
لطفا در صورت امکان اموزش های بیشتری با این سطح از کیفیت قرار بدین
درود بر شما
من سی شارپ رو در حد مقدماتی بلدم و تا حدودی هم با mvc,core,ef core کار کردم
بنظرتون میتونم در این دوره شرکت کنم یا اینکه دوره های قبلی asp core سایتتون رو ببینم و مطالعه کنم و بعد بیام سمت آموزش شما؟
سلام
واقعا ممنونم از این دوره ، البته نمیشه اسمش رو دوره گذاشت، یک دانشگاه از مطالب بود که همه مفید و کاربردی بودن. عملا من با خیلی از این موارد کار کرده بودم، ولی واقعا قبل از این دوره درکشون نکرده بودم.
این سطح از توضیح و باز کردن مطلب توسط مدرس، فقط میتونه از تجربه و تبحر ایشون ناشی بشه.
خدا خیرتون بده واقعا آقای ابراهیمی. من خیلی چیزا یاد گرفتم از دورتون
سلام لطفا امکان خرید ب صورت بخش ها جداگانه را فعال کنید
سلام، متأسفانه بدلیل پیوسته بودن مطالب، امکان پذیر نیست. لطفا دوره بالا رو بصورت کامل خرید فرمایید.
سلام. اموزش های شما رو دیدم.. الان میخام در ریپوزیتوری میخام چند جدول رو جوین بزنم، میشه راهنمایی کنید؟؟
سلام. اساسا با وجود Navigation Property ها خیلی کم پیش میاد که Join نیاز بشه ولی به هرحال شما با استفاده از خاصیت Table عه Repostitory میتونین هر join ایی لازم دارید بزنید.
مثلا

Method Syntax
------------
var list = personRepository.Table
.Join(AddressInfoRepository.Table,
person => person.Id,
addressInfo => addressInfo.PersonId,
(person, addressInfo) => new {
FirstName = person.FirstName,
LastName = person.LastName,
Address1 = addressInfo.Address1 }
).ToList();

Query Syntax
------------
var list = (from person in personRepository.Table
join addressInfo in AddressInfoRepository.Table
on person.Id equals addressInfo.PersonId
select new {
FirstName = person.FirstName,
LastName = person.LastName,
Address1 = addressInfo.Address1
}).ToList();
سلام خسته نباشید! نخوه خرید دوره به چه صورتی هست، با خرید دوره میتونیم فایل های آموزش رو دانلود کنیم و بصورت آفلاین ببینیم یا باید حتما به صورت آنلاین استفاده کنیم؟
سلام، برای خرید دوره بالا، ابتدا عضو سایت بشید و سپس در صفحه بالا روی دکمه "افزودن به سبد" کلیک کنید و مراحل خرید را طی نمایید. بمحض اینکه هزینه دوره پرداخت شود، از منوی بالای سایت و قسمت "منوی کاربری -> خریدهای قبلی من" لینک دانلود در اختیار شما قرار خواهد گرفت.
بعد از دانلود فیلم های آموزشی، دوره را روی هر کامپیوتر یا مبایلی می توانید مشاهده کنید. فرمت فایل ها بصورت MP4 است.
با سلام. آیا در این دوره ساخت فرم ثبت نام کاربران و ارسال ایمیل یا sms فعالسازی نیز اموزش داده می شود.
سلام خیر. در این اموزش بحث احراز هویت با jwt/jwe پیاده سازی و اموزش داده شده و چون سطح دوره حرفه ای هست مباحث ساده تر مانند فرم ثبت نام یا ارسال ایمیل اموزش داده نشده
سلام. لطفا برای این عناوین هم آموزش تهیه کنید : autofac , identity , entry framework
سلام. حتما. انشالا به زودی
سلام
ممنون از آموزش بسیار عالیتون
ی سوال داشتم اگر راهنماییم کنید یا یک منبعی معرفی کنید ممنون میشم .
چطور میتونم تو همین سیستم از transaction استفاده کنم برای rollback کردن داده ها در صورت بروز خطا ؟
ممنون
برای استفاده از ترانزکشن ها توی EF Core سه روش وجود داره

1- استفاده از context.Database.BeginTransaction() که راحت ترین روش و پیشنهاد خود ماکروسافت هست در اکثر موارد و توسط خود EF مدیریت میشه
2- استفاده از IDbTransation خارجی توسط دستور context2.Database.UseTransaction()
3- استفاده از TransactionScope توسط دستور using (var scope = new TransactionScope()) { } که سربار بیشتری داره و محدودیت هایی هم داره

مقالات اموزشی و اطلاعات بیشتر :
https://entityframeworkcore.com/saving-data-transaction
https://www.entityframeworktutorial.net/entityframework6/transaction-in-entity-framework.aspx
https://docs.microsoft.com/en-us/ef/core/saving/transactions
خداقوت مهندس ابراهیمی..دمت گرم عالی بود.. لطفا منابع آموزشی یا اموزش های دیگه ای که برای دات نت کور باشه و خاصه wep api داشین برای بنده ایمیل کنید. اگر ای دی تلگرامتون یا ادرس کانالتون رو هم بفرستید ممنون میشم...... تشکر
سلام ممنون لطف دارید. در کانال شخصیم سعی میکنم مطالب مفید رو به اشتراک بگذارم امیدوارم برای شما هم مفید واقع بشه. https://t.me/DotNetZoom
سلام خسته نباشید
شما در db context تون از model builder extension ها استفاده کردید چجوری با application db context تون از linq استفاده میکنید
درواقع منظورتون اینه که وقتی ما تموم DbSet ها رو به صورت خودکار به DbContext در زمان Runtime (توسط Reflection) اضافه میکنیم؛ پس چطور میتونیم از DbSet ها به هنگام کدنویسی استفاده کنیم.
کلاس DbContext متدی تحت عنوان Set به صورت جنریک داره که توسط اون میتونیم به DbSet انتیتی مورد نظر دست پیدا کنیم. مثال :
dbContext.Set() l به جدول مورد نظر اشاره میکنه و میتونیم روش query بزنیم یا insert کنیم و...
مدرس
مهندس محمد جواد ابراهیمی

من محمد ابراهیمی حدود 8 سال سابقه برنامه نویسی دارم و تخصص اصلی back-end هست و بیشتر در حوضه Asp.NET Core کار میکنم و هیچ کاری به اندازی یادگیری و یاد دادن خوشحالم نمی کند.

تضمین کیفیت

توجه: کیفیت این محصول توسط بیـــاموز تضمین شده است. در صورت عدم رضایت شما، ۷۰ ‌درصد مبلغ پرداختی به حساب بانکی شما بازگشت داده می‌شود.

دوره API نویسی اصولی و حرفه ای در ASP.NET Core

هزینه آموزش
300,000 تومان
حجم فایل 3.60 گیگابایت
مدت زمان 21:42:00
شماره درس پکیج کامل
نوع آموزش تصویری و کاملاً فارسی
تعداد دانشجو 37804