大型ASP.NET MVC4项目之插入式程序结构

一,摘要

开发松耦合的模块化程序是一个理想的设计,因为这种设计消除了重编译的风险。使用这种方式设计的模块当开发、部署的时候不需要重编译整个项目。基于一个主项目,在它之上你有多个模块,类似于wordpress core和wordpress插件。下面我们探讨下如何开发一个可插入式的ASP.NET MVC4程序结构。

二,内容

1、创建一个新的ASP.NET MVC项目,模板选择空模板。目前的项目结构如下:

2、创建一个Home控制器,以及Index视图,当运行项目的时候我们将会看如下输出:

3、创建一个Areas文件夹用来承载我们的模块,删除没用到的Models以及App_data文件夹,项目结构看起来如下:

我们的物理文件将显示如下:

4、现在我们添加我们的首个模块叫做Forum

5、在核心项目上查看所有文件将显示如下:

6、点击Forum项目,设置项目输出为..\..\bin

7、在Forum项目的App_Start文件夹下添加ForumAreaRegistration代码文件:

namespace Forum.App_Start
{
    public class ForumAreaRegistration : AreaRegistration
    {
        public override string AreaName
        {
            get { return "Forum"; }
        }
        public override void RegisterArea(AreaRegistrationContext context)
        {
            context.MapRoute(
                "forum_default",
                "Forum/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional },
                namespaces: new string[] { "Forum.Controllers" }
            );
        }
    }
}

8、为了避免名称冲突,我们也要将我们的核心项目的路由配置加名称空间

namespace Core
{
    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[] { "Core.Controllers" }
            );
        }
    }
}

9、编译整个解决方案,运行程序

模块首页

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值