دسترسي به داده ها در ASP.Net MVC با استفاده از Entity Framework و HTML Helper ها
در اين پست از وب سايت آكادمي برنامه نويسان به معرفي ASP NET MVC خواهيم پرداخت و خواهيم گفت ASP.NET MVC چيست و چه كاربردي هايي دارد .
معرفي ASP NET MVC
Model-View-Controller يا MVC الگويي است كه يك برنامه كاربردي را به سه بخش اصلي زير تفكيك مي كند :
- Model
- View
- Controller
چهار چوب ASP.NET MVC يك جايگزين ASP.NET Web Form ها براي ساخت برنامه هاي تحت وب است. چهار چوب ASP.NET MVC سبك بوده و قابليت تست پذيري بالايي دارد و همچنين يكسري از ويژگي هاي ASP.NET Form را مانند master page ها ، سيستم هاي احراز هويت داراست. فريمورك MVC در اسمبلي System.Web.Mvc تعريف شده است و كنترل كاملي برروي JavaScript،HTML و CSS دارد. همچنين استفاده از آن براي ساخت برنامه هاي با مقياس بزرگ كه تيم هاي مختلفي برروي آن كار مي كنند پيشنهاد مي شود.
الگوي طراحي MVC
مزاياي يك برنامه تحت وب MVC
فريمورك ASP.NET MVC داراي مزاياي زير است :
- مديريت ساده پيچيدگي ها به وسيله تقسيم كردن برنامه به قسمت هاي Model ، View و Controller
- عدم استفاده از view state و فرم هاي سروري
- كنترل كامل برروي HTML، JavaScripts و CSS
- پشتيباني بهتر از آزمون TTD
- به خوبي براي پروژه هايي كه به وسيله تيم هاي بزرگ پشتيباني مي شود كار مي كند و همچنين مناسب براي طراحان وبي است كه نياز زيادي به كنترل كامل برروي رفتار هاي برنامه دارند.
- به صورت پيش فرض از احراز هويت Facebook و google پشتيباني مي كند.
- مديريت ساده برنامه هاي بزرگ به وسيله تقسيم بندي آنها با Area ها.
فضاهاي نام ASP.NET MVC
- System.Web.Mvc
شامل كلاس ها و اينترفيس هايي است كه به وسيله الگوي MVC در ASP.NET پشتيباني مي شود.اين فضاي نام شامل كلاس هايي مانند controller ها ، action result ها، view ها ، partial view ها ، model binder هاست. - System.Web.Mvc.Ajax
شامل كلاس هايي است كه اسكريپت هاي Ajax را در يك برنامه ASP.NET MVC پشتيباني مي كند. - System.Web.Mvc.Async
شامل كلاس ها و اينترفيس هايي جهت پشتيباني يك برنامه MVC از اعمال غيرهم زمان . - System.Web.Mvc.Html
شامل كلاس هايي است كه كمك به رندر كردن كنترل هاي HTML در يك برنامه MVC مي كند. كلاس هاي موجود در اين فضاي نام پشتيباني ميكنند از فرم ها ، كنترل هاي ورودي ، لينك ها ،partial view ها و اعتبار سنجي.
تفاوت هاي بين ASP.NET MVC و Web Form ها
در اين قسمت معرفي ASP NET MVC به تفاوت هاي بين ASP.NET MVC و Web Form ها خواهيم پرداخت :
ASP.NET WEB FORM | ASP.NET MVC |
---|---|
Web Form ها از تكنيك Code behind براي تقسيم يك صفحه .aspx دو بخش يكي براي نمايش و ديگري فايل هاي كد aspx.cs/aspx.vb استفاده مي كنند | يك برنامه وب MVC از الگوي طراحي جهت مديريت برنامه به 3 بخش Model ، View و Controller استفاده ميكند. |
ASP.NET Web Form شامل كنترل هاي سروري است | ASP.NET MVC داراي html helper هاست |
ASP.NET Web Form از View state براي مديريت وضعيت سمت كاربر پشتيباني مي كند. | ASP.NET MVC از View State پشتيباني نمي كند |
كنترل محدودي برروي HTML و JavaScript و CSS فراهم مي كند | كنترل كاملي برروي JavaScript ، HTML و CSS فراهم مي كند |
مناسب براي برنامه هايي با مقياس كوچك و تيم هايي برنامه نويسي با تعداد كم | مناسب براي كار برروي برنامه هايي با مقياس بزرگ و چندين تيم برنامه نويسي |
ساختار برنامه ASP.NET MVC
ساختار يك برنامه ASP.NET MVC حداقل به سه پوشه View ، Model و Controller تقسيم مي شود همچنين پوشه هاي ديگري براي نگهداري فايل هاي اسكريپت و داده و موارد ديگر وجود دارد.
- Model
ازمدل براي نگهداري داده كلاس هاي ايجاد شده به وسيله Linq to SQL يا Entity Framework ، و يا ارجاع به سرويس هايي مانند WCF استفاده مي شود . در نهايت استفاده از مدل براي ارائه داده ها به View است. - View
پوشه View براي نگهداري View ها و يا Patial View ها استفاده مي شود هر View عمل خاصي را بر اساس آنچه كلاس كنترلر به آن محول كرده انجام مي دهند. معمولا پوشه View شامل پوشه اي با نام Shared مي شود كه صفحات و يوزر كنترل هايي كه به وسيله بيشتر كنترلر ها استفاده مي شود در آن قرار دارد. - Controller
پوشه كنترلر مجموعه اي از كلاس ها را شامل مي شود كه هر كلاس فرزند System.Web.Mvc.Controller است.يك كلاس كنترلر تنها شامل متد ها يي مي شود كه به آنها متدهاي Action گفته مي شود. متدهاي Action مسئول برگرداندن يك Patial View , View ، محتوا ، داده Json و موارد ديگر است.
اكشن ها
اكشن ها براي نوشتن كدها براي انجام كاري خاص استفاده مي شوند همچنين مسئوليت بازگشت دادن مواردي براي كاربر مانند يك صفحه ويا يوزر كنترل را بر عهده دارند. هر اكشن شامل يكي از دو نوع در خواست HTTP زير مي شود:
- [HttpGet] اكشن ها ي HttpGet براي اجراي درخواست هايي كه مستقيما از كاربر مي رسد و يا به عبارتي درخواست ها براي اولين بار به وسيله متد اكشن دريافت مي شود.
- [HttpPost]
اكشن هاي [HttpPost] تنها زماني فراخواني مي شوند كه قبلا در سمت كاربري بازديد شده اند و كاربر يك فرم HTML را به وسيله دكمه Submit ارسال مي كند همچنين وقتي كه اين نوع اكشن فراخواني مي شود در آن مي توان همه مقادير كنترل ها را به وسيله FormCollection از فرم HTML بدست آورد. يك متد اكشن مي تواند انواع مختلفي از اطلاعات و مقادير را براي كاربر برگرداند. ما مي توانيم انواع مختلفي را براي كاربر از يك متد اكشن برگردانيم اما بيشتر از ActionResult استفاده مي كنيم زيرا ActionResult والد انواع مخلتف است.
Area ها در ASP.NET MVC
در نسخه ASP.NET MVC 2.0 مايكروسافت ويژگي جديدي با نام Area ها را معرفي كرد. Area ها براي تقسيم بندي يا مجزا كردن يك برنامه بزرگ به چندين برنامه MVC استفاده مي شود . به عنوان نمونه :
زمانيكه شما يك area را به پروژه اضافه مي كنيد يك route (مسير) براي area در فايل AreaRegistrationتعريف مي شود.اين route درخواست هاي رسيده از URL به يك area هدايت مي كند.
كلاس آموزش طراحي وب سايت در مشهد با ASP.NET MVC
برچسب: ،