ماژول نویسی در 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 چیست ؟ - در این وب لاگ می توانید مطالبی در مورد
برچسب :
پروژه asp.net