امروز در سلسله مقالات آموزش ASP دانشجویار به بررسی Asp.net mvc جزییات و کاربرد آن پرداخته ایم.

در مقاله Asp.net mvc چیست ابتدا به بررسی معنای این معماری مبتنی بر Asp.net می‌پردازیم. Asp.net mvc یک ساختار صفحه وب بر اساس معماری Mode view controller است که توسعه دهندگان می‌توانند با استفاده از آن برنامه‌های وب پویا را توسعه دهند. از الگوی معماری MVC معمولا در اپلیکیشن های ویندوز (دسکتاپ) استفاده میشد اما در زمان کنونی، وبسایت ها و اپلیکیشن های موبایل هم نیازمند پویایی بیشتر هستند. برای همین امروزه از معماری MVP در تولید APP های موبیال و طراحی سایت هم استفاده میشود.

MVC مخفف چیست؟

کلمه MVC در واقع کوتاه شده عبارت Model، View و Controller بوده که به معنای مدل، نمایشگر و کنترل‌کننده است. بخش مدل در این عبارت نمایانگر مدل اصلی حاوی اطلاعات برنامه بوده که شامل دسترسی به پایگاه‌داده‌ها، قوانین اعتبار و منطق مجتمع سازی است. قسمت View نیز در واقع وظیفه نمایش اطلاعات به کاربر را برعهده دارد و در واقع همان کد HTML بوده که بر مبنای کدهای HTML نوشته شده است. کنترلر هم جریان منطقی و کاربردی برنامه که در تعامل با دو عنصر پیشین ساختار کلی برنامه را تشکیل می‌دهد.

الگوی معماری به چه معناست؟

الگوی معماری شامل مجموعه قوانین و مقرراتی است که ساختار یک نرم افزار یا وبسایت را تحت تاثیر خود قرار میدهد. انسجام داشتن یک کدنویسی همیشه از اهمیت بالایی برخوردار است. کدی که بدون انسجام و بدون نظم نوشته شده باشد را نمیتوان مجددا استفاده کرد. حتی شما برای بروزرسانی و ارتقا یک کد بدون معماری و الگو هم با مشکل مواجه میشوید. اما الگو های معماری نظیر MVP برنامه و کدهای شما را دارای نظم کرده و قابلیت استفاده مجدد به کد شما افزوده خواهد شد. در ادامه مقاله “Asp.net mvc چیست؟” به بررسی تفاوت میان الگوی معماری و الگوی طراحی خواهیم پرداخت.

تفاوت الگوی معماری با الگوی طراحی در چیست؟

الگوی معماری ساختار کلی پروژه شما را مشخص کرده و تعیین میکند که هر بخشی نظیر ارتباط با سرور، ارتباط با دیتابیس و حتی UI را در کجای کدنویسی استفاده کنید. اما الگوی طراحی یا همان Design Pattern صرفا برای برطرف کردن یک مشکل خاص مورد استفاده قرار میگیرد. مثلا از دیزاین پترن Singleton صرفا برای جلوگیری از ساخته شدن مجدد شی از کلاس استفاده میکنیم. اما معماری MVC تغییرات و مقررات خاص خود را در کل کدنویسی ما اعمال میکند. دقت کنید که الگوی معماری MVP یک زبان برنامه نویسی نبوده و صرفا یک روش و قانون برای مرتب سازی و بهینه سازی کدها میباشد.

الگوی معماری MVC به بیانی ساده

پیش از این جواب سوال Asp.net mvc چیست را بیان کردیم و فهمیدیم که Asp.net mvc یعنی همان Asp.net که بر پایه الگوی معماری MVC پیاده سازی میشود. اما الگوی معماری MVC به بیان ساده تر یعنی جدا کردن View از بخش Controller و منطقی برنامه. بگذارید ساده تر بیان کنیم. بخش View در نرم افزار مسئول نمایش رابط کاربری به کاربر میباشد. این بخش نباید بداند و بفهمد که داده ها به چه شکلی و از کجا می‌آیند. در واقع منطق و Repository برنامه نوشته شده هیچ ربطی به View ندارد.

به عنوان مثال در برنامه نوشته شده، View باید داده های مربوط به 100 کاربر را از ورودی دریافت کرده و به شکل خاصی که خودش میداند به نمایش درآورد. اینجا برای View فقط مهم است که اطلاعات 100 کاربر از ورودی دریافت شود و اصلا View به این موضوع که اطلاعات چگونه و چه مسیری دریافت شده اند کاری ندارد. مطابق همین موضوع، Model صرفا مسئول فراهم سای داده ها خواهد بود و وظیفه او فراهم کردن اطلاعات 100 کاربر میباشد. در این میان Controller وظیفه دارد تا اطلاعاتی که Model فراهم کرده است را به دست View برساند تا نمایش داده شود. به همین سادگی.

مزایای استفاده از معماری Asp.net mvc چیست؟

قطعا وقتی یک پلتفرم به صورت جدای از پلتفرم ها منتشر و توصیه میشود، امکانات و مزایایی دارد. به صورت کلی مزیت استفاده از الگوی معماری MVC همان افزایش انسجام و قابلیت بروزرسانی و استفاده مجدد میباشد. اما اگر بخواهیم کمی دقیق تر و با جزئیات بیشتری این موضوع را بررسی کنیم، ویژگی های منحصربه‌فرد Asp.net mvc عبارتنداز :

1 – ساختار بهینه و ماژولار

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

2 – عدم استفاده از Veiw State

معماری Asp.net mvc از View State استفاده نمی‌کند تا از هر جهتی مناسب توسعه‌دهندگانی باشد که تسلط کامل بر نرم‌افزار توسعه داده شده را می‌خواهند. لازم به ذکر است که در این معماری از فرم سرورها نیز استفاده نمی‌شود تا به تسلط بیشتر توسعه دهندگان روی برنامه نوشته شده کمک کند. هر چیزی که معماری MVC از آن استفاده نمیکند، یا هر آنچه که به استفاده آن پیشنهاد میکند قطعا برای بهینه تر شدن کد میباشد.

 3 – پشتیبانی عالی

برنامه‌نویسی با معماری Asp.net mvc بر اساس توسعه طراحی و توسعه آزمون محور انجام می‌شود. این مسئله موجب می‌شود تا پشتیبانی از آن ساده‌تر شود و توسط جوامع نرم‌افزاری که کنترل ثابت روی پروژه می‌خواهند، بهتر عمل می‌کند. پس شما برای یک نرم افزار نوشته شده با معماری MVC میتوانید به راحتی تست های UI و Unit نوشته و روند کدنویسی را حرفه ای تر کنید.

4 – امکان غیرفعال‌کردن اعتبارسنجی

در Asp.net mvc می‌توان اعتبارسنجی را بسیار ساده‌تر از معماری‌های دیگر غیرفعال کرد. این عمل در حد یک کلیک ساده هنگام استفاده از این معماری انجام می‌شود. البته لازم به ذکر است که فیلتر حملات CSRF جزئی از فریم‌ورک MVC است. پس امنیت وبسایت شما نیز تعمین و افزایش پیدا خواهد کرد.

5 – منظور از ایمنی بالا در Asp.net mvc چیست؟

همان‌طور که گفته شد، فیلتر حملات CSRF جزئی از معماری MVC بوده که به ایمنی بالاتر نرم‌افزار توسعه داده شده کمک خواهد کرد. این فیلتر به همراه فیلتر Authorize اعمال سفارشی‌سازی روی سیستم‌های اعتبارسنجی را راحت‌تر کرده و یکپارچگی نسبتاً بالایی را با Role Provider های سفارشی ایجاد می‌کند. لازم به ذکر است که Razor به طور پیش‌فرض ایمن ساخته شده و خروجی آن HTML ENCODED است مگر آن که برنامه‌نویس بخواهد آن را به‌صورت آگاهانه تغیر دهد. (که پیشنهاد نمیشود)

6 – آدرس‌دهی بهتر در MVC

در Asp.net mvc به‌صورت پیش‌فرض از سیستم Routing موجود در زیرساخت‌های Asp.net جهت نمایش URLهای بدون پسوند استفاده شده است. این امر موجب می‌شود تا آدرس‌دهی‌ها برای موتورهای جستجو بهتر انجام شود در نتیجه صفحه وب راحت‌تر توسط موتورهای جستجو شناسایی می‌شود. قطعا این امر سبب بهبود سئوی وبسایت خواهد شد.

7 – تکامل و پایداری بالا نسبت به Asp.net core

این معماری در واقع به تکامل رسیده و همانند معماری Asp.net core درحال‌توسعه نیست؛ این امر پایداری بیشتری را برای این پلتفرم به ارمغان آورده و برنامه‌نویسیان می‌توانند به‌سادگی و بدون دردسر از آن جهت توسعه نرم‌افزارهای خود استفاده کنند. پس شما میتوانید از نسخه نهایی و Stable این معماری برای توسعه اپ های تحت وب خود استفاده کنید.

تفاوت‌های Webform با Asp.net MVC چیست؟

Webform قسمتی از اپلیکیشن Asp.net بوده که یکی از 4 مدل برنامه‌نویسی وب نیز به شمار می‌آید. این ساختار توانایی ساخت نرم‌افزارهای تحت وب Asp.net را دارا بوده و در حقیقت صفحاتی هستند که کاربر در مرورگر درخواست آن ها ارائه می‌دهد. پس در مقاله asp.net mvc چیست با همراه باشید تا ویژگی‌های این معماری توسعه صفحات وب را برای شما بیشتر شرح دهیم.

مزایای استفاده از webform

View State

وب فرم برخلاف MVC از VeiwState پشتیبانی می‌کند و به کمک می‌کند تا فیلدها را هنگام بازگرداندن درخواست به سرور پر کنیم. اگر از طرف‌داران این حالت باشید پس قطعاً استفاده از Wb form به شما پیشنهاد می‌شود.

کنترل‌های جانبی سرور

از دیگر قابلیت‌های این نوع معماری استفاده از کنترلرهای جانبی است که در حقیقت در MVC وجود ندارند. در این نوع معماری تعداد زیادی از کنترلرهای سرور وجود دارد و در صورت نیاز به آن ها می‌توانید در مسیر پیاده‌سازی نرم‌افزار از کنترلر جانبی استفاده کنید.

تعداد آپشن‌های بیشتر برای ایونت‌های کنترلی سرور

تعداد آپشن‌های ایونت بیشتر از دیگر قابلیت‌های Webform بوده که موجب می‌شود به تعداد خط کد کمتری نسبت به MVC جهت انجام کار مشابه وجود داشته باشد. استفاده از این قابلیت نیز کاملاً به توانایی توسعه‌دهنده بستگی دارد و در بعضی از موارد حتی می‌تواند روند کار را کندتر کند.

توسعه سریع‌تر صفحات پیچیده

توسعه سریع‌تر صفحات پیچیده یکی از ویژگی‌های مهم Webform بوده که باتوجه‌به کنترلرهای سرور ساخت پیج‌های پیچیده را راحت‌تر می‌کند. در حقیقت معماری MVC توان انجام این کار را نیز دارا است اما در مدت‌زمان طولانی‌تری پروژه نهایی خواهد شد. البته باید درنظر داشت که سرعت ساخت پیج‌های پیچیده کاملاً به توانایی کدنویسی توسعه‌دهنده بستگی دارد.

مسلماً این معماری در مقایسه با mvc معایبی را گریبان‌گیر توسعه‌دهنده خواهد کرد که از جمله آن ها می‌توان به ایمنی نسبتاً پایین WebForm در مقایسه با mvc اشاره کرد. البته هر دوی این معماری‌ها از پایگاه‌داده بسیار قدرتمند SQL Server پشتیبانی می‌کنند که ویژگی‌های ایمنی بسیار مناسبی را دارا بوده و این تفاوت‌ها در مقیاس بزرگ قابل‌توجه هستند. در صورت استفاده از این معماری‌ها در پروژه‌های کوچک هر دو می‌توانند راه گشای پروژه شما باشند و سرعت کدنویسی در هیچ‌کدام از آن‌ها به تفاوت چندانی نخواهد داشت.

جمع‌بندی کلی مقاله Asp.net mvc چیست

تا این قسمت از مقاله Asp.net mvc چیست به بررسی و معرفی asp.net mvc پرداختیم و تعریفی از تفاوت asp.net mvc و webform را نیز ارائه دادیم. استفاده از هر نوع معماری جهت تولید نرم‌افزار تحت وب می‌تواند مزایا و معایبی را داشته باشد و این کاملاً به توسعه دهند بستگی دارد که کدام نوع را باتوجه‌به هدف پروژه انتخاب می‌کند. در نهایت این مقاله به شما کمک خواهد کرد که ویژگی‌های معماری asp.net mvc را بشناسید و باتوجه‌ به هدف نهایی پروژه خود نسبت به انتخاب معماری برنامه‌نویسی اقدام کنید.