
آموزش ASP.NET MVC و Entity Framework در قالب پروژه
آموزش ASP.NET MVC و Entity Framework در قالب پروژه یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم.
مدل معماری MVC چیست؟
مدل معماری MVC که سر نام سه کلمه ی Model-View-Controller می باشد، برنامه را به سه بخش تقسیم می کند: Model و View و Controller. فریم ورک ASP.NET MVC برای ساخت برنامه های تحت وب با معماری MVC طراحی شده است. در این معماری می توانید از قابلیت های سابق ASP.NET از قبیل master page ها و ... استفاده کنید.
فریم ورک MVC در اسمبلی System.Web.Mvc تعریف شده است. الگوی طراحی MVC، الگویی ست که بسیاری از توسعه دهندگان نرم افزار با آن آشنا هستند. فریم ورک MVC از این الگو برای ساخت برنامه های تحت وب استفاده می کند. ساخت برنامه های تحت وب با استفاده از MVC و تکنولوژی Entity Framework یکی از بهترین انتخاب ها در دنیای توسعه دهندگان تحت وب امروز است. ساخت، نگهداری و مدیریت این نوع برنامه ها بسیار آسان و ایجاد تغییر در آنها به راحتی انجام می شود. ضمناً پیشنهاد می کنیم که از آموزش ASP.NET Web Forms و Entity Framework در قالب پروژه نیز دیدن کنید.
آموزش پروژهمحور ASP.NET MVC و Entity Framework
ترکیب ASP.NET MVC و Entity Framework یکی از روشهای توسعه برنامههای تحت وب در اکوسیستم .NET است. در این رویکرد، ASP.NET MVC ساختار برنامه و نحوه مدیریت درخواستهای کاربران را مشخص میکند و Entity Framework امکان کار با دادههای پایگاه داده را از طریق مدلهای شیگرا فراهم میسازد. یادگیری نحوه استفاده از این دو فناوری در کنار یکدیگر به برنامهنویسان کمک میکند ارتباط میان منطق برنامه، رابط کاربری و لایه دسترسی به دادهها را بهتر درک کنند.

در توسعه یک سامانه واقعی، معمولاً تنها نمایش اطلاعات کافی نیست و کاربران باید بتوانند دادهها را ایجاد، ویرایش، حذف و جستوجو کنند. در چنین شرایطی، شناخت نحوه پیادهسازی عملیات CRUD و مدیریت دادههای مرتبط اهمیت زیادی دارد. این آموزش با رویکرد پروژهمحور، مفاهیم مربوط به ساخت مدل داده و توسعه قابلیتهای کاربردی را در کنار هم قرار میدهد تا بتوانید درک روشنتری از پیادهسازی برنامههای دادهمحور با ASP.NET MVC داشته باشید.
پیادهسازی Sorting و Filtering و Paging در ASP.NET MVC
در برنامههایی که حجم زیادی از اطلاعات را نمایش میدهند، کاربران به ابزارهایی برای پیدا کردن سریع دادههای موردنظر خود نیاز دارند. Filtering امکان محدود کردن نتایج بر اساس معیارهای مشخص را فراهم میکند، در حالی که Sorting برای مرتبسازی اطلاعات به کار میرود. برای مثال، در یک سامانه مدیریت محصولات میتوان کالاها را بر اساس قیمت مرتب کرد یا تنها محصولاتی را نمایش داد که در یک دستهبندی مشخص قرار دارند. این قابلیتها استفاده از صفحات اطلاعاتی را سادهتر میکنند.
Paging نیز اطلاعات را به چند صفحه تقسیم میکند تا همه رکوردها بهصورت یکجا نمایش داده نشوند. ترکیب این سه قابلیت در برنامههای مبتنی بر ASP.NET MVC به مدیریت بهتر فهرستهای اطلاعاتی کمک میکند. هنگام پیادهسازی آنها، توجه به نحوه ساخت Query و دریافت دادهها اهمیت دارد؛ زیرا در صورت طراحی نامناسب، پردازش اطلاعات زیاد میتواند منابع بیشتری مصرف کند. آشنایی با این مفاهیم برای توسعهدهندگانی که روی سامانههای مدیریتی کار میکنند، کاربردی است.
الگوهای Repository و Unit of Work در برنامههای .NET
الگوی Repository روشی برای سازماندهی دسترسی به دادههاست که عملیات مربوط به دریافت و ذخیره اطلاعات را پشت یک رابط مشخص قرار میدهد. این ساختار میتواند وابستگی مستقیم بخشهای مختلف برنامه به جزئیات دسترسی به پایگاه داده را کاهش دهد. برای مثال، بهجای آنکه منطق یک Controller مستقیماً با جزئیات Queryهای پایگاه داده درگیر شود، میتوان عملیات موردنیاز را از طریق یک Repository انجام داد. البته میزان مفید بودن این الگو به پیچیدگی و نیازهای واقعی پروژه بستگی دارد.

الگوی Unit of Work نیز برای هماهنگ کردن مجموعهای از تغییرات داده در یک واحد کاری استفاده میشود. این مفهوم زمانی اهمیت پیدا میکند که چند عملیات مرتبط باید بهصورت هماهنگ مدیریت شوند. آشنایی با این دو الگو به توسعهدهندگان کمک میکند درباره ساختار لایه دسترسی به دادهها و نحوه مدیریت تغییرات در برنامه تصمیم آگاهانهتری بگیرند. در کنار آنها، بررسی سناریوهای پیشرفته Entity Framework میتواند شناخت شما را از چالشهای توسعه برنامههای دادهمحور گسترش دهد.
مدیریت دادههای مرتبط و Concurrency در Entity Framework
در بسیاری از برنامههای سازمانی، موجودیتها به یکدیگر وابستهاند. برای مثال، هر سفارش ممکن است به یک مشتری و چند قلم کالا مرتبط باشد. Entity Framework امکان تعریف و کار با این ارتباطها را فراهم میکند، اما دریافت و بهروزرسانی دادههای مرتبط نیازمند شناخت نحوه بارگذاری اطلاعات و مدیریت تغییرات است. درک این موضوعات به برنامهنویس کمک میکند دادههای موردنیاز را با ساختاری مناسب دریافت کند و از ایجاد رفتارهای ناخواسته هنگام ذخیره اطلاعات جلوگیری کند.
Concurrency یا همزمانی نیز یکی از چالشهای مهم در برنامههای چندکاربره است. ممکن است دو کاربر یک رکورد را در فاصله زمانی کوتاهی تغییر دهند و ذخیره یکی از تغییرات باعث نادیده گرفته شدن تغییر دیگر شود. مدیریت این وضعیت به برنامه اجازه میدهد تعارضها را شناسایی کند و مطابق منطق موردنظر با آنها برخورد کند. این آموزش برای برنامهنویسانی مناسب است که میخواهند با رویکردی پیشرفتهتر، مدیریت ارتباط میان دادهها، وراثت در مدل داده و طراحی ساختار دسترسی به اطلاعات را در ASP.NET MVC و Entity Framework یاد بگیرند.
سرفصل مطالب آموزش ویدئویی ASP.NET MVC و Entity Framework در قالب پروژه
فصل اول: مقدمه- مقدمه
- مقدمه
- ایجاد کردن پروژه
- تغییر دادن Template پیش فرض
- اضافه کردن Student Entity
- اضافه کردن Course Entity
- قرار دادن تمامی اجزا در کنار یکدیگر
- اضافه کردن کلاس DbContext
- معرفی کردن SQL Server Express LocalDB
- فعال کردن Code First Migration
- ایجاد کردن متد Seed
- ایجاد کردن اولین Migration
- تولید کردن Database
- اضافه کردن یک Controller و View های مرتبط با Student
- مقدمه
- ایجاد کردن یک Details Page
- به روز رسانی کردن Create Page
- به روزرسانی کردن Delete Page
- به روزرسانی کردن Edit Page
- بررسی Entity State ها و متد SaveChanges
- Dispose کردن Connection ها
- مقدمه
- اضافه کردن قابلیت Sort به Student
- اضافه کردن قابلیت Filter به Student
- نصب کردن پکیج PagedList.MVC
- اضافه کردن قابلیت پیجینگ به Student
- اضافه کردن قابلیت Paging به Student
- اضافه کردن قابلیت Grouping به About Page
- مقدمه
- بررسی StringLengthAttribute
- اضافه کردن Code Migration
- معرفی کردن Column Attribute
- ایجاد کردن Instructor Entity
- ایجاد کردن OfficeAssignment Entity
- تغییر دادن Course Entity
- ایجاد کردن Department Entity
- تغییر دادن Student Entity
- تغییر دادن Enrollment Entity
- بررسی Relationship های Many-to-Many
- سفارشی سازی کردن Data Model
- انجام عملیات Seeding بر روی Database با استفاده از Test Data
- اضافه کردن یک Migration و به روز رسانی کردن Database
- مقدمه
- ایجاد کردن یک Index Page برای Course ها
- ایجاد کردن یک View Model برای Instructor
- ایجاد کردن Instructor Controller
- بهروزرسانی کردن Index View مربوط به Instructor قسمت اول
- بهروزرسانی کردن Index View مربوط به Instructor قسمت دوم
- بهروزرسانی کردن Index View مربوط به Instructor قسمت سوم
- اضافه کردن Explicit Loading
- مقدمه
- سفارشی سازی Controller مربوط به Course ها
- سفارشی سازی View های مربوط به Course ها
- سفارشی سازی کردن Controller مربوط به Instructor ها
- سفارشی سازی کردن View های مربوط به Instructor ها
- سفارشی سازی کردن Controller های مربوط به Instructor ها و Course ها
- سفارشی سازی کردن View های مربوط به Instructor ها به همراه Course ها
- به روزرسانی کردن متد Delete
- مقدمه
- اضافه کردن قابلیت Optimistic Concurrency به Department Entity
- ایجاد کردن Department Controller
- به روز رسانی کردن View های مربوط به Department
- تست کردن عملکرد Optimistic Concurrency
- به روزرسانی کردن Delete Page
- به روزرسانی کردن Delete View
- تست کردن عملکرد Concurrency در حذف Entity ها
- مقدمه
- ایجاد کردن کلاس Person
- اضافه کردن Entity Type مربوط به کلاس Person به Model
- تغییر دادن InstructorID و StudentID به PersonID
- ایجاد کردن و به روزرسانی کردن فایل Migration ها
- مقدمه
- ایجاد کردن یک Repository برای Student
- استفاده از Repository مربوطه در Controller مربوط به Student
- تست کردن عملکرد Student Repository
- پیاده سازی یک Generic Repository
- ایجاد کردن کلاس Unit of Work
- تغییر دادن Course Controller
- تست کردن Generic Repository و Unit of Work
- استفاده از یک Query که Entity هایی را برمیگرداند.
- اضافه کردن View مربوط به روزرسانی Credite ها
- استفاده کردن از یک Update Query
- بررسی کردن No-Tracking Query ها
- تست کردن No-Tracking Query ها
- بررسی کردن Query هایی که به Database ارسال میشوند.
- فیلتر کردن Course ها بر اساس Department ها
- تست کردن Inner-join Query ها
- بررسی دقیق Query ها





