مقاله زبان برنامه نویسی Asp.net Mvc
مقاله زبان برنامه نویسی Asp.net Mvc
مقاله ای که در زیر مطالعه میکنید با عنوان زبان برنامه نویسی Asp.net Mvc از مرکز آموزش مجازی پارس گردآوری و ارائه شده است.
مقدمه زبان برنامه نویسی Asp.net Mvc
ASP.NET MVC چارچوب جدیدیست که برای برنامه های کاربردی تحت وب، نگهداشت پذیری و آزمون پذیری بالایی را به ارمغان آورده است که این مهم توسط الگوی Model – View – Controller محقق می شود. این مدل برنامه نویسان را تشویق به جدا سازی سیستماتیک قسمتهای User Interface و قسمتهای مربوط به کنترل داده های وارد شده توسط کاربر و همچنین قسمتهای مربوط به ارتباط و تراکنش با پایگاه داده می کند.اما با معرفی ASP.NET MVC 3 و Wizard هایی که برای کار با آن به 2010Visual Studio اضافه شد پروسه برنامه نویسی ASP.NET بسیار آسان و سریع شده است، تا حدی که اگر دیتابیس از قبل طراحی شده باشد تکمیل برنامه نویسی یک پروژه با حدود 10 جدول در بانک اطلاعاتی بیشتر از یکی دو ساعت زمان نخواهد گرفت.
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 است.
منابع
1. آموزش كاربردی ، ASP.NET MVC 2، تالیف : مرتضی پورمحمد
2. ارتباط با بانک اطلاعاتی در ASP.NET MVC، ابوالفضل عقیلی کوهستانی