itsurge
یک شنبه 07 تیر 1394, 00:07 صبح
قسمت اول
با سلام
تا حالا شده خیلی از دوستان این مسله براشون پیش بیاد که دوست داشته باشند سایتی طراحی کنند مثلا سایت هایی که با وردپرس یا جوملا طراحی می شود که خصوصیت پلاگین یا همون ماژول نویسی رو برای گسترش سایت داشته باشد یا اصلا دوست داشته باشند برای خودشون مدیریت محتوای درست کند با خصوصیت های یاد شده، خوب بریم سراغ اصل مطلب
برای انجام این کار چندین روش وجود داره که با هم بررسی می کنیم
1- استفاده از Areas در asp mvc(ساده ترین کار):
سناریو: ساخت یک سایت با تعداد ماژول فراوان مثلا یک سایت با ماژول های بازار یابی و صورت حساب
خوب باهم شروع می کنیم به ساخت چنین سایتی
در ابتدای کار ما یک سایت پایه درست می کنیم
132665
خوب حالا در پروژه جدید ساخته شده وارد پوشه View سپس Sherad شده و فایل _Layout.cshtml را باز کزده
و به لینک های موجود در صفحه چند لینک زیر را اضافه می نماییم
<li>@Html.ActionLink("بازار یابی", "Index", "Marketing", new { Area = "Marketing" }, null) </li>
<li>@Html.ActionLink("صورت حساب", "Index", "Billing", new { Area = "Billing" }, null)</li>
132666
خوب حالا به پروژه خودمون یک areas به نام Marketing اضافه می کینم
سپس پوشه Marketing موجود در areas رو حذف می کنید و می گذارید پوشه خوده areas باقی بماند
افزودن ماژول
مرحله بعدی افزودن ماژول به برنامه است برای انجام این کار ما به Solution برنامه یک پروژه دیگه از نوع Empty به نام Marketing اضافه می کنیم که این همان ماژول ما می باشد مکان ذخیره سازی پروزه جدید باید درآدرس shop/areas باشد
سپس پوشه های زیر را از پروزه جدید ساخته شده حذف نمایید
App_Data
App_Start
Content folder
پوشه sheard داخل پوشه views
global.asax file
Solution برنامه شما تا اینجای کار
132668
در ادامه سراغ پروژه اصلی خود رفته و فایل RouteConfig.cs را باز نموده و یک namespace به آن اضافه می کنیم
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "Shop.Controllers" }
);
}
}
خوب حالا به سراغ پروژه جدید رفته و به آن یک کلاس به نام MarketingAreaRegistration با کد های زیر اضافه نموده
public class MarketingAreaRegistration : AreaRegistration {
public override string AreaName
{
get
{
return "Marketing";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Marketing",
"Marketing/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new string[] { "Marketing.Controllers" }
);
}
}
حال بر روی پروژه جدید راست کلیک کرده گزینه properties را انتخاب کرده و در تب سمت چپ Build در قسمت OutPut
مقدار زیر را جایگزین نمایید
..\..\bin\
132669
دوباره به پروژه جدید ساخته شده بر می گردیم و یک کنترل به نام Marketing می سازیم سپس برای متد index موجود در کنترل نیز یک view می سازیم
132674
132675
حال برنامه را اجرا کنید و بر روی لینک بازاریابی کلیک نمایید خواهید دید کنترل و view موجود در پروژه جدید ساخته شده توسط شما اجرا می گردد
132676
سخن پایانی
این روش در اصل نمیشه بهش گفت ماژول نویسی ولی یک روش ساده برای انجام بعضی کار ها خواهد بود و در قسمت بعدی روش جالب و کامل تری رو آموزش می دم (البته اگه کمی بد توضیح دادم شما به بزرگواری خودتون ببخشید)
نمونه کد (http://s3.picofile.com/file/8196243876/%D9%8Fshop.rar.html)
با سلام
تا حالا شده خیلی از دوستان این مسله براشون پیش بیاد که دوست داشته باشند سایتی طراحی کنند مثلا سایت هایی که با وردپرس یا جوملا طراحی می شود که خصوصیت پلاگین یا همون ماژول نویسی رو برای گسترش سایت داشته باشد یا اصلا دوست داشته باشند برای خودشون مدیریت محتوای درست کند با خصوصیت های یاد شده، خوب بریم سراغ اصل مطلب
برای انجام این کار چندین روش وجود داره که با هم بررسی می کنیم
1- استفاده از Areas در asp mvc(ساده ترین کار):
سناریو: ساخت یک سایت با تعداد ماژول فراوان مثلا یک سایت با ماژول های بازار یابی و صورت حساب
خوب باهم شروع می کنیم به ساخت چنین سایتی
در ابتدای کار ما یک سایت پایه درست می کنیم
132665
خوب حالا در پروژه جدید ساخته شده وارد پوشه View سپس Sherad شده و فایل _Layout.cshtml را باز کزده
و به لینک های موجود در صفحه چند لینک زیر را اضافه می نماییم
<li>@Html.ActionLink("بازار یابی", "Index", "Marketing", new { Area = "Marketing" }, null) </li>
<li>@Html.ActionLink("صورت حساب", "Index", "Billing", new { Area = "Billing" }, null)</li>
132666
خوب حالا به پروژه خودمون یک areas به نام Marketing اضافه می کینم
سپس پوشه Marketing موجود در areas رو حذف می کنید و می گذارید پوشه خوده areas باقی بماند
افزودن ماژول
مرحله بعدی افزودن ماژول به برنامه است برای انجام این کار ما به Solution برنامه یک پروژه دیگه از نوع Empty به نام Marketing اضافه می کنیم که این همان ماژول ما می باشد مکان ذخیره سازی پروزه جدید باید درآدرس shop/areas باشد
سپس پوشه های زیر را از پروزه جدید ساخته شده حذف نمایید
App_Data
App_Start
Content folder
پوشه sheard داخل پوشه views
global.asax file
Solution برنامه شما تا اینجای کار
132668
در ادامه سراغ پروژه اصلی خود رفته و فایل RouteConfig.cs را باز نموده و یک namespace به آن اضافه می کنیم
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "Shop.Controllers" }
);
}
}
خوب حالا به سراغ پروژه جدید رفته و به آن یک کلاس به نام MarketingAreaRegistration با کد های زیر اضافه نموده
public class MarketingAreaRegistration : AreaRegistration {
public override string AreaName
{
get
{
return "Marketing";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Marketing",
"Marketing/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new string[] { "Marketing.Controllers" }
);
}
}
حال بر روی پروژه جدید راست کلیک کرده گزینه properties را انتخاب کرده و در تب سمت چپ Build در قسمت OutPut
مقدار زیر را جایگزین نمایید
..\..\bin\
132669
دوباره به پروژه جدید ساخته شده بر می گردیم و یک کنترل به نام Marketing می سازیم سپس برای متد index موجود در کنترل نیز یک view می سازیم
132674
132675
حال برنامه را اجرا کنید و بر روی لینک بازاریابی کلیک نمایید خواهید دید کنترل و view موجود در پروژه جدید ساخته شده توسط شما اجرا می گردد
132676
سخن پایانی
این روش در اصل نمیشه بهش گفت ماژول نویسی ولی یک روش ساده برای انجام بعضی کار ها خواهد بود و در قسمت بعدی روش جالب و کامل تری رو آموزش می دم (البته اگه کمی بد توضیح دادم شما به بزرگواری خودتون ببخشید)
نمونه کد (http://s3.picofile.com/file/8196243876/%D9%8Fshop.rar.html)