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中创建的页面,说明模块分开创建成功。

以上是模块分离的所有步骤。

时间: 2024-08-02 10:59:18

C#MVC中创建多模块web应用程序的相关文章

eclipse中创建多模块maven web项目

本文讲述在eclipse中创建分模块maven web项目. 暂时将一个项目分为controller:service:dao以及父类模块四部分. 1.创建父类模块. 创建一个简单的maven project打包类型设置为pom. 创建一个web模块.选中six-roo项目右键new maven module 将maven web项目转成eclipse支持的web项目 具体步骤见下面文章 http://www.cnblogs.com/HanShisi/p/5523998.html 按照上述方法创建

在idea中创建多模块的SpringBoot项目

在idea中创建多模块的SpringBoot项目 首先,了解下maven项目的三种打包方式: 1.war 打包为war包项目时,可以放在tomcat下运行 2.jar 打包成jar包就是要使用java -jar xxx.jar方式来运行,最常见的就是SpringBoot项目 3.pom 它只是用来做依赖管理,打包成的项目并不能直接运行.比如Springboot项目的父依赖以及再住上的依赖打包方式就是pom,因为它们只做依赖管理. 开始创建项目 总共创建三个module,分别为lyn4ever-w

用maven命令行创建多模块WEB项目

用eclipse的图形界面创建多模块web工程感觉略慢,用命令行的方式会十分的快.介绍下用命令行的方式创建一个多模块的java web工程. 首先创建一个父项目,命令如下: mvn archetype:create -DgroupId=com.**.im -DartifactId=im-risk 命令完成之后发现有了一个im-risk文件夹,进入这个文件夹,修改pom.xml,把打包类型由jar修改成pom.如果不修改这个参数,后面将无法创建子模块.然后在这个文件夹里创建需要的普通maven模块

在Visual Studio中快速启动调试Web应用程序

原文:http://blog.csdn.net/effun/article/details/2638535 从2003到2005,Visual Studio在启动调试的功能上进行了一些改善,不过因为只是简单的一个F5键,很多人可能都不会注意.其实也已经不是很记得清楚在2003启动调试是什么样的问题,因为已经有两年多没用了,只是依稀记得每启动一次就会打开一个新的IE窗口.因为打开IE是需要耗费一点时间的,所以总在寻求一个办法减少这个过程所消耗的时间. 后来2005来了,这个问题被有效地解决了.VS

简单记录在Visual Studio 2013中创建ASP.NET Web API 2

在很多跨平台的应用中就需要Web API ,比如android与数据库的交互. Create a Web API Project 选择新建项目下的模板下的Visual C#节点下的Web节点,在模板列表下选择ASP.NET Web 应用程序,并命名为ChatApp就可以了. 在新建ASP.NET项目下选择Web API 点击确定就可以了. Adding a Model 在解决方案下新建一个Model //新建Model User namespace APP_Chat.Models { publi

转载 ASP.NET MVC中使用ASP.NET Identity - 新西兰程序员 - 博客园

转载原地址: http://blog.jobbole.com/90695/ 在之前的文章中,我为大家介绍了OWIN和Katana,有了对它们的基本了解后,才能更好的去学习ASP.NET Identity,因为它已经对OWIN 有了良好的集成. 在这篇文章中,我主要关注ASP.NET Identity的建立和使用,包括基础类的搭建和用户管理功能的实现-- http://myusermanagement.azurewebsites.net/Account/Login?ReturnUrl=%2F 点此

使用 Raspberry Pi 上的传感器在 Node.js 中创建一个 IoT Bluemix 应用程序

先决条件 一个IBM Bluemix 帐号,一个 Raspberry Pi 2 或 3,一个 PIR 运动传感器 适用于本文的 Github 存储库 如果您是一位精明的 Bluemix 开发人员,您可能只想看看如何在 node.js 中与 IoT 建立连接,或者只想了解如何从此 github 存储库中拉取我的代码. git clone https://github.com/nicolefinnie/iot-nodejs-tutorial 以下是实现与 IBM IoT 平台连接在一起的 4 个 R

IBM的云平台Bluemix使用初体验——创建Go语言 Web 应用程序,添加并使用语言翻译服务

概述 上篇讲了:创建PHP Web 应用程序,添加并使用语言翻译服务 通过本文学习,你将能够在IBM的云平台Bluemix上创建自己的Go语言 Web 应用程序,添加并使用语言翻译服务,发布自己的GO语言Web应用到云服务器上. 本地开发测试环境:Windows 7 x64,Go,与其它Web后端语言不同,Go语言需要自己编写Web服务器. 有关本地环境的搭建与基础学习,请参考: <Go语言入门>如何在Windows下安装Go语言编程环境 <Go语言入门>第一个Go语言程序--He

JAVA文件中获取路径及WEB应用程序获取路径方法

原文转自:http://www.tqcto.com/article/recommend/141.html 1. 基本概念的理解 `绝对路径`:你应用上的文件或目录在硬盘上真正的路径,如:URL.物理路径 例如: c:/xyz/test.txt代表了test.txt文件的绝对路径: http://www.sun.com/index.htm也代表了一个URL绝对路径: `相对路径`:相对与某个基准目录的路径,包含Web的相对路径(HTML中的相对目录). 例如: 在Servlet中,"/"