本文系列旨在帮助初学者理解在ASP.NET MVC Web应用程序中,数据是如何在三层架构中流动的。将通过一个实际的示例,逐步构建一个基于三层架构的Web应用程序,使用ASP.NET MVC、jQuery、Bootstrap、C#.NET、Entity Framework和Microsoft SQL Server。
是否想要看到一个使用ASP.NET MVC、jQuery、Bootstrap、C#.NET、Entity Framework和Microsoft SQL Server构建的三层架构的实时Web应用程序?如果是的话,那么请跟随一起从零开始学习如何开发这个三层架构的Web应用程序。
在本文中,将学习如何将需求分解为对象,并找出它们之间的关系。然后,将学习如何基于这些对象和关系设计数据库。接下来,将看到如何设计项目的三层架构,并实现各个层次。将学习使用Entity Framework实现业务对象层,以及使用仓库设计模式和Entity Framework实现数据访问层。
对于用户界面,将看到ASP.NET MVC、jQuery和Bootstrap。将学习Bootstrap如何使应用程序响应式。还将看到如何实现自定义排序和分页。继续前进,将学习表单验证和业务规则验证。将使用自定义会员提供程序和角色提供程序来保护应用程序,并将其发布到网络上。
SQL Server 2008 Express或更高版本 VS2013 Express或更高版本
应该精通C#.NET的面向对象编程 应该对ASP.NET MVC和Entity Framework有良好的理解
示例代码仅基于自学、研究结果和任何实际项目。代码仅用于解释整体架构。如果想在项目中使用代码,需要丰富和修改它以满足自己的需求。此外,示例项目中的CRUD操作非常基础,具有基本功能,可以用一些高级功能来丰富它们。
1: 引言 2: 分析和设计(需求收集、识别对象和关系、数据库设计、数据库实现和理解架构、创建解决方案和项目) 3: 实现所有层次 4: 实现用户和管理员模块 5: 架构增强和验证 6: 保护ASP.NET MVC Web应用程序 7: 应用Bootstrap主题 8: 实施事务 9: Ajax化MVC应用程序 10: 外部登录 11: 最后的推动 12: ASP.NET MVC中的报告
Link hub是一个Web门户,用户可以在特定的类别下提交他/她的门户URL以在link hub上共享。管理员可以批准或拒绝用户提交的URL,并且在每种情况下都会向用户发送电子邮件。一旦链接被批准,它将可在link hub门户上使用。
这是将要实现的: 屏幕1. 用户注册 屏幕2. 用户登录 屏幕3. 登录后提交URL 屏幕4. 管理员批准URL 屏幕5. 浏览所有已批准的URL
注意:在将来的文章中,还将尝试看到一些屏幕未描述的额外功能。
假设客户给了简要的需求,或者也可以称之为用户故事,即他们需要开发一个名为LINKHUB的门户... Link hub是一个Web门户,用户可以在特定的类别下提交他/她的门户URL以在link hub上共享。管理员可以批准或拒绝用户提交的URL,并且在每种情况下都会向用户发送电子邮件。一旦链接被批准,它将可在link hub门户上使用。
步骤1:从上述需求中,首先定义角色和职责。
定义角色和职责 角色 用户 可以浏览URL 可以注册 可以提交URL 管理员 可以CRUD类别 可以查看所有用户 可以批准或拒绝URL
步骤2:现在让识别对象。
对象 用户 类别 URL
步骤3:现在需要找出这些对象之间的关系。
关系 类别:URL (1:M)(因为一个单一的类别可以有多个URL) 用户:URL (1:M)(因为一个单一的用户可以上传多个URL)
步骤4:一旦有了对象和关系,可以使用数据库设计的3个关键规则来设计数据库。
数据库设计的3个关键规则 每个对象一个表 对于1:M关系。1将成为主,M将成为子,即1的主键将作为M的外键。 例如:部门:员工是1:M部门 M:M关系。两个对象都将成为主,并且将有一个名为事务表或子表的新表,主键作为其中外键。 例如:学生:课程是M:M
使用上述三个规则,数据库设计将如下所示,tbl_User表中的角色列将区分普通用户为‘U’和管理员为‘A’。
LinkHubDb让实现它:
步骤5:一旦数据库准备好了,需要插入一些有意义的和虚拟的记录,这将有助于进一步的实现过程。
数据访问层 在上述架构中,应用程序后端是Microsoft SQL Server,为了从数据库访问数据,使用ADO.NET Entity Framework,称之为数据访问层(DAL)。
业务逻辑层 在将数据存储到数据库之前或从数据库读取数据之后,需要对数据执行一些业务逻辑。例如,想存储员工的工资,每小时25美元,假设他工作了50小时。那么他的工资将被计算为25X50=1250美元,这被称为业务逻辑,这个逻辑代码将进入业务逻辑层,它将使用C#.NET编程语言开发。所以,这里是业务逻辑层(BLL)。
UI 那么如何与应用程序交互呢?是的,与应用程序交互的界面被称为用户界面的表示逻辑层,在这里看到所有的表单控件,如文本框、按钮、网格等,将使用ASP.NET MVC 5来实现表示逻辑层(PLL)。
业务对象层 最后,如何将数据从一个层次传递到另一个层次呢?需要一个容器来存储数据,以便可以将该容器传递给其他层次,该容器被称为业务对象,它们位于业务对象层(BOL)。