深入.NET平台的软件系统分成开发(1/6)
第一章软件系统的分层开发
1.1 分成架构
分成模式定义:将解决方案中功能不同的模块分到不同的项目中实现。每一层中的主键应保持内聚性,每一层都应与他下面的各层保持松耦合。

分层模式是最常见的一种架构模式,甚至可以说分成模式是很多分层模式的基础。
数据访问层:处于最底层,负责与数据库交互,也成为DAL(Data Access Layer)。
表示层:直接与用户打交道,负责显示或者获取数据,也称为UI层(User Interface Layer)。无论用控制台还是用Windows窗体显示数据,都是表示层的一种应用。
表示层依赖于数据访问层,两层职能分开,协同工作,依赖关系如图1.4所示
1.2搭建分层架构
1.2.1 程序集
程序集定义:如运行MySchool程序,在bin\Debug目录下会生成一个MySchool.exe文件,双击者这个文件就可以打开这个MySchool应用程序。这个编译好的.exe文件就属于程序集。
.NET程序集是任何.NET Framework应用程序的基本构造。程序集由描述它的程序集清单(包含版本号,程序集名称等),类型元数据,MSIL代码和资源组成,将这部分都分布在一个文件夹中,或者几个文件夹中,如图1.5所示:

- 可执行文件,即.exe文件。
- 类库文件,即.dll文件。
- 一个解决方案可以有一个或多个项目组成,这些项目可以是Windows应用程序,类库等。
- 命名空间是组织C#程序的一种逻辑架构,一个命名空间可以有多个类。
1.2.2如何创建分层架构
(1)给项目添加类库。方法是右击解决方案,在弹出的快捷键菜单中选择“添加”>“新建项目”命令,弹出“添加新项目”对话框,给新建项取名为“MySchool.BAL”。
(2)添加表示层和数据访问层之间的依赖关系。表示层和数据访问层都建立完毕,但每一层都是各自独立的,他们之间没有任何依赖关系,两者之间必须有依赖关系才能作为一个整体使用,即建立起表示层与数据访问层的依赖表示层才能调用后者中的类。一下有两种方法可以形成依赖。
第一种方式是右击MySchool项目,在弹出的快捷键菜单中“添加引用”命令。
第二种方式是选择“浏览”命令,添加数据访问层生成.dll文件的引用。
1.3分层开发的优点和优势
- 代码复用
- 分离开发人员的关注
- 无损替换
- 降低了系统之间的依赖
1.4异常处理
1.4.1 为什么要异常处理
前面介绍了分层架构开发系统,但是系统各层之间故障还是难以避免的。如果应用程序对用户的操作进行检查,判断,病在故障发生是提示出错或进行相应的处理,就会尽可能的避免程序系统的崩溃,这就用到了异常处理。
在C#中程序运行是出错通过一种“异常”
的机制在程序中传播。“异常”是程序在执行时发生的错误,导致这种错误的原因来自三个方面。
- 代码错误:包括编译错误,只是开发人员造成的。
- 资源不可用:由于系统访问了未经授权的资源引起的错误。
- 公共语言运行库:由CLR内部引起的错误。
1.4.2 .NET异常处理机制
异常由Exception的派生类表示。ExcePtion类中封装的异常处理有两种情况。
- 一种是由用户程序执行引发的异常,派生于ApplicationException类。
- 由公共语言运行库引发的异常,派生于SystemException类。
常见异常类型

异常类常见的属性

异常处理语句
语法:
.try-catch try
{
//可能引发异常的工作代码
}
catch(异常对象)
{
//异常处理
} .try-finally
try
{
//可能引发的异常的工作代码
}
finally
{
//清理相关对象代码
} .try-catch-finally
try
{
//可能引发异常的工作代码
}
catch(异常对象)
{
//异常处理
}
finally
{
//清理相关对象代码
}
多路异常捕获
try
{
//可能引发异常的工作代码
}
catch(Exception ex)
{
thow ex;
}
catch(SqlException ex)
{
thow ex;
}
深入.NET平台的软件系统分成开发(1/6)的更多相关文章
- C#深入.NET平台的软件系统分层开发
今天我们来讲讲分层开发,你从标题能不能简单的认识一下什么是分层呢? 不懂也没关系,接下来我来给你讲讲. 第一章 软件系统的分层开发 (1)其实分层模式可以这样定义:将解决方案中功能不同的模块分到不同的 ...
- 基于微软平台IIS/ASP.NET开发的大型网站有哪些呢?
首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...
- SNF开发平台WinForm之二-开发-单表表单管理页面-SNF快速开发平台3.3-Spring.Net.Framework
2.1运行效果: 2.2开发实现: 2.2.1 这个开发与第一个开发操作步骤是一致的,不同之处就是在生成完代码之后,留下如下圈红程序,其它删除. 第一个开发地址:开发-单表表格编辑管理页面 http: ...
- 微信公众平台自定义菜单PHP开发
微信公众平台自定义菜单PHP开发,微信公众平台自定义菜单是如何实现的呢?其实很简单,首先在微信公众平台升级为服务号,获取appid和appsecret,然后根据这2个参数获取access_token, ...
- 用VS2013+VELT-0.1.4进行海思平台 Linux内核 的开发
快乐虾 http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651) 欢迎转载,但请保留作者信息 本文仅适用于vs20 ...
- 大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建
大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建 大数据应用之Windows平台Hbase客户端Eclipse环境搭建-Java版 作者:张子良 版权所有,转载请注明出处 引子 ...
- KoaHub平台基于Node.js开发的Koa 连接支付宝插件代码信息详情
KoaHub平台基于Node.js开发的Koa 链接支付宝插件代码信息详情 easy-alipay alipay payment & notification APIs easy-alipay ...
- 第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明
第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明 设置后台列表页面可以直接修改字段内容 在当前APP里的adminx.py文件里的 ...
- 第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置
第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置 设置后台某个字段的排序规则 在当前APP里的adminx.py文件里的数据表管理器里设置 order ...
随机推荐
- SharePoint中新创建的Web Application在浏览器中报404错误
问题描述:在安装完成SharePoint 2010后,进入Central Administration,创建一个新的Web Application,可以正常创建,但访问时却返回404. 平台环境:Wi ...
- Android源码编译make的错误处理
android源码下载:官方下载 或参考android源码下载方式 Android编译版本: PLATFORM_VERSION=4.0.1(最新Android 4.0.1) OS 操作系统平台: Li ...
- Hibernate实现有两种配置,xml配置与注释配置
hibernate实现有两种配置,xml配置与注释配置. (1):xml配置:hibernate.cfg.xml (放到src目录下)和实体配置类:xxx.hbm.xml(与实体为同一目录中) < ...
- float包裹性与破坏性及清除浮动几种方法
1. “清除浮动” ??准确的描述应该是“清除浮动造成的影响” 学习视频录制推荐的教程<CSS深入理解之float浮动> 2.如何清除浮动造成的影响??? 栗子 块级div元素包含一个内 ...
- javascript如何设置DIV背景色为随机色
随机色有两种格式: 效果预览:http://wjf444128852.github.io/DEMOLIST/JS/test/index.html 1.rgb(xxx,xxx,xxx) 2.#xxxxx ...
- 原生JS实战:分享一个首页进度加载动画!
本文是苏福的原创文章,转载请注明出处:苏福CNblog:http://www.cnblogs.com/susufufu/p/5871134.html 该程序是本人的个人作品,写的不好,可以参考,但未经 ...
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十)态势标绘模块
config.xml文件的配置如下: <widget label="态势标绘" icon="assets/images/impact_area_over.png&q ...
- 『SharePoint』Content Editor Webpart不能添加引用_layouts下面的文件
好久没写了,最近没怎么学到新东西,倒是犯了一个很常见的错误,那就是试图在content editor webpart中添加位于_layouts下面的一个txt文件,虽然这个txt中只是几行简单的htm ...
- 微信平台ASPX高级定制开发(一):如何使用C#建立响应微信接入和自动回复的代码
微信平台不解释了,如果不了解的百度一下下,如果不会用微信,请自宫,光盘重启电脑,打开CMD输入Format C:.网上有很多针对企业级的高级定制ASPX开发,写得草草了事,很多男人干事都草草了事,这可 ...
- MyEclipse使用心得:集成和使用Maven的方法
MyEclipse下载:http://www.myeclipsecn.com/download/ 第一步:下载和安装 1.官网下载Maven:http://maven.apache.org/downl ...