ماژول نویسی در Asp.net MVC

ماژول نویسی در Asp.net MVC

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

راه حل چیست ؟

این خیلی واضح است که ماژول ها باید به طور مستقل بدون هیچ وابستگی ای در برنامه اصلی گسترش پیدا کنند.

به طور ایده ال ،هر ماژول ای آماده برای ادغام است.ماژول ها می توانند به وسیله یکسری تنظیمات کوچک با برنامه اصلی لینک شوند.

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

basic،professional، premium،enterprise .

ساخت برنامه

فرض کنید نرم افزاری با ماژول های زیر بسازیم

بازاریابی

فروش

حسابداری

پرسشنامه

انبار

ما می خواهیم بک نرم افزاری را بسازیم که اجازه فروش ،توزیع و توسعه برای ماژول های بالا را بصورت جداگانه بدهد.

ویژوال استودیو 2012 را باز کرده و یک پروژه Asp.net MVC4 با یک قالب ابتدایی می سازیم.

اسم پروژه را productDemo می گذاریم.

solution شما شبیه زیر می شود

روی فولدر controller راست کلیک کرده و “Add -> Controller...”  را انتخاب کرده و  نام آنرا HomeController می گذاریم و “Empty MVC Controller” را انتخاب می کنیم .

Index view را می سازیم

کد مربوط به صفحه Layout را شبیه زیر می سازیم

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59           "utf-8" />       "viewport" content="width=device-width" />       @ViewBag.Title       @Styles.Render("~/Content/css")       @Scripts.Render("~/bundles/modernizr")                                     

Product Demo - Pluggable Modules

                     "nav">               @Html.ActionLink("Home","Index","Home", new {Area=""}, null) |               @Html.ActionLink("Marketing","Index","Marketing", new {Area="Marketing"}, null) |               @Html.ActionLink("Billing","Index","Billing", new {Area="Billing"}, null) |               @Html.ActionLink("Inventory","Index","Inventory", new {Area="Inventory"}, null) |               @Html.ActionLink("Warehouse","Index","Warehouse", new  {Area="Warehouse"}, null)                      
                             @RenderBody()                         @Scripts.Render("~/bundles/jquery")       @RenderSection("scripts", required: false)    

برنامه را اجرا می کنیم . خروجی ما به صورت زیر می شود

ساختن ساختار پوشه ای Areas

روی عنوان اصلی پروژه راست کلیک می کنیم و “Add->Area…”  را انتخاب می کنیم. نام “Marketing” را به عنوان نام Area گذاشته و دکمه Add  را می زنیم.

solution ای شبیه زیر داریم.

هم اکنون ما یک بک آپ از  MarketingAreaRegistration.cs می گیریم. این فایل برای زمانی که بخواهیم ماژول Marketing  را بصورت یک پروژه جداگانه اضافه کنیم ،نیاز است.

حال پوشه Marketing را از پوشه Areas پاک می کنیم .

اضافه کردن ماژول به برنامه اصلی

روی solution راست کلیک کرده و “Add-> New Project…”  را انتخاب می کنیم .

- ASP.NET MVC 4 Application را انتخاب می کنیم

-نام پروژه را ‘Marketing’ انتخاب می کنیم

-مسیر پروژه را به صورت زیر انتخاب می کنیم

“…\ProductDemo\Areas\”

پروژه را با استفاده از Basic template  می سازیم.

در پروژه Marketing ساخته شده جدید ، فایل های زیر را پاک می کنیم.

App_Data

App_Start Content folder Shared sub-folder under View global.asax file    هم اکنون solution ما  شبیه زیر می شود در فایل RouteConfig.cs  مربوط به پروژه ProductDemo کد زیر را جایگزین می کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 using System;   using System.Collections.Generic;   using System.Linq;   using System.Web;   using System.Web.Mvc;   using System.Web.Routing;        namespace ProductDemo   {       public class RouteConfig       {           public static void RegisterRoutes(RouteCollection routes)           {               routes.IgnoreRoute("{resource}.axd/{*pathInfo}");                    routes.MapRoute(                   "Default",                   "{controller}/{action}/{id}",                   new { controller = "Home", action = "Index", id = UrlParameter.Optional },                   new string[] { "ProductDemo.Controllers" }               );           }       }   }

فایل بک آپ MarketingAreaRegistration.cs را به روت پروژه Marketing اضافه می کنیم.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 using System.Web.Mvc;        namespace ProductDemo   {       public class MarketingAreaRegistration : AreaRegistration       {           public override string AreaName           {               get               {                   return "Marketing";               }           }                public override void RegisterArea(AreaRegistrationContext context)           {               context.MapRoute(                   "Marketing_default",                   "Marketing/{controller}/{action}/{id}",                   new { controller = "Marketing", action = "Index", id = UrlParameter.Optional },                   new string[] { "Marketing.Controllers" });           }       }   }

هم اکنون مسیر خروجی پروژه Marketing  روی ..\..\bin\ تنظیم می کنیم

حال یک Marketing controller را در پروژه Marketing  می سازیم.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 using System;   using System.Collections.Generic;   using System.Linq;   using System.Web;   using System.Web.Mvc;        namespace Marketing.Controllers   {       public class MarketingController : Controller       {           //           // GET: /Marketing/                public ActionResult Index()           {               return View();           }            }   }

یک Index view  را می سازیم و “Welcome to the Marketing Module”  در هدر آن قرار می دهیم .

1 2 3 4 5 6 7 8 9 @{       ViewBag.Title = "Index";   }       

Welcome to the Marketing Module

هم اکنون برنامه ProductDemo  ما آماده برای استفاده از ماژول Marketing است . سولوشن را build می کنیم و در فولدر bin مربوط به پروژه dll کامپایل شده ماژول Marketing  را آنجا می بینیم .

خروجی Marketing Index   با استفاده از Marketing.Controllers.Marketing controller

مراحل بالا را هم برای ماژول های دیگر انجام دهید.

امیدوارم مقاله برایتان مفید باشد.


مطالب مشابه :


پروژه های دانشجویی در www.a00b.com  

پروژه های ASP.NET(بر پایه سی شارپ) - پروژه های دانشجویی در www.a00b.com - در این وب لاگ می توانید مطالبی




یادگیری Asp.Net را چگونه و از کجا شروع کنیم؟

پروژه های ASP.NET(بر پایه سی شارپ) - یادگیری Asp.Net را چگونه و از کجا شروع کنیم؟ - در این وب لاگ می




انجام پروژه های دانشجویی

دانلود رایگان یک پروژه وب سایت با asp.net به همراه ارتباط با sql server پروژه دانشگاه کامل




ماژول نویسی در Asp.net MVC

آموزش MVC - ماژول نویسی در Asp.net MVC - آموزش تمامی مباحث mvc و نکات کاربردی که با تجربه به آن رسیدم




انجام پروژه ASP.NET MVC

انجام کلیه پروژه های برنامه نویسی، طراحی پایگاه داده اکسس و محاسبات در محیط اکسل




تغییر فرهنگ سازمانی

پروژه های asp.net(بر پایه سی شارپ) - تغییر فرهنگ سازمانی - در این وب لاگ می توانید مطالبی در مورد




دانلود پروژه ASP.NET

بیا توش حال کن - دانلود پروژه asp.net - رمان نوعي هنر ادبي است كه دين را به ندرت مضمون اصلي و




hype cycle چیست

پروژه های ASP.NET(بر پایه سی شارپ) - hype cycle چیست - در این وب لاگ می توانید مطالبی در مورد پروژه های




Stored Procedure چیست ؟

پروژه های ASP.NET(بر پایه سی شارپ) - Stored Procedure چیست ؟ - در این وب لاگ می توانید مطالبی در مورد




برچسب :