جهت تماس با کارشناسان فروش کلیک نمایید
طراحی سایت

موضوع مقاله : معماري ام وي سي چيست؟ MVC :

شرح : معماري MODEL – VIEW – CONTROL يا (MVC)

در اين معماري در واقع ما داراي ترجمه اي از قسمت هاي مهم معماري به شکل زير هستيم:

    * MODEL : وظيفه کار با پايگاه داده را بر عهده دارد.
    * VIEW : وظيفه ارتباط با کاربر نهايي را بر عهده دارد.
    * Control : وظيفه کنترل View و Model و نحوه ارتباط آن دو را با هم بر عهده دارد.

توليد کنندگان نرم افزار نيز تلاش مي کنند تا نرم افزاري توليد کنند تا بتواند اکثر نياز هاي متقاضيان را به بهترين نحو ممکن تامين کند ودر همين راستا در تلاش هستند که روند توليد نرم افزار را به سمتي بکشانند که ساختار استاندارد و تائيد شده اي داشته باشد. شايد بتوان گفت که دوران کد نويسي به پايان رسيده و همه چيز به سمت زير ساخت ها و بنيان نهادن چارچوب هاي استاندارد وپيروي از آن ها در امر توليد بهتر نرم افزار در حرکت است.

اجازه دهيد ببينيم خصوصيات يک نرم افزار خوب چيست ؟
نام بردن تمامي خصوصيات يک نرم افزار خوب در اين مقال نمي گنجد اما تعداد محدود و مهمي از آنها عبارتند از:

  • قابل حمل بودن
  • قابل استفاده مجدد بودن
  • قابل تغيير بودن
  • بهينه بودن از لحاط حافظه و زمان (زمان مهمتر از حافظه)
چيست ؟
MvC مخفف سه کلمه Model View Controller هست . در واقع MVC بر روي معماري هاي چند لايه اي جهت جداسازي قسمت هاي مختلف برنامه و به طور دقيق تر جدا کردن بخش ها منطقي برنامه اعم از ديتا ، permission ها ، چک کردن صحت داده ها و .... از لايه Presentation layer يا در واقع همان لايه اي که مستقيما با کاربر نهايي (End user) در ارتباط است ،قرار ميگيرد. پس بر اساس توضيحات فوق مي توانيم هر يک از بخش هاي معماري MVC يعني Model و View و controller را به شکل زير تعريف کنيم.

1. Model
در واقع بار اصلي معماري MVC بر عهده اين بخش است . اين بخش مي تواند با داده ها در ارتباط باشد .الزاماً منظور از داده حتما ارتباط با پايگاه هاي داده همچون MSSQL و Access و ... نيست ، حتي منبع داده ها در بخش Model مي تواند يک آرايه از اعداد و يا هر چيز ديگري باشد . همچنين Model وظيفه چک کردن داده ها جهت صحت درستي داده ها را هم بر عهده دارد (در اين زمينه همکاري بيشتري با بخش Controller دارد) و همينطور وظايف ديگري که در مثال ها ي عملي که در آينده خواهم زد بيشتر آشنا خواهيد شد.

2. View
اين بخش که در واقع همان بخش Presentation Layer در معماري 3 لايه ميباشد وظيفه بر قراري ارتباط با کاربر نهايي و گرفتن داده از کاربر و نمايش داده هاي اماده با کاربراز طريق برقراري ارتباط با دو بخش ديگر يعني Model و controller است . در واقع نکته مهمي که در بخش View بايد مد نظر داشت اين است که اين لايه مسئول کنترل صحت داده هاي وارد شده از طريق کاربر و همچنين مسئول صحت داده هاي نشان داده شده به کاربر نيست . در واقع اين بخش با داده هاي خام کار ميکند . يک مثال ساده خيلي از برنامه نويسان هنگامي که در فرم Login برنامه ،کاربر کلمه عبور خود را وارد ميکند ، در همان فرم Login اقدام به چک کردن پسورد مبني بر صحت آن و ... مي کنند . که اين عمل در معماري MVC قابل قبول نيست . در واقع براي حل مسئله فوق در معماري MVC در فرم Login هنگامي که کاربر کلمه عبور را وارد کرد و دکمه Login يا ورود را زد ، کلمه عبور داده شده بدون هيچ گونه اعمالي اعم از Encrypt کردن و ... به بخش هاي ديگر فرستاده ميشود و فقط يک نتيجه ساده مبني بر اين که کاربر اجازه ورود دارد يا خير را از بخش هاي ديگر دريافت ميکند که بر اساس آن اجازه ورود کاربر به برنامه داده ميشود .

3. Controller
اين بخش همانطور که از اسم آن مشخص است يک بخش کنترل کننده مي باشد ، و در واقع واسطي بين دو بخش Model و View ميباشد. حال ببينيم روند اجراي برنامه در معماري MVC به چه نحوي خواهد بود . در معماري MVC روند کلي برنامه (جزئيات را در ادامه خواهيد ديد) به اين شکل است که کاربر تقاضاي خود را از طريق واسط هاي برنامه نويسي (نظير Form ها و User Control ها و .. ) از برنامه (از بخش View)درخواست مي کند . بخش View در خواست ها را به بخش Controller فرستاده و اين بخش با برقراري ارتباط با بخش Model در خواست هاي کاربر را پردازش کرده و پس از پايان پردازش زماني که خروجي درخواست داده شده آماده گرديد بخش Controller بخش View را آگاه مي سازد تا خود را بر اسا س تغييرات جديد که اصطلاحاً در معماري MVC به آن حال Model مي گويند ، به روز سازد . در واقع چيزي که باعث ميشود تا بخش Controller به بخش View اطلاع دهد که بايد حالت جديد model را دريافت کند و خود را Update کند اين است که بخش View بايد قبلا خودش را در بخش Model اصطلاحا Register کرده باشد که البته عمل Register کردن توسط بخش Controller انجام ميگيرد . نحوه register کردن بخش View به معماري آن محيط و همچنين زباني که توسط آن برنامه را گسترش ميدهيد و همچنين قابليت هاي آن زبان بستگي دارد.