کتابخانه Entity Framework طی چند سال گذشته پیشرفت زیادی داشته و امکانات بسیاری را معرفی کرده است که به شما در ساختن مدلهای دامنه ای بسیار کپسوله و غنی کمک میکند. در دوره ویدیویی “DDD and EF Core: Preserving Encapsulation” موسسه Pluralsight که توسط Vladimir Khorikov تدریس شده است، شما خطاها و کاستی هایی را یاد خواهید گرفت که هنگام استفاده از طراحی دامنه محور در برنامههای EF Core باید از آنها آگاه باشید و همچنین نحوه ساخت مدلهای دامنه بسیار کپسوله را از یک سو و استفاده از قدرت کامل EF Core را از سوی دیگر به شما نشان میدهد.
در این دوره، ابتدا یاد میگیرید که چگونه میتوانید کپسوله بودن مدلهای دامنه خود را در چنین برنامه هایی حفظ کنید. سپس، تکنیکهای مختلف نگاشت را بررسی خواهید کرد که به شما در ساختن مدلهای دامنه پیچیده کمک میکنند. در آخر، نکات و ترفندهایی را بررسی خواهید کرد که به شما کمک میکنند تا در بین مسائل رایج مربوط به ORMها راه خود را پیدا کنید. پس از اتمام این دوره، شما مهارت و دانش طراحی دامنه محور لازم برای رعایت اصول DDD را بدون به خطر انداختن کپسوله سازی مدل دامنه در اختیار خواهید داشت.
فیلم آموزشی «DDD و EF Core: حفظ کپسوله بودن» موسسه پلورالسایت که توسط Vladimir Khorikov تدریس شده است، دارای زیرنویس انگلیسی است.
Table of Contents:
Course Overview
- Course Overview
Introduction
- Introduction
- Encapsulation and Separation of Concerns
- Encapsulation and Separation of Concerns: Examples
- Sample Application Introduction
- Summary
Working with Many-to-one Relationships
- Introduction
- DbContext Encapsulation
- Recap: DbContext Encapsulation
- Getting Rid of Public Setters
- Recap: Getting Rid of Public Setters
- Types of Relationships
- Many-to-one Relationships: IDs vs. Navigation Properties
- Refactoring to Navigation Properties
- Recap: Refactoring to Navigation Properties
- Summary
Working with Lazy Loading
- Introduction
- Eager Loading of Relationships
- Lazy Loading of Relationships
- Refactoring to Lazy Loading
- Recap: Refactoring to Lazy Loading
- The Identity Map Pattern
- The Identity Map Pattern: Referential Equality
- Encapsulating Equality Comparison
- Introducing a Base Entity Class
- Recap: Introducing a Base Entity Class
- Summary
Mapping Backing Fields
- Introduction
- Introducing a One-to-many Relationship: Part 1
- Introducing a One-to-many Relationship: Part 2
- Recap: Introducing a One-to-many Relationship
- Hiding the Collection Behind a Backing Field
- Recap: Hiding the Collection Behind a Backing Field
- Introducing a Collection Invariant
- Recap: Introducing a Collection Invariant
- Deleting an Item from the Collection
- Recap: Deleting an Item from the Collection
- Shortcomings of Mapping to Backing Fields in EF Core
- Summary
Working with Disconnected Graphs of Objects
- Introduction
- New Use Case: Registering a Student
- Recap: Registering a Student
- Update and Attach Methods in DbSet
- Recap: Add vs. Update vs. Attach Methods in DbSet
- Assigning a Disconnected Entity to a Connected One
- Recap: Assigning a Disconnected Entity to a Connected One
- Summary
Mapping Value Objects
- Introduction
- Introducing a Value Object: Email
- Shortcomings of EF Core Value Conversions
- Introducing a Multi-property Value Object
- Owned Entity Types Behind the Scenes
- Recap: Owned Entity Types Behind the Scenes
- Adding a Navigation Property to an Owned Entity
- Summary
Implementing a Domain Event Dispatcher
- Introduction
- Domain Events
- Implementing Domain Events
- Recap: Implementing Domain Events
- Many-to-many Relationships
- One-to-one Relationships
- Resource List
- Course Summary