مقایسه معماری MVC با دیگر معماری ها

مقايسه MVC با ديگر معماري ها
مقايسه MVC با ديگر معماري ها

با سلام خدمت دوستان برنامه نویس ، با یکی دیگر از جلسات آموزش ASP.NET Core در خدمت شما هستیم در جلسه گذشته در مورد نحوه پیاده سازی MVC در ASP.NET  صحبت کردیم در این جلسه آموزش ASP.NET می‌خواهیم معماری MVC با دیگر معماری ها مقایسه نماییم پس با ما همراه باشید.

باید یادآور شد که MVC تنها معماری نرم افزار نیست روش های دیگری هم وجود دارند که برخی از آن ها طرفداران زیادی هم داشته اند. برخی از این روش ها برگرفته از خود MVC و برخی دیگر کاملا متفاوت هستند.

آشنایی با معماری Smart UI

یکی از معمول ترین الگوهای طراحی ، Smart User Interface یا (Smart UI) است هر برنامه نویسی در دوران کاریش پروژه های Smart UI داشته است. اگر پروژه‌های ویندوز یا ASP.NET WebForm را پیاده کرده باشید، شما هم با چنین الگویی کار کرده اید.

روش متداول در ایجاد پروژه‌ی Smart UI قرار دادن عناصری به نام کنترل بر ناحیه طراحی است. این کنترل ها معمولا در یک جعبه ابزار قرار دارند و از آنجا بر روی فرم طراحی ، به وسیله ماوس ، کشیده و رها می‌شوند. برخورد کاربر با این کنترل ها، موجب اجرای رویدادها (Events) می‌شود. در این روش ، برنامه نویس کد لازم برای پاسخ به رویدادها را در کنترل کننده‌ی رویداد (Event handler) وارد می‌کند. این کنترلرکننده‌ها مانند متدهایی هستند که در زمان رخ دادن رویداد (به عنوان مثال ، کلیک ماوس بر روی یک دکمه توسط کاربر ) اجرا می‌شوند. روش گفته شده ، یک سیستم کاربردی یکپارچه به وجود می‌آورد.

کاربرد چنین روشی در پروژه های ساده ، نتیجه خوبی به بار می‌آورد و سرعت کار نیز بالاست (در مقایسه با MVC همانگونه که خواهید دید ، پیش از رسیدن به نتیجه کار ، برای آماده سازی پروژه و برنامه ، کارهای بسیاری باید انجام دهید.)

مهم ترین اشکال این روش در نگهداری و توسعه نرم افزار به دلیل ترکیب کد مدیریت داده های مدل با کد اعمال قوانین تجاری سیستم و کد رابط کاربری است در این وضعیت یک تکه کد برای انجام کاری ویژه باید بارها و بارها در محل‌های مختلف کپی شود در این حالت اگر بخواهید تغییری در کارکرد تکه کد گفته شده ایجاد کنید یافتن همه موارد آن و تغییر آنها کار مشکی خواهد بود . در همین سناریو ، اگر یکی از کپی ها از نظر شما مخفی شده و دچار تغییر نشود با چندگانگی یا خطا در کارکرد برنامه روبه رو خواهید شد. آزمایش چنین برنامه ای هم کار مشکلی خواهد بود. تنها راه ممکن ، شبیه سازی تعامل های کاربر با رابط کاربری و کنترل هاست که کار ساده ای نیست.

در دنیای MVC روشی مانند Smart UI را به عنوان ضد الگو (anti-pattern) می‌شناسند چیزی که باید به هر صورت ممکن از آن دوری کرد. یکی از دلیل‌های این موضوع این است که افراد پس از این که تجربیات تلخی در کدنویسی Smart داشته و پس از برخورد با مشکلات سیستم های نرم افزاری که با رشد سرطانی از کنترل خارج شده اند، به MVC روی می‌آورند.

 

آشنایی با معماری Model-View

در الگوی Smart ناحیه ای که با بیشترین مشکل نگه داری در آن روبه رو هستید ، پیاده سازی الزامات سیستم است. کد این بخش آن چنان در کل برنامه پخش می شود که پیدا کردن و ویرایش و تغییر آن کاری طاقت فرسا می شود . الگوی برنامه نویسی Model-View با جداسازی کد مربوط به پیاده سازی الزامات سیستم ، بهبود چشمگیری در این بخش به وجود می‌آورد. در این روش ، داده ها ، پردازش ها و همه قوانین مربوط به آن ها در یک واحدجمع آوری می‌شوند.

با این که روش Model-View پیشرفتی بزرگ نسبت به روش Smart به شمار می‌آید ، دارای دو مشکل اساسی است. مشکل نخست ، ترکیب شدن مدل دامین (Domain Model) با رابط کاربری است که آزمایش هر دو را (unit testing) سخت می‌کند . مشکل دوم چیزی است که به طور معمول در این گونه پروژه ها با آن برخورد می شود و آن این است که مدل ، انباری سرشار از کد دسترسی به داده می‌شود. معنی آن این است که ، مدل تنها شامل داده های سیستم و پردازش آن ها نمی‌شود ( در حالی که طبق تعریف مدل – نما باید اینطور باشد.)

آشنایی با معماری سه لایه

معماری سه لایه برای رفع مشکل روش Model-View کد ذخیره و بازیابی داده ها را از مدل جدا می کند و در بخش دیگری به نام لایه دسترسی به داده ها (Date Access Layer) قرار می‌دهد.

معماری سه لایه با توجه به سادگی ، پیروی از اصل جداسازی دغدغه ها و اینکه محدودیتی بر چگونگی لایه نمایشی یا رابط کاربری بار نمی‌کند ، پرکاربردترین الگو برای ایجاد برنامه های کاربردی تجاری است. با کمی دقت و توجه ، چنین پروژه هایی را می توان به گونه ای ایجاد کرد که عمل آزمایش کدهم به سادگی انجام شود. شباهت بین معماری سه لایه و MVC به روشنی پیدا است. تفاوت در این است که با مربوط کردن رابط کاربری به فرم هایی که بر پایه‌ی کلیک ها و رویدادها کار می‌کنند (مانند فرم های ویندوز و ASP.NET معمولی) انجام آزمایش های کد خودکار (Automated Unit Tests) مشکل می‌شود. افزودن بر این ، از آنجا که کد رابط کاربری در معماری سه لایه بسیار پیچیده می‌شود ، بخش های زیادی از کد را در عمل نمی توان آزمایش کرد.

به پایان این جلسه آموزشی رسیدیم درصورتی که پیرامون مقالات ASP.NET MVC سوالی داشتید حتما در نظرات این مقاله آموزشی  مطرح کنید.

فیلم آموزشی asp.net core 2

آرزو ابراهیمی
بیش از 6 سال است که زمینه طراحی و توسعه سایت فعالیت می‌کنم، طراح و برنامه نویس انواع سامانه‌های تخصصی پزشکی، مناقصات، فروشگاهی و … بودم و هستم و هدفم در سایت میزفا ارائه اطلاعات بروز و ناب در زمینه طراحی سایت است. تا از این طریق بتونم تجربیات و دانسته های خودم را با تمامی علاقمندان به مباحث طراحی سایت به اشتراک بزارم .

فیلم آموزشی asp.net core 2

بدون نظر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

حداکثر حجم فایل برای آپلود: 1 مگابایت. فایل‌های مجاز برای آپلود: عکس, ویس, ویدیو, ورد یا پی دی اف, فایل متنی, زیپ. شما می‌تونید برای بهتر پرسیدن سوالتون، عکس یا ویس یا حتی فیلم در بخش نظرات میزفا آپلود کنید. برای ضبط ویس می‌تونید از خود واتس آپ استفاده کنید و بعد اینجا آپلود کنید و برای ارسال عکس هم کافی هست اسکرین شات بگیرید. Drop file here

با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

عضویت در خبرنامه هفتگی برای دریافت:

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
فیلم آموزشی asp.net core 2
ترک میزفا خوب نیست!
معرفی جامع‌ترین ابزار سئو در ایران
بالای ۱۰ هزار عضو
PHZpZGVvIHdpZHRoPSI2MDAiIGhlaWdodD0iMzUwIiBwb3N0ZXI9Imh0dHBzOi8vbWl6ZmEuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDUvcG9zdGVyLW1pemZhLXRvb2xzLXZpZGVvLW1pbi5wbmciIGNvbnRyb2xzIHByZWxvYWQ9Im5vbmUiPiANCiAgIDxzb3VyY2Ugc3JjPSJodHRwczovL21pemZhLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA1L21pemZhX3Rvb2xzXzcyMHAubXA0IiB0eXBlPSJ2aWRlby9tcDQiPg0KPC92aWRlbz4=