کد نویسی API ناهمگام، با مجموعه چالشهای خاص خود همراه است. در دوره ویدیویی Building an Async API with ASP.NET Core موسسه Pluralsight که توسط Kevin Dockx تدریس شده است، شما میتوانید با نوشتن کد async، توانایی افزایش دادن مقیاس پذیری و کارایی API خودتان را بدست آورید.
در این دوره ابتدا یاد میگیرید که چگونه کد ناهمگام واقعا کار میکند و چه مزایایی میتواند داشته باشد. در ادامه، چگونگی استفاده از EF Core data store را به طور asynchronously، نحوه نمایش دادن دادهها از طریق API و چگونگی فراخوانی یک سرویس را به طور ناهمگام، یاد خواهید گرفت. سرانجام، چگونگی جلوگیری از خطاهای رایج به هنگام نوشتن کد async را بررسی خواهید کرد. وقتی این دوره را تمام کردید، مهارت و دانش کد ناهمزمان مورد نیاز برای ساخت یک API کاملاً async با ASP.NET Core را در اختیار خواهید داشت.
فیلم آموزشی «ساختن Async API با ASP.NET Core» موسسه پلورال سایت که توسط Kevin Dockx تدریس شده است، دارای فایل Transcript انگلیسی است.
Table of Contents:
Course Overview
- Course Overview
Understanding the Power of Async
- Coming Up
- Course Prerequisites
- Frameworks and Tooling
- Introducing the Demo Project
- The Advantage of Asynchronous Code
- Handling Synchronous Requests
- Handling Asynchronous Requests
- I/O Bound Versus Computational Bound Work
- Threads, Multithreading, Concurrency, Parallelism
- Summary
Starting at the Bottom with Your Data Access Layer
- Coming Up
- The async / await Keywords
- Async Patterns: TAP, EAP, and APM
- Demo: Starting from Scratch with a DAL
- The Repository Pattern
- Demo: Designing a Repository Contract
- Contracts and Async Modifiers
- Demo: Implementing the Repository Contract
- Summary
Asynchronously Reading Resources
- Coming Up
- Demo: Getting Resources
- Introducing WebSurge
- Demo: Using WebSurge to Test Async Code Improvements
- The Outer Facing Model
- Manipulating Output with an AsyncResultFilter
- Demo: Creating a Custom AsyncResultFilter (Part 1)
- Adding and Configuring AutoMapper
- Demo: Creating a Custom AsyncResultFilter (Part 2)
- Summary
Asynchronously Manipulating Resources
- Coming Up
- Demo: Creating a Resource
- Supporting Bulk Inserts
- Demo: Supporting Bulk Inserts
- Demo: Supporting a Location Header for Bulk Inserts
- Demo: Testing Bulk Inserts with WebSurge
- Summary
Understanding How to Integrate with External Services Using Async
- Coming Up
- Demo: Asynchronously Integrating with an External Service
- Demo: Handling Multiple Service Calls One by One
- Demo: Passing Multiple Objects to an AsyncResultFilter with ValueTuple
- Demo: Mapping Multiple Objects into One
- Demo: Handling Multiple Service Calls in Parallel
- Why Cancellation Matters
- Demo: Cancelling Tasks
- Demo: Handling Exceptions
- Summary
Avoiding Common Pitfalls
- Coming Up
- Offloading Legacy Code to a Background Thread
- Demo: Wrapping Synchronous Code with Task.Run()
- Pitfall #1: Using Task.Run() on the Server
- Demo: Blocking Async Code
- Pitfall #2: Blocking Async Code
- Demo: Modifying Shared State
- Pitfall #3: Modifying Shared State
- Summary