.net web 架构浅谈

让我们先看看经典的三层架构 ,然后讲讲各个层次的用处和特点
一般web应用程序包含下列层次

WebUI|WinUI|WebService:界面和webservice
Business Facade:业务层的包装
Business Rule:业务规则
DataAccess:数据访问
SystemFramework:框架,为上面的层提供一些公共的方法和工具类,比如配置文件,日志和缓存等等
Common:这是可选的,一般放层间传递的实体

一般网站的框架就从这里裁减出来,
从最上层开始说,webui,一般网站当然是少不了的,webservice就不一定了,如果你需要为合作伙伴提供服务,自然就可以保留,或者你决定采用smartclient(微软提出的基于webservice的客户服务模型),则必不可少,当然,还可以往里加入层次,比如微软的applicationblock就把ui分成了界面逻辑和实现,可以让不同类型的界面共享一个界面逻辑

业务层包括business Facade和BusinessRule,可能有些人会觉得多余,但实际上,facade是对业务层提供方法的一个包装,不管下面business rule怎么变化,这个层相对固定,而business Rule就是专门的业务逻辑了,如果没有复杂的业务逻辑判断,这两层可以合并,对中型网站来说,业务层用一层是可行的.

数据访问层不用解释太多,不过我解释下所谓IDataAccess接口,和DataAccessFactory的提法,实际是对上层提供一个统一的数据访问层接口,然后可以许多实现,比如针对sqlserver的实现,oracle的实现等等,于是可以实现数据库的切换,现在所谓的provider模式,见微软的dataaccess application block,就是这样一种实现,给出一个统一的接口,然后针对不同数据库写不同的实现,而且上层和数据访问层间是通过配置文件来连接的,于是可以实现动态切换,当然这是一个好办法,不过一般如果网站的数据库相对固定,(一般不会出先切换多种数据库的情况),就完全可以不用这样实现了.

common里面放业务实体,很多网站都是这样作的,但是当然也有局限性,因为一般common里放的是在层间传递数据的统一格式,也就是所有的层次都是由这个来传递数据.但有时候,各个层间可能需要不同数据传递格式.

中型网站,一般三层,一个界面层,一个业务层,一个数据访问层足够了,因为,除非是商务网站,一般业务逻辑不复杂,无外乎是一些有效性验证工作,这是两个业务层就多余了,winui,webservice一般可能不需要,数据库也不用切换.

systemframework,看起来是一个杂货铺,但其实是一个比较重要的程序集,他一般是许多次开发经验积累的结果,里面的日志类,缓存类,配置文件访问类,断言,还有测试工具,都可以被在许多网站中重复使用,所以一个好的框架集,简直就是一笔财富,开发的时候应该注意经常把好的东西,通用的东西放进来,然后用适当的命名空间加以分类,以后会收益无穷

开发过程和方法,是另外一个话题,但是既然提到了,我就简单说说,软件从需求分析,建立模型,到代码是一套流程,比较严格的方法是用rup,但是这个对前期需求要求比较清楚,计划制定与建立模型需要相当的时间和工作量,对于小项目,小团队,是得不偿失,而且rup重在从需求建立模型和架构,而网站开发的模型和架构都比较成熟,不用每次都从0开始,所以,简单一些,实用就好,可以考虑敏捷开发,这种开发速度较快,对不确定的需求支持好,讲究测试和重构,具体不详述,有兴趣参资料,一搜一把

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.NET 分布式架构是一种基于.NET技术栈构建的应用程序架构,旨在实现应用程序的分布式部署和扩展。它使用了一系列.NET技术和工具,如ASP.NET Core、Azure Service Fabric、WCF(Windows Communication Foundation)等。 在.NET分布式架构中,应用程序的各个组件可以部署在不同的物理或虚拟机器上,通过网络进行通信和协作。这种分布式部署可以提高应用程序的可伸缩性和可靠性。 常见的.NET分布式架构模式包括微服务架构、事件驱动架构和消息队列架构。 微服务架构是一种将应用程序拆分为一组小型、自治的服务的架构。每个微服务负责特定的业务功能,并通过轻量级通信机制进行交互。这种架构使得开发团队可以独立开发、部署和扩展各个微服务,提高开发效率和系统的可扩展性。 事件驱动架构基于事件和消息传递的概念。各个组件通过发布和订阅事件来进行通信。当某个组件发生状态改变或触发了某个事件时,它会发布相应的事件,其他订阅了该事件的组件可以接收并作出相应的响应。 消息队列架构利用消息队列作为组件之间的中间件,实现了异步通信和解耦。组件通过将消息发送到队列中,其他组件可以异步地接收和处理这些消息。这种架构可以实现高可靠性和可伸缩性,并且降低了组件之间的耦合度。 .NET分布式架构通过这些模式和技术,帮助开发人员构建高可伸缩、可靠和易于维护的分布式应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值