企业应用架构(.Net)
来源:互联网 发布:淘宝中老年男士羽绒服 编辑:程序博客网 时间:2024/04/18 12:20
一、前言
前段时间看了两篇关于企业应用架构的文章,感触颇深。这两周一直在研究怎么架构一个良好的.Net开发平台,所以总结一下自己心目中的架构。
二、企业应用架构设计
1. 粗架构
我觉的所有的架构都是要分层,这么做的目标很明确。因为分层可以随需而变。而所有的多层架构都可以归纳为三层架构,只是在这个基础上的演化,将每个层再细分为多个层。
例如展现层可以细分为UI(User Interface)层和UIP(User Interface Process)层,将用户界面和用户界面逻辑处理分离。当你的用户界面逻辑非常复杂时,如果不这样分层,你的UI中将会到处充斥着逻辑控制代码,这样的代码在复用性,可维护性和扩展性上都非常差。
商业逻辑层应包含很多东西:领域模型,商业规则(易变),工作流(易变),安全控制及其他服务。在企业中,商业规则和业务流程是最容易变化的东西。所以你最好将最容易改变的东西包装成一个逻辑单元,这样你才能随需而变。但我认为这些内容并不适合分层,因为这些内容之间都互相的交叉依赖,而且分这么多层会影响应用程序的性能。那么怎么将这些组件装配成一个企业应用并且使得它们之间的依赖和耦合最低呢?目的是修改任何一部分内容都不要影响其他的组件,答案是AOP。
数据访问层包含数据访问接口和数据提供者。数据访问接口供商业逻辑层来使用,例如领域模型中有Order对象,数据访问层提供LoadOrder、CreateOrder、SaveOrder和DeleteOrder等基本操作。数据提供者(Data Provider)抽象了底层的数据访问接口,使得你的数据的存在形式可以多变,例如可以是数据库、文件等。企业应用离不开数据库,而数据库访问离不开SQL语言。要避开为每个对象写CRUD的脚本,应用ORM是个好的选择。
2..Net下的应用
要架构.Net下的企业应用,首先要知道有哪些现成的资源可以利用:
AOP: Spring.Net , AOP.Net, Aspect# 等
ORM: NHibernate, iBatis.Net, Castle.ActiveRecord,Entity FrameWork 等
Workflow: DotNetTools Workflow
RuleEngine:NxBRE
Log: Log4net, Microsoft.EnterpriseLibrary
Test: NUnit, NUnitAsp
Web框架: CastleOnRails(MonoRails), Lattis, Maverick, Microsoft Application Blocks.User Interface Processing
前段时间看了两篇关于企业应用架构的文章,感触颇深。这两周一直在研究怎么架构一个良好的.Net开发平台,所以总结一下自己心目中的架构。
二、企业应用架构设计
1. 粗架构
我觉的所有的架构都是要分层,这么做的目标很明确。因为分层可以随需而变。而所有的多层架构都可以归纳为三层架构,只是在这个基础上的演化,将每个层再细分为多个层。
例如展现层可以细分为UI(User Interface)层和UIP(User Interface Process)层,将用户界面和用户界面逻辑处理分离。当你的用户界面逻辑非常复杂时,如果不这样分层,你的UI中将会到处充斥着逻辑控制代码,这样的代码在复用性,可维护性和扩展性上都非常差。
商业逻辑层应包含很多东西:领域模型,商业规则(易变),工作流(易变),安全控制及其他服务。在企业中,商业规则和业务流程是最容易变化的东西。所以你最好将最容易改变的东西包装成一个逻辑单元,这样你才能随需而变。但我认为这些内容并不适合分层,因为这些内容之间都互相的交叉依赖,而且分这么多层会影响应用程序的性能。那么怎么将这些组件装配成一个企业应用并且使得它们之间的依赖和耦合最低呢?目的是修改任何一部分内容都不要影响其他的组件,答案是AOP。
数据访问层包含数据访问接口和数据提供者。数据访问接口供商业逻辑层来使用,例如领域模型中有Order对象,数据访问层提供LoadOrder、CreateOrder、SaveOrder和DeleteOrder等基本操作。数据提供者(Data Provider)抽象了底层的数据访问接口,使得你的数据的存在形式可以多变,例如可以是数据库、文件等。企业应用离不开数据库,而数据库访问离不开SQL语言。要避开为每个对象写CRUD的脚本,应用ORM是个好的选择。
2..Net下的应用
要架构.Net下的企业应用,首先要知道有哪些现成的资源可以利用:
AOP: Spring.Net , AOP.Net, Aspect# 等
ORM: NHibernate, iBatis.Net, Castle.ActiveRecord,Entity FrameWork 等
Workflow: DotNetTools Workflow
RuleEngine:NxBRE
Log: Log4net, Microsoft.EnterpriseLibrary
Test: NUnit, NUnitAsp
Web框架: CastleOnRails(MonoRails), Lattis, Maverick, Microsoft Application Blocks.User Interface Processing
- 企业应用架构(.Net)
- .Net下企业应用系统架构构建心得
- 基于.Net Framework 3.5的企业应用架构技术研究
- 基于.Net Framework3.5的企业应用架构技术研究
- 企业应用架构研究
- 企业应用架构模式
- 浅谈企业应用架构
- 企业应用架构模式
- 企业应用架构模式
- 浅谈企业应用架构
- 浅谈企业应用架构
- 企业应用架构模式
- 浅谈企业应用架构
- 企业应用架构
- 企业软件应用架构
- ASP.NET 企业架构
- 接触《企业应用架构模式》
- 企业应用架构模式 读后感
- Mac系统如何卸载Sophos杀毒软件
- 保持饥饿,保持愚蠢 Stay Hungry,Stay Foolish
- 散列表(HashTable)探秘 --上
- 今天刚刚开通博客,来看看
- 重学设计模式 - Facade模式
- 企业应用架构(.Net)
- 《桃姐》观后感
- cannot find gtk+/x11 2.4(or above version)!问题解决
- 谈在Debug和Release模式下输出调试信息
- make和makefile知识查漏补缺
- Hive使用注意事项(持续更新)
- 把桌面qt代码编译运行到qpe上的一个例子
- VC选项卡控件的使用方法
- Java初始化顺序