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

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 七思软件

基于.Net的架构设计之七 基于.Net架构设计之六 基于.Net的架构设计之五 基于.Net架构设计之三 基于.Net架构设计之二 基于.Net的架构设计之一 Microsoft.Visual.Studio.2005.Team.System 面象asp.net2.0的MasterControls控件 aspx页面中标题单点解决方案 求助,web应用程序中的进程线程控制 (The 'url' property had a malformed URL)求助 - 七思软件 Asp.net 2.0功能体验,细节之Web控件(一) 隐藏控件 Asp.net 2.0功能体验,总体设计思想 Asp.net 2.0功能体验,欢迎光临指导 C#中泛型求助 C#2.0中可空类型 迎接.Net2.0 我只是一只碌碌无为的工蚁 : ( 论Web控件开发 - 完美上传下载控件“新”(五)
基于.Net架构设计之四
七思软件 · 2009-11-28 · via 博客园 - 七思软件

针对前面提到的一些应用场景,我们应该如何利用.Net平台来搭建基础架构呢?

首先我们先详细的分解一下业务场景,将应用分层,然后针对每个层次我们来分析一下,系统架构应该作些啥。

 

上面表述的是订单处理的部份场景,订单的提交可以通过在线网店,也可以通过客服系统,而作为基础功能模块的即时消息服务在多个业务模块中被消费。图中箭头方向表示依赖或调用方向,红色箭头表示服务调用,粉色块表示可能的独立部署单元,蓝色块表示逻辑上的层次,灰色块表示子业务模块。

图中层次的划分有以下几点考虑:

一、契约层包括数据契约和服务契约,而实体也是支持序列化的,但之所以不把实体直接暴露给服务消费者而是重新包装数据契约,是因为契约是面向客户的,我们应以最小知识原则,使契约尽可能的明确、简单、直观。但实体一般都会有很多辅助信息及验证信息,并且会有继承层次,虽然数据契约也可以支持一定程度的继承,但我觉得作为交互依据的契约,还是以一种无继承的单层次的方式呈现给客户更好一些,另外,当服务的调用者为异构系统时,简单的契约也就意味着更好的兼容性。

二、数据访问层也仅是对针对数据持久层的直接包装,并且应该基于IDbConnection/IDbCommand/IDataReader/IDbTransaction等通用接口开发,这样便于不同数据持久层数据库产品的切换。

三、业务处理层是整个业务逻辑的核心,它应该充分利用面象对象编程的灵活性,对于更上一层的业务处理层,可以引入工作流程来组装底层服务。

四、图中红色箭头杂乱无章,耦合度太高,可以通过调停者模式,引入第三方服务定位服务,减少相互之间的依赖。