اگر به برنامه نویسی علاقمند هستید لطفا تا پایان این نوشته همراه من باشید.
- Model
مفاهیم استفاده شده در نرم افزار تحت عنوان Model ها ایجاد می شوند. در MVC هریک از Class های ما یک Model هستند. Model در Logic برنامه هیچ نقشی ندارد. ارتباط با پایگاه داده هم در Model صورت می گیرد و Model ها پل ارتباطی بین نرم افزار و پایگاه داده نیز هستند. - View
View رابط کاربری نرم افزار است و می توان گفت فرم های نرم افزار و تمام چیزهایی که کاربر با آنها در ارتباط است تحت عنوان View در نرم افزار قرار می گیرد. View نیز هیچ نقشی در Logic نرم افزار ندارد و تنها پل ارتباطی بین کاربر و سایر بخش های نرم افزار است. تاکید می کنم که View هیچ تصمیم گیری انجام نمی دهد و فقط نمای بیرونی نرم افزار است. - Controller
Controller ها قلب تپنده نرم افزارهای MVC هستند. تمام تصمیم گیری ها و Logic نرم افزار در Controller قرار می گیرد و Controller پل ارتباطی Model و View است. در واقع با بیانی ساده می توان گفت Controller تصمیم می گیرد که چه داده ای از کدام Model دریافت شود و جهت نمایش به کدام View ارسال شود.
حالا این سوال به وجود می آید که چرا چنین ساختاری می تواند خوب باشد. چه کمکی به تیم طراحی و توسعه نرم افزار می کند؟
در پاسخ به این سوال می توان به چند دلیل زیر اشاره کرد:
- MVC توسعه نرم افزار را تبدیل به گلابی یا هولو می کند.
- MVC پروسه Unit testing را بسیار راحت می کند.
- MVC کار گروهی همزمان را برای تیم طراح و برنامه نویس آسان می کند.
- MVC با جدا سازی Logic از View و قرار دادن آن در Controller خوانایی کدها را بسیار بالا می برد.
- و مهم تر از همه اینکه MVC به شکل شگفت انگیزی حجم کد نویسی را کاهش می دهد.
MVC در هر زبان برنامه نویسی قابل پیاده سازیست. حتی در جاوا اسکریپت. اما در حال حاضر از این روش بیشتر برای زبان های سمت سرور مثل PHP و ASP.Net استفاده می شود و در کل MVC یک روش بسیار کارا برای تیم های بزرگ تر است. هرچه تیم بزرگتری داشته باشید مزایای این الگو برای شما بیشتر ملموس خواهد بود. همچنین به تجربه می گویم MVC برای پیاده سازی پروژه های کوچک توصیه نمیشود و من استفاده از این روش در پروژه های کوچک را به استفاده از پتک برای کشتن پشه تشبیه می کنم.
اگر تا اینجای این نوشته را خوانده اید پس به برنامه نویسی علاقمند هستید. اگر به ASP.Net هم علاقه دارید، خواننده بخش دوم این سری نیز باشید. تصمیم دارم در بخش دوم درباره دو فریم ورک ASP.net + web forms و ASP.Net + MVC صحبت کنم.