C#MVC中创建多模块web应用程序
当一个应用程序有越来越多的子模块后,应用程序将变得越来越大,复杂度也越来越高,应用程序也越来越难维护。如果把每个子模块,独立分成不同的web应用程序,则这个项目将易于维护。关于这个的好处,我也描述得不好。总之,模块分开,不同程序员的不同模块,不互相影响,一个庞大的项目,如果分为多个Web应用程序,那将更容易维护。
那么,如何将一个大的web应用程序,分成多个不同的web应用程序呢。
直接记录实现过程:
1.首先,我们创建一个主项目,其他分离项目,都将通过这个主项目为路口。如图所示,我们创建一个Web应用程序,在这里命名为MainModuleDemo,然后选择一下存放的路径;

在这里,我们选择空的MVC项目

点击确定之后,我们的目录长这样

2.然后我们添加一个HomeController和HomeController下的一个页面Index.cshtml,在页面内随便写点什么,用于测试;



现在,我们的目录结构,如下图:

3.现在我们在_Layout.cshtml中写刚才创建的页面的a标签,如下图

@Html.ActionLink("Home", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
4,生成解决方案,运行解决方案,可以看到如下页面

以上是主项目的创建,接下来,正式进入建立子项目的步骤。
5.右键我们的项目ManiModuleDemo->添加->区域(英文版的话,是Areas),如图

6.弹出新增区域名称的对话框,输入我们区域的名字(这个名字会和你待会新建的子项目一致),在这里,我们输入FirstChildModule,点击添加,如下图所示

现在我们的目录结构长这样:

7.将新建的区域下的FirstChildModuleAreaRegistration.cs文件备份一份,然后将Areas下的FirstChildModule文件夹整个删除(包括FirstChildModule文件夹本身),如下图


删除后的目录结构,Areas文件夹是空的,如下图

9.创建我们要创建的子项目,右键解决方案->新建项目

10,弹出新建项目对话框

命名为FirstChildModule,和刚才新建的区域名称是一样的(应该是不需要一样的,只是我没试过,为了容易理解,就设置同样的名字),注意选择的位置,要在主项目MainModuleDemo项目下的Areas文件夹中(其实就是我们刚才删除的区域文件夹一样)
点击确定,选择mvc空项目

现在目录结构长这样:

11、选中MainModuleDemo,点击显示所有文件,可以看到,我们刚才新建的FristChildModule项目,如图

12、更改下MainModuleDemo项目下的RouteConfig.cs,修改命名空间为MainModuleDemo.Controllers,如下图

13、右键FirstChildModule->属性->生成选项卡,修改生成路径

其实这个路径,正好指向主项目的Bin文件夹中
14、在FirstChildModule中创建一个控制器和一个页面


15、把刚才第7步 备份的那个文件FirstChildModuleAreaRegistration.cs,拷贝到FirstChildModule根目录下,以上步骤后,我们的目录结构长这样

16、修改FirstChildModuleAreaRegistration.cs,如下图

17、在MainModuleDemo的_Layout.cshtml文件中,添加如下链接,这个链接是刚才在FirstChildModule中创建的链接

18、生成整个解决方案,我们可以看到FirstChildModule生成的dll文件,在MainModuleDemo中的bin中,如下图

运行项目,可以看到如下页面

点击子模块首页,就可以跳转到我们刚才在FirstChildModule中创建的页面,说明模块分开创建成功。
以上是模块分离的所有步骤。
C#MVC中创建多模块web应用程序的更多相关文章
- 在ASP.NET MVC中创建自定义模块
创建模块 module是实现了System.Web.IHttpModule接口的类.该接口定义了两个方法: Init:当模块初始化时被调用,传入的参数为HttpApplication对象,用于注册请求 ...
- eclipse中创建多模块maven web项目
本文讲述在eclipse中创建分模块maven web项目. 暂时将一个项目分为controller:service:dao以及父类模块四部分. 1.创建父类模块. 创建一个简单的maven proj ...
- 在 Visual Studio 2013 中创建 ASP.NET Web 项目(0):专题导航 [持续更新中]
写在前面的话 随着 Visual Studio 2013 的正式推出,ASP.NET 和 Visual Studio Web 开发工具 也发布了各自的最新版本. 新版本在构建 One ASP.NET ...
- 在 Visual Studio 2013 中创建 ASP.NET Web 项目(1):概述 - 创建 Web 应用程序项目
注:本文是“在 Visual Studio 2013 中创建 ASP.NET Web 项目”专题的一部分,详情参见 专题导航 . 预备知识 本专题适用于 Visual Studio 2013 及以上版 ...
- 【转载】在 Visual Studio 2012 中创建 ASP.Net Web Service
在 Visual Studio 2012 中创建 ASP.Net Web Service,步骤非常简单.如下: 第一步:创建一个“ASP.Net Empty Web Application”项目 创建 ...
- NET Core MVC中创建PDF
使用Rotativa在ASP.NET Core MVC中创建PDF 在本文中,我们将学习如何使用Rotativa.AspNetCore工具从ASP.NET Core中的视图创建PDF.如果您使用ASP ...
- vs2005新建项目中没有ASP.NET WEB应用程序的解决方法
在vs2003的年代,我们可以在项目模板中选择创建"asp.net web应用程序",可是到vs2005中,就变成了创建网站,原有的创建"asp.net web应用程序& ...
- JAVA文件中获取路径及WEB应用程序获取路径方法
JAVA文件中获取路径及WEB应用程序获取路径方法 1. 基本概念的理解 `绝对路径`:你应用上的文件或目录在硬盘上真正的路径,如:URL.物理路径 例如: c:/xyz/test.txt代表了tes ...
- 如何在 Azure 中创建 ASP.NET Web 应用
Azure Web 应用提供高度可缩放.自修补的 Web 托管服务. 本快速入门演示如何将第一个 ASP.NET Web 应用部署到 Azure Web 应用中. 完成后,便拥有了一个资源组,该资源组 ...
随机推荐
- Day1:字符编码
一.ASCII码 ASCII(American Standard Code for Information Interchange,美国标准信息交换代码),8位,一个字节,最多只能表示255个符号. ...
- Loadrunner--常见问题及解决办法
1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消掉 2.在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen.exe文件 遇到flight界面为空的 ...
- HibernateCRUD基础框架(3)-简单的和较为复杂的标准的CRUD API
优点:简单的和基础的CRUD功能可以很快实现,可以说是比较的"标准化".维护起来也很容易. 缺点:性能没有保障.不支持特别复杂的CRUD. 可以适用的场景:小型Web项目 1.Cr ...
- 【例题 6-19 UVA - 1572】Self-Assembly
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 旋转和翻转,会发现. 如果可以顺着某个方向一直放的话. 总是能转换成往下或者往右连的. 则只要能够出现一个连接顺序的循环,则总是有解 ...
- FTP 访问的形式
主要是扼要的列举一下访问的方式,不涉及太具体的内容.大家可以在百度上搜索一下具体的操作方法. 主要有: 1. 网页浏览器中输入 ftp://192.168.0.111的形式. 2. 资源管理器中输入f ...
- App.js和App.css(用于移动应用的js和css)
App.js和App.css(用于移动应用的js和css) 一.App.js和App.css(用于移动应用的js和css) App.js 是一个轻量级的 JavaScript UI 库,用来创建移动的 ...
- 大战C100K之-Linux内核调优篇--转载
原文地址:http://joyexpr.com/2013/11/22/c100k-4-kernel-tuning/ 早期的系统,系统资源包括CPU.内存等都是非常有限的,系统为了保持公平,默认要限制进 ...
- Can't bind to 'formGroup' since it isn't a known property of 'form'
在APP.module.ts中引入FormsModule, ReactiveFormsModule. import { BrowserModule } from '@angular/platform- ...
- Java反射学习总结终(使用反射和注解模拟JUnit单元测试框架)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 本文是Java反射学习总结系列的最后一篇了,这里贴出之前文章的链接,有兴趣的可以打开看看. ...
- 如何使用google地图的api(整理)
如何使用google地图的api(整理) 一.总结 一句话总结:直接用script标签引google地图api即可. 1.如何使用google地图的api? 页面引用javascript文件<s ...