نگاهی به ASP.NET MVC و بررسی ساختار آن
MVC یا Model View Controller معماری بود که مایکروسافت در سال 2009 از آن در پیاده سازی فریم ورکی بر روی بسترASP.NET استفاده کرد. همونطور که می دانید .Net Framework پلتفرمی برای ساخت انوع نرم افزار ها، از جمله نرم افزار های Desktop، Web، Console و ... می باشد و از زیرساختی خاص وهزاران کلاس پایه برای رفع نیاز های کلی برنامه نویسان تشکیل شده است.
بر روی بستر دات نت، پلتفرم و زیر ساخت دیگری به نام ASP.NET Framework و به منظور تولید نرم افزارهای تحت وب تولید شد و در نهایت، چیزی که عملا ما با آن ها سر و کار داریم، دو فریم ورک WebForm و MVC هستند که مایکروسافت آن ها بر روی فریم ورک ASP.NET توسعه داد. به طور مثال کلاس های مربوط که Caching، Authentication، Authorization و بسیاری موارد دیگر در Framework ASP.NET قرار دارند و WebForm و MVC از آن ها بهره می گیرند.
اوایل ظهور این فریم ورک این دیدگاه ایجاد شده بود که آینده از آن MVC است و مایکروسافت قصد دارد Asp.net را به سمت این فریم ورک سوق دهد، اما همانطور که خود مایکروسافت هم بار ها بیان کرده، MVC جایگزینی برای WebForm نیست و هر دوی این ها در آینده توسعه خواهند یافت. اما واقعا چرا با وجود WebForm چنین فریم ورکی توسعه داده شد؟!
اگر تا حدی با برنامه نویسی چند لایه آشنایی داشته باشید، مطمئنا نام معماری 3 لایه یا N لایه (N Tier/Layer) زیاد به گوشتان خورده است. هدف از پیاده سازی یک نرم افزار به صورت چند لایه، شکستن بخش های مختلف نرم افزار به قسمت های کوچکتر و توسعه مجزای هر یک از واحد ها برای افزایش Maintainability و Reliability در نرم افزار است. MVC نیز بر همین اصل تایید دارد اما به شکلی بسیار قوی تر. در MVC اجزای مختلف به سه بخش کلی Model، View و Controller تقسیم می شوند و این سه بخش به گونه ای پیاده سازی شده اند که کمترین وابستگی را به یکدیگر را داشته باشند (Seperation Of Concern)، که به دنبال خود همان دو ویژگی مذکور (Maintenance و Reliability) و علاوه بر آن افزایشTest Ability (در توسعه Test Driven Development) نرم افزار را به دنبال خواهد شد.
یکی از ویژگی های مهمی که برای MVC مطرح می شود قابلیت Unit Testing بالای آن است. Unit Testing به معنای تست واحد های مجزای یک نرم افزار، مستقل از دیگر واحد ها می باشد. بطور مثال اگر قرار باشد Business Logic یک نرم افزار مورد تست و ارزیابی قرار گیرد و از کارکرد درست آن اطمینان حاصل شود، این امکان توسط این نوع معماری و به دلیل ساختار آن به شکل بهتر و گسترده تری فراهم می شود.
همانطور که ذکر شد MVC شامل سه قسمت Model، View و Controller می باشد:
Model: مدل که شاید بتوان گفت بخش بزرگ و اساسی این نوع معماری را تشکیل می دهد، تمامی Logic یک نرم افزار را در خود جای داده است. در واقع Domain Model یک نرم افزار که شامل کلیه Business Logic ها، Rule ها،Entity ها و واحد های مختلف برای سرویس دهی به این اجزا می باشد، در این بخش قرار دارند.
View :View یا همان UI بخشی است که فقط مسئول نمایش اطلاعات Model بر روی فرم های وب (در اینجا) می باشد. دقت کنید که از واژه "فقط" استفاده کردم، به این معنی که View هیچ دخالتی در هیچ پردازشی بر روی Model ندارد و نباید داشته باشد. مقایسه کنید با مدل Code Behind در WebForm ها که همیشه بخشی از Logic یک نرم افزار در آن قرار می گرفت و شاید عمده دلیلی که در View های MVC چیزی به نام Code Behind وجود ندارد همین است.
Controller: کنترلر وظیفه برقرای ارتباط بین Model و View را بر عهده دارد، در واقع این Controller است که با دریافت پارامتر هایی از ورودی (فرم های وب، Query string و...) و انجام پردازش بر روی Model و در ارسال اطلاعات نهایی به View برای نمایش، جریان بین این دو را کنترل می کند.
حال که تا حدی با ساختار این معماری آشنا شدید بد نیست که کمی در مورد تاریخچه آن نیز بدانید:
الگوی MVC اولین بار در سال 1987 توسط فردی به نام Trygve Reenskaug با نام اولیه یThing Model View Editor مطرح شد و خیلی نگذشت که نام به آن Model View Controller تغییر داده شد. MVC برای اولین بار در زبان Small Talk به عنوان یک GUI Pattern مورد استفاده قرار گرفت و پس از سال ها رشد و باز شدن پای MVC به دنیای وب، امروزه در فریم ورک های معروفی همچون Ruby On Rail، Merb و Django مورد استفاده قرار می گیرد.
Mono Rail اولین فریم ورک MVC برای Asp.net بود که به صورت Open Source منتشر شد و در نهایت خود مایکروسافت بود که توسط Scott Guthrie جدید ترین و مدرن ترین فریم ورک خود را برای Asp.net در سال 2009 منتشر ساخت.
اما برخی از مزایای WebForm و MVC نسبت به هم از زبان خود مایکروسافت:
Advantages of an MVC-Based Web Application
The ASP.NET MVC framework offers the following advantages:
Advantages of a Web Forms-Based Web Application
The Web Forms-based framework offers the following advantages:
البته برای افرادی که تا کنون با WebForm کار کرده اند، ممکن است این تصور ایجاد شود که عدم وجود کنترل های Server Side و حتی event ها در Asp.net MVC، نوع برنامه نویسی با این فریم ورک باید بسیار سخت تر باشد، اما این اطمینان را می دهم که واقعا به این شکل نیست و اگر در MVC زیر ساخت های لازم فراهم شود، سرعت توسعه در آن چندین برابر WebForm ها خواهد بود.
به گزارش روابط عمومی سازمان توسعه تجارت، اسحاق جهانگیری معاون اول رییس جمهور در بخشنامهای به وزارتخانهها، موسسات دولتی، نهادهای انقلاب اسلامی و استانداریها اعلام کرد که برای جلوگیری از اتخاذ و ابلاغ مقررات ناهمخوان و متضاد در زمینه صادرات غیرنفتی و به منظور ایجاد تعامل بیشتر دستگاههای مربوطه پیش از ابلاغ هرگونه تصمیمات و مقررات، هماهنگی لازم با شورای عالی توسعه صادرات غیر نفتی صورت بگیرد.
این تصمیم در راستای سند راهبرد ملی توسعه صادرات نفتی و تلاش های دولت برای دستیابی به اهداف چشم انداز بیست ساله کشور اتخاذ شده است.
- کار بازگشائی این راه مرزی به طول ۱۲ کیلومتر انجام شده که ۳ کیلومتر آن آسفالت و بقیه مسیر در حال حاضر زیر سازی اصولی آن انجام شده که با شروع مجدد پروژه این مقدار نیز آسفالت می شود.
بخشی از این راه در سال جاری آسفالت خواهد شد و مابقی در صورت تخصیص به موقع اعتبارات در سه ماهه اول سال ۹۴ به اتمام خواهد رسید.
مدیران و مسئولان در دولت تدبیر و امید قول داده اند ،پروژه راه مرزی روتک خاش به طول افزون بر 120 کیلومتر ساخته می شود.
برای اجرای این پروژه افزون بر 45 میلیارد ریال اعتبار پیش بینی شده است.
مردم خاش هم اینک برای دسترسی به منطقه مرزی روتک به ناچار حدود 350 کیلومتر راه را با عبور از شهرستان سراوان و مرز جالق و یا شهرستان میرجاوه طی می کنند.
با ساخت محور خاش- روتک این فاصله طولانی 200 کیلومتر کوتاه تر می شود.
- ایجاد بازارچه مرزی و آسان شدن تجارت و مبادلات کالا در کنار تقویت مناسبات فرهنگی، سیاسی، اجتماعی و غیره از مزیتهای مهم اجرای این طرح است.
- تاکنون برای انجام عملیات برش کوه و بازگشایی مسیرهای سخت گذر این محور افزون بر 15 میلیارد ریال هزینه شده است.
منطقه مرزی روتک خاش با داشتن آب فراوان و زمین های حاصلخیز و 1500 موتور پمپ فعال، افزون بر 6500 هکتار نخیلات بارور دیم و محصول خرمای با کیفیت بسیار بالا و ارگانیک را درخود جای داده است.
خاش 124 کیلومتر مرز مشترک زمینی با کشور دوست و همسایه پاکستان دارد.
خاش در 185 کیلومتری جنوب زاهدان مرکز استان سیستان و بلوچستان واقع شده است.
محمد امین میربلوچزهی ،خبرنگار خاش
همواره در سراسر زندگی شغلی، حرفه ای و اجتماعی خود بدین سوگند وفادار باشم.
به انسان، به عنوان یک موجود صاحب خرد و شگفت انگیزترین پدیده آفرینش بیاندیشم، صدیق و واقع بین باشم و به هیچ اقدامی که به انسان و انسانیت آسیب رساند، مبادرت نورزم.
دانش مهندسی و تجربه حرفه ای خود را که میراث مشترک بشری است، مغتنم دانم و کوشش کنم تا آن را به روز نگهدارم و در حد توان خود به گنجینه دانش و تجربه های سودمند بشری بیفزایم.
ایران زادگاه من است که در آن زاده و پرورده شده ام، کوشش خواهم کرد که دین خود را به سرزمینم، مردمانم، نیاکانم، و آیندگان ادا کنم.
در طول زندگی حرفه ای خود تلاش کنم تا نقش موثری در توسعه پایدار کشورم داشته باشم.
در حد توان به دانشگاه که مربی علمی و فنی من است و به کسانی که پس از من در این مکان مقدس پرورش خواهند یافت، خدمت کنم.
سرمایه های هستی، چون ماده، انرژی، محیط زیست و نیروی کار را سرمایه های تمام بشر بدانم، و در حفظ و کاربرد درست و بهسازی آنها کوشش نمایم.
در تمام فعالیتهای مهندسی خود صداقت، دقت، نظم، عدالت، سرعت عمل، حفظ منابع اجتماع و حقوق دیگران را مراعات کنم و سلامت، ایمنی و آینده نسلها را در نظر داشته و به آنان مهربان، دلسوز و متعهد باشم و همواره سود خویش را در منافع عام جستجو کنم، رشوه خواری و سایر رذایل اخلاقی را طرد و برای زحمات خود ارزش مادی ای در حد معقول و متعارف طلب کنم.
در تمام کوشش های مهندسی خود از دانش روز و آخرین یافته های فنی آگاه شوم و آنها را با ابتکار، خلاقیت و نو آوری در طراحی، برنامه ریزی و اجرا بکار بندم.
در تمام کوشش های مهندسی خود استانداردهای را مراعات و تنها در حیطه دانش و توانایی خود کار قبول کنم و تنها مدارکی را امضا کنم که به آنها احاطه فنی کامل دارم. در مواردی که منع قانونی و حق مالکیت اختصاصی وجود ندارد، دانش خود را آزادانه و به صورت رایگان منتشر کنم و در اختیار دیگران قرار دهم.
در ادای وظایف حرفه ای محول شده، متعهد، مسئولیت پذیر، مشارکت پذیر و رازدار باشم.
محیطی پر از محبت و صفا و عشق و علاقه به خدمتگذاری بی ریا به مردم و وطنم را بوجود آورم و همکاران خود را بدون توجه به ملیت، نژاد، مذهب، جنسیت، سن و عقیده دوست بدارم و ارزش های انسانی را در خود و در آنان پرورش دهم.
در کوششهای مهندسی خود همیشه فردی متواضع باشم و موفقیتهای به دست آمده را علاوه بر سعی و کوشش خود مرهون تلاش همکاران و نظام آفرینش بدانم و از آنان قدردانی و سپاسگذاری کنم.
در تمام کوششهای مهندسی خود جویا و پذیرای نقد و اظهار نظر صادقانه همکاران باشم و از لطمه زدن به حیثیت، شهرت، دارایی یا اشتغال دیگران پرهیز و از اقدامات بد خواهانه برای آنان خوداری کنم.
از کوشش های فرهنگی و فعالیتهای اجتماعی که به منظور توسعه رفاه عمومی انجام می گیرد، استقبال و در آنها شرکت کنم.
همکاران خود را به رعایت اصول اخلاق مهندسی و وجدان حرفه ای تشویق کنم.