در نوامبر 2002 سازمان اصلی بینالمللی استانداردسازی وب (
W3C)، این الگو را بهعنوان بخشی از استاندارد XHTML2.0 در نظر گرفت. بهنظر رینسکاگ دلیل اصلی استفاده از MVC، پوشش فاصله موجود بین مدل ذهنی کاربران و مدل دیجیتالی موجود در رایانه است. این الگو با پشتیبانی مستقیم درک دیداری و کنترلی انسان از اطلاعات محیط خود، ساختاری مناسب در نگاه همزمان به محتوای متفاوت یا از نقطه نظرات مختلف به یک مدل ارایه میکند. به بیانی واضحتر با استفاده از این الگو میتوان برای اطلاعات یکسان نمایش و یا تصمیم متفاوت داشت. به شکل 1 توجه کنید.سرواژه MVC از واژگان مدل، ویو و کنترلر تشکیل شده که هریک بهترتیب وظیفه نگهداری اطلاعات، نمایش اطلاعات و برقراری ارتباط بین کاربر و سیستم را برعهده دارند. شاید در ابتدا نگاه جداگانه به هر یک از این بخشها و ترسیم خطوط ارتباطی موجود بین آنها کمی سخت جلوه کند. با مثالی ساده به تشریح این موارد در شکل 2 میپردازیم.
مدل یک سند HTML است که به کاربر نمایش داده میشود، CSS بخشی است که به HTML شکل و جلوههای تصویری میدهد و View را شامل میشود و سرانجام، مرورگر کاربر در نقش کنترلر، مسوول ترکیب CSS و HTML در یک نمای نهایی و پردازش و نمایش آن بهصورت مقدیری از پیکسلها در صفحه نمایش کاربر است.
تفاوت فرمهای وب رایج ASP.NET و MVC
در سال 2002 مایکروسافت با ارایه نسخه .
Net Framework1.0 اولین کلاس از برنامههای تحت وب را ارایه کرد. در آن زمان، حتی برنامهنویسان آشنا با محیطهای برنامهنویسی تحت ویندوز مانند ویژوال بیسیک6 هم قادر بودند با کمترین دانش HTML و آگاهی از تکنولوژیهای وب و تنها با کشیدن و رهاکردن کنترلروی صفحه و کدنویسی رویداد مربوط به کنترل مذکور، در محیطی مشابه با محیط توسعه برنامههای تحت ویندوز، به توسعه برنامهی تحت وب بپردازند. بنابراین توسعه برنامههای وب امری رایج برای اکثر برنامهنویسان تحت ویندوز بود.نقاط قوت فرمهای وب ASP.NET بدین شرح است:
یک فناوری بالغ است.
امکان توسعه بسیار مناسب RAD را فراهم میآورد.
از طراحی WYSIWYG در ویژوال استودیو پشتیبانی میکند.
وضعیت را بهآسان مدیریت میکند.
امکان استفاده از کنترلهای قوی که توسط مایکروسافت و شرکتهای دیگر ارایه میشود.
نیازی اندک به دانش
HTTP، HTML، CSS و در بسیاری موارد Javascript دارد.از ViewState و PostBack پشتیبانی میکند.
به محیطهای توسعه تحت وب شباهت دارد.
و نقاط ضعف:
بخش منطق و کد تلفیق شده است.
بهدلیل ترکیب فایلهای حاوی کد انجام
از ViewState و PostBack پشتیبانی میکند.
مدیریت وضعیت کنترلها در بسیاری موارد منجر به حجم بالای صفحات وب میشود.
همانطور که میبینید، پشتیبانی از PostBack و ViewState از مزایا و معایب فرمهای وب
PostBack نیز با تولید جاواسکریپت مورد نیاز برای کنترل رویدادهای یک کنترل، سعی بر کاهش اطلاع برنامهنویس از جزییات و نحوه ارتباط مرورگر با سرور دارد.
ASP.NET MVC
در واقع ASP.NET نیاز به کنترل دقیق خروجی HTML توسط برنامهنویسان را قربانی شباهت برنامههای وب به ویندوز کرد که این امر از سویی رضایت توسعهدهندگان متوسط وب و از سوی دیگر نارضایتی توسعهدهندگان حرفهای که قصد تولید برنامههای مدرن و پرتعامل با کاربر را داشتند، در پی آورد. از اینرو بسیاری از توسعهدهندگان بهسمت بسترهایی چون روبی و PHP روی آوردند که با ارایه کنترلهای سطح بالا و پشتیبانی از مدل برنامهنویسی MVC برای برنامههای پیچیده وب نیاز آنها را برطرف میساخت. در نتیجه این نیازها، مایکروسافت در پاییز2007 رسما ارایه بستری مدرن مبتنی بر هسته ASP.NET تحت فریمورکی بهنام ASP.NET MVC، برای پشتیبانی از نیاز توسعهدهندگان حرفهای وب همراه با کنترل آزمونپذیری کامل خروجی ارایه شده به مرورگر ارایه داد. توسعهدهندگان علاقمند به این فریمورک، نیازمند آشنایی با مفاهیم
کاهش چشمگیر حجم صفحات وب بهدلیل نبود ViewState
جداسازی بخشهای مختلف
امکان unit testing در سطح برنامه کاربردی
توانایی پشتیبانی از موتور نمایش مختلف همچون Brail، NHaml، NVelocity، XSLT و...
قابلیت آدرسدهی منطقی و پویا برحسب نیاز
پشتیبانی از تمام امکانات هسته ASP.NET از جمله احرازهویت، حافظه نهان و ... .
پشتیبانی از MVC بهطور پیشفرض در ویژوالاستودیو2010 وجود دارد ولی درصورتی که شما از نسخههای قدیمیتر آن استفاده میکنید با مراجعه به سایت رسمی مایکروسافت امکان دریافت نسخه دوم ASP.NET MVC بهصورت رایگان وجود دارد.
محمد غفاری
منابع
msdn.microsoft.com، Codehorror.com، encode.com و asp.net
پینوشتها
1. Model View Controller
2. Xerox PARC
مرور بزرگ ترین جنجال های تاریخ جام جهانی (8)