惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cisco Talos Blog
Cisco Talos Blog
阮一峰的网络日志
阮一峰的网络日志
云风的 BLOG
云风的 BLOG
D
Docker
Vercel News
Vercel News
IT之家
IT之家
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
腾讯CDC
Google DeepMind News
Google DeepMind News
I
InfoQ
博客园 - 三生石上(FineUI控件)
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
博客园 - Franky
The Cloudflare Blog
A
About on SuperTechFans
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
T
Tenable Blog
P
Proofpoint News Feed
Recorded Future
Recorded Future
Security Latest
Security Latest
H
Hackread – Cybersecurity News, Data Breaches, AI and More
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 聂微东
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Google Online Security Blog
Google Online Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Simon Willison's Weblog
Simon Willison's Weblog
The Last Watchdog
The Last Watchdog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
News and Events Feed by Topic
TaoSecurity Blog
TaoSecurity Blog
U
Unit 42
The Hacker News
The Hacker News
Martin Fowler
Martin Fowler
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
F
Full Disclosure
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
V
V2EX
Project Zero
Project Zero

博客园 - a斗

三个阶段 【ZZ】UDP和TCP 大全 白居易--《祭李侍郎文》 【ZZ】VS2005的快捷键大全 正则表达式学习(一) 【ZZ】正则表达式的学习 C#窗体不显示在任务栏中 巴菲特的一些言论 [zz]SqlServer数据类型 随笔--1.19 很累 【ZZ】OSI模型 【ZZ】IPv4与IPv6 论文快结束了~~ 辛弃疾--《南乡子·登京口北固亭有怀》 坚持 inline的小结 (ZZ~~)字符串单词顺序反转 malloc和calloc的区别(笔试题)
【zz】C#的三层结构
a斗 · 2008-02-21 · via 博客园 - a斗

原文地址:http://blog.sina.com.cn/s/blog_4d212758010008ay.html
一.面向对象的c#
在软件开发中,需要引入抽象的模型,使复杂的现实世界更易管理,我们把现实世界中的各种事物看作对象。每一个对象具体到C#中,就是C#中的类。比如说,学生是一个对象,我们在C#中对其进行操作时,实际上就是对Student类进行操作。学生有学号,姓名,性别,出生日期等信息,在Student类中就包含了ID,Name,Sex,Birthday等属性。这些属性在数据类型上是有限制的。比如说,Birthday属性必须是一定是时间格式才有意义,我们要通过这个类对数据进行验证。中学生、大学生也是学生,他们同属于学生类,但是他们各自又有各自的特点。他们与学生类是继承与被继承关系。类包含了常量,字段,方法,属性,事件,索引器,运算符,构造函数和析构函数等8中成员。类与类之间又有各种各样的关系。
二.C#开发中的三层架构
1.架构关系图
2.各层之间的关系
用户层只能调用业务层,业务层只能调用数据层对数据库进行操作。公用函数供各层调用。
3.分层的好处
a.对于复杂的系统,分层让结构清晰,便于开发人员对系统进行整体的理解、把握。
b.便于维护。系统基本的架构可以通过工具自动生成代码。当数据库发生改变时,只用重新生成代码,改动业务层中的比分代码即可。
c.无论是作WinForm还是ASP.NET的开发,系统的基本架构能够通用。
d.开发人员可以节省更多的时间去注重业务的实现,而不必过多考虑数据库的连接等其它问题。
4.部分控件的比较
a. SqlDataReader和DataSet
它们同样是对数据库读取数据。所不同的是:SqlDataReader在读取时始终保持与数据库的链接。DataSet一次性的读完数据,将数据存放入副本中后,即与数据库断开链接。个人认为在作ASP.NET时宜用DataSet,减少服务器的负担。
注意:在使用sql语句填充DataSet时不要一次将表中数据全部读完。例如使用“select top 100 *from student”来填充DataSet。
b.使用DataSet时宜用代码而不用系统生成    
如果使用系统生成,一旦数据库发生改变,则DataSet需要全部重新生成,维护量过大。