
آموزش بهترین روش های استفاده کردن از EF Core
آموزش بهترین روش های استفاده کردن از EF Core یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، بهترین روش های استفاده کردن از EF Core 6 است که با نام اصلی EF Core 6 - Best Practices از شرکت Pluralsight منتشر شده است.
سادهسازی دسترسی به دادهها با Entity Framework Core
تکنولوژی Entity Framework Core یک نسخه سبک وزن، قابل توسعه و چند پلتفرمی از فناوری محبوب دسترسی به داده Entity Framework است. این تکنولوژی توسعه دهندگان را قادر می سازد تا با داده های رابطه ای با استفاده از اشیاء خاص دامنه و یا domain-specific object ها کار کنند و نیاز به نوشتن کد دسترسی به داده و یا data access code را که توسعه دهندگان معمولاً به نوشتن آنها نیاز دارند را از بین می برد.

تکنولوژی EF Core از ارائه دهندگان پایگاه داده مختلفی پشتیبانی می کند و به توسعه دهندگان این امکان را می دهد که بدون تغییر کد برنامه به طور یکپارچه بین موتورهای پایگاه داده مختلف جابجا شوند. اجرای ناهمزمان پرس و جو و قابلیت بارگذاری تنبل و یا lazy loading عملکرد را بهبود می بخشد و این تکنولوژی را به گزینه ای ارجح برای برنامه های مدرن دات نت تبدیل می کند.
بهترین روش ها در توسعه نرم افزار: ساختن سیستم های قوی و قابل نگهداری
در توسعه نرم افزار، رعایت بهترین شیوه ها و یا همان best practice ها برای ساختن سیستم های قوی، مقیاس پذیر و قابل نگهداری ضروری است. این بهترین روش ها مواردی مانند مدولار بودن، کپسولهسازی و جداسازی نگرانیها و یا separation of concerns، خوانایی کد، قابلیت استفاده مجدد و تست پذیری را تقویت میکنند.

استفاده از سیستم های کنترل نسخه مانند Git توسعه مشترک را تسهیل می کند و در صورت لزوم امکان بازگشت آسان به نسخه های قبلی کد را فراهم می کند. اتخاذ روشهای چابک باعث توسعه تکراری، حلقههای بازخورد مکرر و بهبود مستمر میشود. علاوه بر این، نوشتن کدهای تمیز و مستندسازی، پیروی از الگوهای طراحی و انجام تست های کامل در هر مرحله از توسعه نرم افزار به کیفیت کلی و طول عمر پروژه های نرم افزاری کمک می کند.
ساختار پروژه و مدیریت دسترسی با EF Core 6
نحوه قرار گرفتن کدهای دسترسی به داده در پروژه، بر تستپذیری و امکان تغییر بخشهای مختلف برنامه اثر میگذارد. در آموزش EF Core 6 - Best Practices، ساختار پروژه برای تمیزی و تستپذیری بررسی میشود و موضوع کپسولهسازی Entity Framework نیز در سرفصلها قرار دارد. این مباحث به شما کمک میکنند مسئولیتهای مرتبط با داده را از بخشهای دیگر برنامه جدا کنید و محل قرارگیری سرویسها را با ساختار کلی پروژه هماهنگ سازید. نمونه پروژه API و اضافه کردن Serviceها به کانتینر نیز ارتباط میان سازماندهی کد و پیکربندی وابستگیها را نشان میدهد.
امنیت نیز در طراحی برنامههای متکی بر داده باید از همان مرحله ساختاردهی مورد توجه باشد. این آموزش تعریف Roleها و Privilegeهای برنامه را بررسی میکند تا مشخص شود چگونه میتوان دسترسیها را متناسب با نقشهای مختلف تنظیم کرد. همچنین Managed Identity در Azure بهعنوان یکی از موضوعات آموزشی مطرح میشود و پیوندی میان مدیریت هویت و برنامههای مستقرشده در محیط ابری ایجاد میکند. این مباحث برای توسعهدهندگانی کاربرد دارند که از EF Core در APIهای واقعی استفاده میکنند و میخواهند در کنار جداسازی مسئولیتها، نحوه دسترسی به منابع و تنظیم مجوزها را نیز در طراحی خود لحاظ کنند.
Migration، Nullability و بهینهسازی عملکرد در EF Core
اعمال تغییرات مدل داده در محیطهای مختلف، به روشی قابل تکرار برای مدیریت Schema نیاز دارد. این آموزش به Migration Bundleها و Docker میپردازد و موضوع طراحی فرایند تحویل Migration، ساخت Build Pipeline و Release Pipeline را نیز پوشش میدهد. چنین رویکردی به تیم کمک میکند تغییرات ساختار پایگاه داده را بهعنوان بخشی از فرایند انتشار نرمافزار مدیریت کند، نه کاری جدا از چرخه توسعه. در کنار این مباحث، کنترل Nullability و تعریف ستونهای اختیاری بهصورت Nullable بررسی میشوند تا مدل کد با امکان وجود یا نبود مقدار در دادهها هماهنگتر باشد.
در بخش عملکرد، آموزش به چند جنبه متفاوت از بهینهسازی EF Core میپردازد؛ از جمله بررسی انواع عملکرد، کامپایل مدلها برای راهاندازی سریعتر و استفاده از Async Enumerableها. این موضوعات به سناریوهایی مربوطاند که هزینه راهاندازی یا نحوه ارائه مجموعههای بزرگ داده اهمیت پیدا میکند. استفاده از Asynchronous Streamها میتواند امکان پردازش تدریجی نتایج را فراهم کند، بهجای آنکه همیشه تمام مجموعه پیش از ادامه کار در حافظه آماده شود. برای توسعهدهندگانی که برنامههای مبتنی بر EF Core را نگهداری میکنند، این مباحث راههایی برای بررسی گلوگاهها و انتخاب روش مناسب بر اساس نوع بار کاری ارائه میدهند.
سرفصل مطالب آموزش ویدئویی بهترین روش های استفاده کردن از EF Core
فصل اول: مقدمه دوره آموزشی- مقدمه دوره آموزشی
- معرفی Entity Framework Core 6
- نیاز به ساختار پروژه
- بررسی Separation of Concerns
- کپسوله کردن Entity Framework
- مسئولیت های هر لایه
- پروژه Domain شامل Entity ها است
- پروژه زیرساخت SQL را پیکربندی می کند
- پروژه API برای اضافه کردن Service ها به کانتینر ایجاد شده است
- پروژه Shared Kernel وابستگی ها را معکوس می کند
- مسئولیت های پروژه Unit Test
- استفاده کردن از In-Memory Provider از Unit Test ها پشتیبانی می کند
- بهترین شیوه های ساختار پروژه
- فقط شما می توانید از سوء استفاده ها جلوگیری کنید
- اصل کمترین امتیاز و یا Principle of Least Privilege
- با Design-Time DbContext Factory می توانید Credential ها در زمان Deployment کنترل کنید
- با کمک Role ها Privilege های برنامه را تعریف کنید
- بررسی Shift Left
- با استفاده از User Secrets می توانید اطلاعات حساس توسعه دهنده را ذخیره کنید
- ذخیره کردن داده های حساس در Shared Environment ها
- بررسی Managed Identity در Azure
- شرکت خود را از اخبار دور نگه دارید
- تکامل و ارتقاء Schema
- Migration Bundle ها تکامل Schema را کپسوله می کنند
- طرحی برای Migration Delivery
- Docker محیط های اجرا را کپسوله می کند
- Docker Compose تست های پایداری را اجرا می کند
- Migration Dockerfile را تعریف کنید
- ساختن Build Pipeline و Release Pipeline
- Migration Bundle ها را کانتینرایز کنید
- اشتباه میلیارد دلاری
- بررسی Nullable Reference Type ها
- ستون های اختیاری را به عنوان انواع Nullable تعریف کنید
- برای Navigation Property ها تابع سازنده ایجاد کنید
- سعی کنید Non-Nullable DbSet ایجاد کنید
- چند دلار در جیب خود برگردانید
- سه نوع عملکرد
- کدهای مشکل ساز را با Query Tag ها شناسایی کنید
- از Anonymous Projection ها استفاده کنید
- از قابلیت Tracking در نوشتن Command ها استفاده کنید
- مدل ها را برای راه اندازی سریع تر کامپایل کنید
- بهترین شیوه های مربوط به عملکرد
- بهبود تاخیر و مقیاس پذیری
- مشکلات مربوط به Blocking و Buffering را کاهش دهید
- از Async Enumerable ها استفاده کنید
- برای استفاده از LINQ افزونه Async را نصب کنید
- از Async Stream ها با وسواس استفاده کنید
- بررسی سه Interface و زمان استفاده از آنها






