本系列文档将向大家介绍我们 ASP.NET MVC 项目框架,并一步步指导大家如何创建列表、添加、修改页面和实现带有查询功能的列表页
我们的项目采用 .NET 平台的技术进行开发,需要事先安装好开发环境。
IDE:采用 Visual Studio 2015 或更高版本进行开发,在安装 Visual Studio 时,所需的一部分环境会自动安装上,比如 .NET FrameworkDatabase:项目最低要求 SQL Server 2008 R2代码管理:Subversion,请参阅 wiki:SubversionGuide浏览器:进行 Web 站点的开发浏览器是必不可少的,本文档将使用 Google Chrome 浏览器上述软件在大连服务器的 \\shiji-server\share\Software\Development 上提供,复制这段地址并粘贴到资源管理器的地址栏中进行访问。
除了各种软件,我们还需要准备开发使用的数据库,我们通过将数据库备份文件还原到本地即可,数据库备份文件提供在 \\shiji-server\share\db_backup 里,将备份文件下载到你的电脑上,例如D:\backup。 首先查看备份文件中都有哪些文件
-- disk 后面是你下载到自己电脑上的备份文件的路径 restore filelistonly from disk = 'D:\backup\ecrs20160913.bak'可以看到备份文件中有三个文件,分别是ECRS、ECRS01 和 ECRS_log,执行下面的 SQL 将这三个文件还原到本地:
use master -- 此处的 ECRS_20170124 是还原后数据库的名字 restore database ECRS_20170124 -- disk 之后仍然是下载到本地后的备份文件的路径 from disk = 'D:\Data\ecrs20151218.bak' -- to 之后是还原后文件存放的路径 with move 'ECRS' to 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\ECRS.mdf', move 'ECRS01' to 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\ECRS01.mdf', move 'ECRS_log' to 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\ECRS_log.ldf', STATS = 10, REPLACE执行后稍等片刻,在你本地就有了我们开发用的数据库。
将 KunlunCCM 下载到本地后通过 Visual Studio 打开 KunlunCCM.sln 解决方案文件,可以看到下图所示的结构 我们的项目可以分为三大部分:
Libraries 类库层Presentation 表现层Tests 单元测试每个部分通过文件夹划分,每个文件夹中又有一些项目。
Libraries 目录下存放了有关实体类定义、数据库操作、业务逻辑操作等相关的所有类库。
Core 核心类层:这里存放了与项目有关的最核心的类定义,包括缓存、异常、实体类等等。我们操作数据库时,需要将数据库中的表,映射到类上,这些类称为实体类,存放在 Core 项目的 Domain 文件夹下Data 数据访问层:这里存放了操作数据库的类,以及实体类与数据库表的映射规则,这些映射规则存放在 Mapping 文件夹下Services 业务逻辑层:显而易见,这里就是具体的业务逻辑的实现了将数据库中的表(关系),映射到我们创建的类(对象)上,这种技术称之为对象关系映射,英文名称叫做 ORM(Object Relation Mapping)。我们通过 Entity Framework(简称EF) 或者 Dapper 来实现这一功能,它们都是第三方类库。Dapper 需要我们自己编写 SQL 语句,而 Entity Framework 可以自动生成 SQL 语句。使用 Entity Framework 时,我们通过仓储类Repository<T> 来简化对数据库的操作,仓储类位于 Data 项目中。 本系列文章将采用 Entity Framework 进行数据库操作。
ASP.NET MVC 项目大家想必已经了解了,MVC 代表 Model-View-Controller 模式。在 ASP.NET MVC 中,我们在 View 里编写用于呈现的页面,在 Controller 中编写每个页面对应的后台代码,在 Model 中编写类作为页面数据的载体。 经过类库层的介绍,我们知道 Service 项目有所有业务逻辑的实现,所以我们的 Controller 只需要去调用相应的 Service 方法即可,而不应该把业务逻辑写在 Controller 中。这种思想,称之为职责分离,控制器专注于为视图准备数据,Service 则专注于业务逻辑。
本系列文档中不涉及单元测试相关的内容。
前面简要的提到了 ORM 类库 EF 和 Dapper,我们在项目中还引入了形形色色的第三方类库,以及一些我们自己封装的,可以简化操作的类库。这里对第三方类库进行一些介绍。
数据库访问:
Entity FrameworkDapper前端展现:
ASP.NET MVCjQueryBootstrapAdminLTE 一个 Bootstrap 主题DataTables.js 用于在网页上展现表格的插件KendoUI Core 强大的前端控件,提供了日期选择器、下拉菜单、数字输入框等常用控件依赖注入:
AutoFac验证:
jQuery Validation 前端验证插件Fluent Validation MVC端的验证类库,可以实现前台和后台验证类型映射:
Auto Mapper 可以将一个类变成另一个类,注意这个并不是数据库到实体类的映射关于第三方类库,可以先看一下官方提供的文档中的介绍,后面的项目中会详细说明。 从下一节开始,我们就着手进行开发了,请拭目以待。