در این قسمت از این سری آموزشی در رابطه با الگوی طراحی Repository در زبان برنامه نویسی سی شارپ صحبت خواهیم کرد. این کار را در فضای یک اپلیکیشن که با استفاده از ASP.NET MVC و Entity Framework نوشته شده است، پیاده سازی خواهیم کرد.
الگوی طراحی Repository
همان طور که ممکن است بدانید الگوی طراحی Repository یکی از پرکاربردترین الگوهای طراحی در برنامه نویسی می باشد. در رابطه با الگوهای طراحی توصیه می کنیم از آموزش الگو های طراحی (Design Pattern) ها در سی شارپ وب سایت پرووید استفاده کنید. جالب است بدانید که Repository اولین بار در سبک معماری Domain Driven Design معرفی شد. در رابطه با این سبک معماری توصیه میکنیم از آموزش کاربردی طراحی دامنه محور Domain Driven Design استفاده کنید.
یکی از الگوهای طراحی بسیار پرکاربرد در تمامی برنامه هایی که به نحوی با داده ها در تعامل هستند، الگوی طراحی Repository می باشد. الگوی طراحی Repository به عنوان یک واسط و یا پل ارتباطی بین Domain Layer و Data Mapping Layer قرار می گیرد. در این سناریو الگوی ریپازیتوری شبیه به Entity Framework عمل میکند. با استفاده از ریپازیتوری شما می توانید یک رکورد و یا تعدادی از رکوردها را از درون یک بانک اطلاعاتی بیرون کشیده و سپس در غالب Domain Object های درون حافظه ای با آنها کار کنید. این موضوع باعث میشود تا بتوان به سادگی دادهها را به روز رسانی کرد و یا آنها را حذف نمود. تمامی جزئیات مربوط به کار کردن با داده ها در پیاده سازی الگوی ریپازیتوری از دید مخفی شده و به عبارت دیگر توسط این الگوی طراحی پیاده سازی می شود. استفاده از الگوی طراحی Repository در زبان برنامه نویسی سی شارپ شما روشی سادهتر را برای پیاده سازی کدهای دسترسی به داده و یا Data Access در اختیار خواهید داشت. این موضوع باعث میشود که آبجکت هایی که درون بانک اطلاعاتی ذخیره میشوند به همراه عملیاتی که میتوان بر روی آنها انجام داد تماماً به روشی کاملا شیئ گرا در الگوی طراحی ریپازیتوری پیادهسازی بشود. یکی از کاربردهای استفاده کردن از الگوی طراحی ریپازیتوری تفکیک کردن و یا اصطلاحاً Separation است که بین لایههای Domain و Data Mapping پیادهسازی میشود. البته استفاده کردن از الگوی طراحی ریپازیتوری در کنار Entity Framework موضوعی است که بسیاری از افراد بر روی آن اختلاف نظر دارند.
امروزه تمامی برنامه ها نیاز دارند که به شکلی با مخازن داده ای و یا data source های مختلف کار کنند. ساده ترین و راحت ترین روش برای دسترسی پیدا کردن به این داده ها که اصطلاحاً به آن data access نیز میگوییم. قرار دادن تمامی کد مربوطه در برنامه است. بنابراین اگر یک برنامه با فریم ورک ASP.NET MVC می نویسید می توانید به راحتی در controller های برنامه کدهای مربوط به دسترسی پیدا کردن به داده ها را قرار بدهید. برای مثال فرض کنید که یک controller به نام EmployeeController تعریف کرده اید. این controller می تواند دارای action method های مختلفی باشد که عملیات CRUD از قبیل Create و Read و Update و Delete را اجرا کند. ضمناً فرض می کنیم که از Entity Framework به منظور انجام عملیات مربوط به داده ها استفاده می کنیم. در رابطه با Entity Framework توصیه میکنیم از آموزش رایگان مقدماتی Entity Framework در دات نت و آموزش رایگان مقدماتی Entity Framework در دات نت استفاده کنید.
مخاطبین این دوره آموزشی
تمامی برنامه نویسانی که در حوزه دات نت فریم ورک فعالیت دارند و به توسعه اپلیکیشنهای مختلف مشغول هستند. می توانند با استفاده از این آموزش متنی رایگان مباحث مربوط به الگوی طراحی Repository را به بهترین شکل ممکن فرا بگیرند. اگر شما نیز در رابطه با پیادهسازی کردن و یا عدم پیادهسازی این الگوی طراحی ابهاماتی را دارید، توصیه میکنیم که حتماً از این دوره آموزشی متنی استفاده کنید. این دوره آموزشی متنی برای توسعه دهندگان وب که از تکنولوژی Entity Framework و Entity Framework Core در توسعه اپلیکیشن های خود استفاده میکنند نیز بسیار مفید خواهد بود.
پیش نیازها
برای درک هرچه بهتر مباحث مربوط به این دوره آموزشی می بایست دانش اندکی را در رابطه با مباحثی از قبیل جنریک ها و اینترفیس ها در زبان برنامه نویسی سی شارپ داشته باشید. در این رابطه توصیه میکنیم از آموزش سی شارپ دات نت در ویژوال استادیو و آموزش اینترفیس ها در سی شارپ و آموزش جنریک ها Generics در سی شارپ و دات نت دیدن کنید. علاوه بر این داشتن اطلاعات کلی در رابطه با تکنولوژی Entity Framework نیز می تواند بسیار مفید باشد. در این رابطه توصیه میکنیم از آموزش رایگان Entity Framework Code First دیدن بفرمایید.