您的位置:首页 > 运维架构 > 网站架构

.NET三层架构浅谈以及应用

2009-10-15 22:29 417 查看
传统两层结构
  在过去应用系统开发过程中,CLIENT/SERVER体系结构得到了广泛的应用 。其特点是,应用程序逻辑通常分布在客户和服务器两端,客户端发出数据资源访问请求,服务器端将结果返回客户端。但CLIENT/SERVER结构存在着很多体系结构上的问题,比如:当客户端数目激增时,服务器端的性能会因为负载过重而大大衰减;一旦应用的需求发生变化,客户端和服务器端的应用程序都需要进行修改,给应用维护和升级带来了极大的不便;大量的数据传输增加了网络的负载等等。
三层结构介绍
  所谓三层体系结构,是在客户端与数据库之间加入了一个"中间层",也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。
  三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
Microsoft.NET 为三层结构做的准备
  Microsoft .NET Framework是微软推出的一套下一代开发平台。.NET 基于开发人员的角度来说它是一个公共平台的类库(FCL),包含了近100 个命名空间(namespace)的近5000个类,想想看这是多的强大,还包括一个公共语言运行库(CLR)。因为只要符合.NET的公共运行规范(CLS的语言都可以 使用它提供的强大的类,并编译为微软的中间语言(MSIL),在其他的应用中就可以当作一个组件来调用。同时享受公共运行库带来的一切好处: 垃圾自动回收(GC)、实时编译(JIT)、跨语言互动、跨平台。 .NET 还可比喻是操作系统提供给开发人员的面向对像的API。 ASP.net是.net中的一部分。它最大的优点除了是编译执行速度快外,我觉得最大的优点是页面和代码分离的编写方式,再加上.net库提供的支持事件的各种WEB控件,以及.NET公共平台的类库(FCL),和以前编写网页方式相比可谓是一场革命。

“三层架构”是“视图层”、“业务逻辑层”、“数据层”
假设以这样的结构制作一个留言板,那么应该是:
1.留言板页面的外观代码都存放在 .aspx 文件中
2.当用户点击页面上的提交按钮时,先将文本信息传递给一个 LeaveWord 类对象(LeaveWord 类的定义被封装到“商业逻辑层”)
3.之后让这个对象执行 Post() 将留言信息发送到数据库
用一个简单的代码说明就是:
<textarea id="Content" runat ="server"></textarea>
<input type="button" id="Post" runat ="server" />
// ----------------------------------------
// 在外观层,当用户点击发送按钮后
// ----------------------------------------
private void Post_ServerClick(object sender, EventArgs e)
{
LeaveWord lword=new LeaveWord();
lword.Content=Content.Value;
lword.Post();
}
// ----------------------------------------
// 在商业逻辑层,定义 LeaveWord 类
// ----------------------------------------
public class LeaveWord
{
public string Content;
public void Post()
{
new LWordData().Post(this.Content);
}
}
// ----------------------------------------
// 数据库层,定义发送方法
// ----------------------------------------
public class LWordData
{
public void Post(string content)
{
// 打开数据库,将 content 插入到表中
}
}
这样,使其外观层就不用繁琐的操作数据库了。
这里介绍的比较简单,大家可以去微软参考SqlHelper.cs
系统的"层"是对代码的一种逻辑划分,并不是一定要三层,假设你的系统很简单,就一个页面,那一层就可以,如果系统很复杂,也可能是n层.
核心就是外层绝对不涉及任何数据处理,他的任务是设置界面,获取数据,输出数据。
业务层最重要,所有数据处理在这里,如何运用外层提供的数据处理业务,数据库层一般都建议调用存储过程,返回数据集或其他所需数据
原则:
上层调下层
上层对下层是不可见的
设计时,表现层只调用逻辑层,表现层主要是取得页面的数据传到逻辑层,把从逻辑层得到的数据显示到页面上。
逻辑层负责把数据加工整理传到数据层和把从数据层取得的数据加工。
数据层就只负责把数据对数据库操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: