برنامه نویسی MVC یکی از مشاغل فناوری اطلاعات می باشد.
(Model View Controller) MVC یک معماری برنامه نویسی است که نرم افزار را به سه بخش مجزا تقسیم میکند. این بخشها عبارت اند از Model برای ارتباط با پایگاه داده، View برای ایجاد یک رابط کاربری برای نمایش و تغییر در دادههای پایگاه داده و Controller برای پردازش درخواستهای کاربر.
به عنوان مثال فرض کنید در یک رستوران از منوی آنها سفارش یک پیتزا داده اید. گارسون سفارش شما را دریافت میکند. سپس به پیشخوان آشپزخانه رفته، و سفارش شما را به آنها میرساند. پس از آماده شدن غذا، گارسون غذا را از پیشخوان آشپزخانه به میز شما میرساند. در این مثال:
در واقع شما نقش کاربر درخواست کننده اطلاعات را دارید. گارسون به عنوان Controller وظیفه درخواست اطلاعات از آشپزخانه را به عنوان Model و ارسال اطلاعات مدل در قالب سفارش شما یا View را به عهده دارد. به زبان ساده تر:
برای پیاده سازی پروژه های خیلی کوچک نیاز به معماری سه لایه نیست هر چند اگر با mvc کار شده باشد هیچ ضرری به برنامه نمی رساند. فقط تنها عیبی که می تواند داشته باشد این است که برای پروژه ای که با چند تابع ساده می توان نوشت، نیازی به معماری mvc نیست چرا که زمان بر است. مگراینکه برنامه نویس انقدر به mvc تسلط داشته باشد که بخواهد سریع تر با مدل سه لایه کار کند. این ایراد برای برنامه نویسان غیر حرفه ای بود.
«الگوی معماری» یک طرحواره بنیادی و ساختاری را برای سامانههای نرمافزاری ابراز میدارد. الگوی معماری مجموعهای از زیرسیستمهای از پیش تعریف شده، وظایف آنها و قوانین و جهتدهی برای سازماندهی رابطه میان آنها را فراهم میکند. الگوی معماری مفهومی است که برخی از عناصر منسجم و اساسی در یک معماری نرمافزار را حل و ترسیم میکند.
اگرچه یک الگوی معماری، تصویری از یک سیستم را پوشش میدهد، اما یک معماری به حساب نمیآید. الگوی معماری در واقع یک راهحل کلی و قابل استفاده مجدد برای یک مسئله رایج معماری نرمافزار در یک زمینه به خصوص است. اکنون در ادامه مطب «MVC چیست» به تفاوت میان الگوی معماری و الگوی طراحی پرداخته شده است.
اغلب، MVC به عنوان یک الگوی طراحی (Design Pattern) شناخته میشود. اما، برخی بر این عقیدهاند که خطاب قرار دادن MVC به عنوان یک الگوی طراحی صحیح نیست. زیرا الگوی طراحی برای حل یک مسئله فنی خاص به کار میرود در حالی که، الگوی معماری برای حل مسائل معماریگونه (Architectural Problem) استفاده میشود. بنابراین، یک الگوی معماری، کل معماری یک برنامه کاربردی را تحت تأثیر خود قرار میدهد.
ما در بنیاد آموزش مجازی ایرانیان امکان ثبت نام در دوره آموزش مجازی برنامه نویس mvc و اخذ مدرک معتبر برنامه نویس mvc را به صورت کاملا غیر حضوری فراهم آورده ایم.
MVC مخفف Model-View-Controller است. model مسئول نگهداری وضعیت (state) با نگهداری داده ها و به هنگام سازی آنها در پایگاه داده است. controller مسئول انتخاب یک نمایش خاص، براساس وضعیت است، و view نمایش خاص داده ها است که توسط controller انتخاب می شود. برخلاف ASP.Net Web Forms که در آن View و Controller در یک صفحه قرار دارند (aspx معادل view است و aspx.cs معادل controller) در ASP.NET MVC این دو به دو جزء مجزا تقسیم می شوند، View و Controller که بر روی یک Model از داده ها کار می کنند. شاید بتوان گفت یک سایت را می توان با استفاده از ASP.NET Web Forms به گونه ای توسعه داد که مطابق با MVC Pattern طراحی شده باشد. اما استفاده از ASP.NET MVC برنامه نویسان را تا حد بسیار زیادی مجبور می کند تا MVC را پیاده سازی کنند. چرا ASP.NET MVC ؟ مایکروسافت برای بهبود روابط بین کاربر و برنامه نویس این تکنولوژی را معرفی نمود تا برنامه نویسان بتوانند آنچه را که مد نظر دارند سریعتر و با دقت بیشتر و سورس کد کمنر به دست آورند. برخی از برنامه نویسان، همچنان از ASP.NET که بر مبنای فرم های وب و Postback است، استفاده می کنند، برخی از ویژگی های MVC سود می برند و بعضی ها هم دو پلت فرم را ترکیب می کنند و این موضوع بیانگر این است که هیچکدام از پلت فرم ها ناقص یکدیگر نیستند. در واقع MVC بر روی معماری های چند لایه ای جهت تفکیک بخش های مختلف برنامه (بخش های منطقی برنامه مانند داده ها، مجوزها، کنترل صحت داده ها و لایه های مرتبط با کاربر نهایی) قرار می گیرد. مفهوم تازه ای نیست، خیلی وقت است که در جاوا، PHP و بسیاری پلت فرم های دیگر از این الگوها برای طراحی نرم افزار استفاده می شود. اما برای طراحان و توسعه دهندگان ASP.NET تازگی دارد. اجزای تشکیل دهنده ( معماری) MVC ۱- Model(مدل): قسمتی از برنامه کاربردی است که مسئول بازیابی داده از بانک اطلاعاتی، ذخیره آن، تبدیل آن به شی یا آبجکت ها و پیاده سازی منطق برنامه برای داده های دامنه ی مسئله است. در حقیقت بار اصلی معماری MVC بر عهده ی این بخش است. مثلاً یک آبجکت Product ممکن است اطلاعات را از بانک اطلاعاتی بازیابی کرده، بر روی آنها عملیاتی را انجام دهد و سرانجام نتیجه را در بانک اطلاعاتی ئ در جدول Products ذخیره کند. ۲- view(نمایشگر): اجزایی از برنامه است که واسط کاربری برنامه (UI) را می سازد. معمولاً این UI از داده های مدل ساخته می شود. در واقع نقطه پایان برنامه کاربردی است . به کاربر نتایج عملیات و بازیابی و نمایش داده از طریق برقراری ارتباط با دو بخش دیگر؛ یعنی مدل و کنترلگر را نشان می دهد.برای مثال، هنگامی که کاربر در فرم ورود به سیستم رمز عبور خود را وارد می کند، اکثر برنامه نویسان در همان فرم اقدام به چک کردن رمز عبور می کنند که این عمل مغایر با قوانین MVC است. در MVC هنگامی که کاربر رمز عبور را کرد، رمز عبور بدون هیچگونه اعمالی به بخش های دیگر فرستاده می شود و فقط یک نتیجه ساده یا خبر از بخش های دیگر دریافت می کند که از طریق آن اجازه ی ورود به برنامه داده می شود. ۳- Controller(کنترلگر): اجزایی از برنامه هستند که مدیریت تعامل با کاربر را بر عهده دارند. می توان گفت که واسط بین مدل و نمایشگر می باشند؛ یعنی با مدل کار می کند و در انتها نمایشگری را برای نشان دادن واسط کاربری انتخاب می کند. ورودی کاربر را مدیریت کرده و به آنها پاسخ می دهد و با کاربر تعامل می کند. برای مثال، کنترلگر عبارت های پرس و جوی بانک اطلاعاتی را مدیریت کرده و آن ها را به مدل ارسال می کند، وظیفه اجرای پرس و جوها با مدل است. ویژگی های ASP.Net MVC جداسازی وظایف برنماه کاربردی (منطق ورودی، منطق کاری و منطق واسط کاربری) و امکان تست کردن برنامه و طراحی و توسعه آزمون محور به صورت پیش فرض. تمام ارتباطات اصلی در MVC بر مبنای واسط است و می توان آن ها را با اشیای ساختگی Mick تست کرد. می توانید ک. نترلگرها را بدون اینکه آنها را در ASP.NET اجرا کنید، تست کنید و این باعث افزایش سرعت و انعطاف تست برنامه می شود. می توانید از هر فریم ورک تست که با فریم ورک Net. منطبق است برای این کار استفاده کنید. فریم ورکی توسعه پذیر و قابل اتصال. اجزای اصلی ASP.NET MVC به گونه ای طراحی شده اندکه به راحتی جایگزین یا سفارشی شوند. می توانید به سادگی پیاده سازی های خودتان را جایگزین موتور نمایشگر، سیاست های آدرس، سریالی کردن پارامترهای متدهای عملیات یا سایر اجزا کنید. همچنین ASP.NET MVC از فریم ورک های تزریق وابستگی و وارونگی کنترل پشتیبانی می کند. به شما امکان می دهد به جای این که اشیا را توسط کلاس ها بسازید، آنها را از جایی بیرون از کد مثل فایل های تنظیمات بگیرید و این مسئله تست برنامه را ساده تر می کند. نگاشت های قوی آدرس ها که امکان ساخت برنامه هایی با آدرس های با معنی و جستجو شدنی (قابل جستجو توسط موتورهای جستجوگر) را می دهدو نیازی نیست که آدرس ها پسوند فایل داشته باشند، آنها به گونه ای طراحی شده اند که از الگوهای نامگذاری قابل فهم برای موتورهای جستجوSEO و آدرس های انتقال وضعیت قابل نمایش REST پیروی کنند. پشتیبانی برای استفاده از نشانه گذاری در صفحات ASP.NET(فایل های aspx). کنترل های کاربر (فایل های ascx.) صفحات Master(با پسوند master.) به عنوان قالب های نمایشگر. شما می توانید از برخی ویژگی های موجودASP.NET از قبیل صفحات master تو در تو، اسکریپت درونی (<%=%>)، کنترل های سرور اعلان شده، قالب، انقیاد داده ها، محلی سازی و … در فریم ورک ASP.NET MVC استفاده کنید. پشتیبانی از ویژکی های موجود ASP.NET : ASP.NET MVC به ما این امکان را می دهد تا از ویژگی هایی مانند مجوز فرم و تشخیص هویت ویندوز، مجوز آدرس ها، عضویت و نقش ها، خروجی و کش کردن داده ها و Session و مدیریت وضعیت پروفایل، مانیتور کردن صحیح، سیستم پیکر بندی و معماری عرضه کننده استفاده کنید. الگوی طراحی MVC در لایه presentation در معماری سه لایه استفاده می شود و هدف نهایی آن جداسازی مفاهیم در لایه presentation بمنظور خواناتر کردن کد و بالا بردن maintainability آن است.این الگوی طراحی می گوید بجای اینکه کد قسمت های مختلف لایه presentation (مانند کامپوننت ها، فرم ها و …) یکجا نوشته شوند بر اساس وظیفه به سه دسته model ، view و controller تقسیم شوند. این سه دسته کد بصورت زیر با یکدیگر تعامل می کنند: 1. وظیفه view نمایش اطلاعات درون مدل به کاربر و انتقال فرامین کاربر به کنترلر است. 2. وظیفه controller ارتباط با سایر لایه ها ( برای مثال business logic) و بروز رسانی model است. 3. وظیفه model حمل داده ها و اطلاع رسانی به view در صورت اعمال تغییر در model توسط controller است. البته در پیاده سازی های مختلف از الگوی طراحی MVC ممکن است وظایف هر قسمت کمی متغییر باشد. برای مثال در بعضی از پیاده سازی ها، انتقال فرامین کاربر به کنترلر بر عهده model است.
[wp-rss-aggregator sources=”85585″]