asp.net mvc 项目架构解析
请先看框架图:

从上图可知:
1、Controller控制器只是充当了管道的作用。只做任务的分发,不做请求中的具体业务处理。
2、Views视图充当了展示数据的作用。不做任何取数逻辑的处理,只是展示逻辑的处理。
3、Model实体包括了BLL、DAL、Model(Entity)、API层。
4、BLL层为业务逻辑层。
5、请求的整个过程:BLL层接收Controller控制器的指令,处理具体的业务处理,如果需要数据库操作,则调用DAL层和Model(Entity);处理完后将数据返回给控制器,控制器再把数据传给视图views,视图将数据处理好后再返回给控制器,控制器再传给客户。
总结:
1、以后,我们在项目里对Controller控制器进行瘦身,减少控制器里的业务逻辑,业务逻辑都放到BLL层里。
2、Controller控制器里,不允许出现非Action的方法存在。
3、数据调用sql执行,禁止任何地方使用拼接sql字符串的情况,如有实在不好写的地方,请报备。
4、严格按照分层模式来,不允许出现乱写的情况;
5、新增加的方法必须写明注释,注释包括:方法的逻辑说明,作者,时间。
6、Controller控制器处理单表的情况下,BLL层使用动软生成的类做业务处理;Controller处理多表的情况下,在BLL层建立一个新类,命名以控制器+Mgr,比如AccountController对应的BLL层类为AccountMgr。
asp.net mvc 项目架构解析的更多相关文章
- Asp.net mvc项目架构分享系列之架构概览
Asp.net mvc项目架构分享系列之架构概览 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构 ...
- Asp.net mvc项目架构分享系列之架构搭建初步
copy to:http://www.cnblogs.com/ben121011/p/5014795.html 项目架构各部分解析 Core Models IDAL MSSQLDAL IBLL BLL ...
- Mvc项目架构分享之项目扩展
Mvc项目架构分享之项目扩展 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构各部分解析 5.项目 ...
- mvc项目架构分享系列之架构搭建初步
mvc项目架构分享系列之架构搭建初步 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构各部分解析 ...
- 1.2 认识ASP.NET MVC项目结构
1.开发环境 操作系统:xp.vista.windows 7.windows 8.windows server 2003|2008|2008R2|2012: 集成开发环境IDE: Vsiual Stu ...
- ASP.Net MVC+EF架构
ASP.Net MVC是UI层的框架,EF是数据访问的逻辑. 如果在Controller中using DbContext,把查询的结果的对象放到cshtml中显示,那么一旦在cshtml中访问关联属性 ...
- AngularJS2 + ASP.NET MVC项目
环境:VS2015, NodeJS:v 6.5, npm: v3.10, AngularJs 2 通过将ASP.NET MVC项目与Angualr 2官网上的quick start整合的过程中遇到些问 ...
- 远程调试 ASP.NET MVC 项目
Visual Studio 支持从一台计算机到另一台设备的远程调试.进行远程调试时,主机可以是任何支持 Visual Studio 的平台.远程设备可以是 x86.x64 或 ARM 平台. 本文将指 ...
- 习题-任务2初始ASP.NET MVC项目开发
一.选择题 1.在ASP.NET MVC项目的RouteConfig.cs文件中,( )方法注册了默认的路由配置. A.RegisterMap B.RegisterRoutes C. ...
随机推荐
- C#中巧用#if DEBUG 进行调试
#if DEBUG是个好东西. #if DEBUG UserID = "abc@test.com"; Password = "; #endif 当调试代码的时候加上适当的 ...
- 长按listview弹出选项列表对话框
Android中通过xml资源文件定义数组.来自微风的网络日志. 文章链接:http://leybreeze.com/blog/?p=1524 Android ListView两种长按弹出菜单方式 h ...
- 【laravel5.4】安装predis
1.服务器先安装redis-server,这是毋庸置疑的!!! 2.服务器开启redis-server,配置相关参数 3.laravel执行 : $ yourPhpPath composer.pha ...
- 【mysql】数据库Schema的优化
由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以 page(block)的方式,也就是说,如果我们每条记录所占用的空间量减小,就会使每个page中可存放的数据行数增大 ...
- stm32开发 - 远离 Keil uVision, 回到 Visual Studio
学了8051单片机, 学了MSP430系列, 终于开始步入正轨, 开始学习 stm32(ARM Cortex-M3)系列微处理器~ 学51用Keil uVision开发环境, 提一下Keil uVis ...
- MySQL和ORACLE、SQL Server、PostgreSQL相比
- dubbo本地调试直连
服务: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://ww ...
- Python 文件 readline() 方法
描述 Python 文件 readline() 方法用于从文件读取整行,包括 "\n" 字符.如果指定了一个非负数的参数,则返回指定大小的字符数,包括 "\n" ...
- FreeSWITCH快速录音
一.背景 测试人员反映FreeSWITCH录音不及时,需要大约5秒的时间才能捕获到RTP流. 二.原因及解决 查了下资料,FreeSWITCH默认的录音参数配置是开启缓冲的, 即RTP流大小到达655 ...
- JAVA中Set集合--HashSet的使用
一.使用HashSet添加一个String类型的值: public static void hashSet1(){ HashSet<String> hashSet = new HashSe ...