架构设计

最近比较忙,很少写文章了。是在做一个C#架构的项目开发。因为项目比较小,因此,我全程参与了,就没有需求测试人员了。俗话说,麻雀虽小五脏俱全。我就给大家讲解下我在开发中的架构设计思路吧。

01

架构选择

我的项目就是数据同步工具:大致需求是,通过A系统导入组织职员和业务数据等到B系统中。记得读书的时候有句话,叫做题好一半文。架构选择好了,也会为我们带来事半功倍的效果。我分以下几点来说吧:

为何选择c版的应用程序,而不是web版?

web版是现在流行的版本,而且对于C#搭建起来也会非常简单。直接运用成熟的方案:MVC+webapi服务就好了。

但是,不能因为简单和流行,就选择与项目不符的版本。因为我这个项目是要通过B系统来调用它的。而B系统是基于c版来开发的。

02

服务端通信选择

为何选择.netremoting通信协议,而不是选择web service或者WCF等通信协议。

我们就要分析项目(通过调用A系统接口数据导入到B系统的数据)本身特性:

数据量大

时效性也较高

局域网通信

对数据量大,时效性高,满足该业务要求的,对于了解C#程序的人员来说,肯定是会选择.netremoting通信协议。

对于局域网传输特性,支持最好的肯定是采用TCP协议。而不是http协议。因为TCP协议对于局域网传输数据速度是最快的)。

总结:综合上述,选择了.netremoting+TCP通信协议。

03

架构搭建

架构设计如下图所示,记得在读书期间,c#最经典的架构就是三层架构。但是,在现在架构设计中,为了使功能更加清晰,分工更加细腻,一般都会采用多层架构。

各个组件所做的工作先做简单介绍:

客户端:负责界面层交互

公共组件:负责存放:(i)与A系统端通信协议编写的公共类,我们调用A系统,不是直接数据库访问,是采用的接口调用,就涉及到安全认证,接口getpost请求等一些列工作(ii)日志类。(iii)配置文件类等。

数据库层:与数据库打交道的类。处理一些公共的数据库调用方法。

中间层:中间层相当于web的iis服务,java的tomcat服务。它会在services.msc中看到我们挂载的服务。采用的微软windows services。

impl接口层:服务端方法的接口。

model:entity类。c#面向对象的实体将全部在这里定义,以及处理一些实体对象的通用简单的方法。

server服务端:服务端业务方法的处理层。

那么,部署的时候,放在客户端的组件有:

1客户端,2公共组件,5接口层,6 entity类。

放在服务端的组件有:

2公共组件,3数据库层,5接口层,6 entity类,7服务层。

图中,需要放在服务端的组件有:

End

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180203G0RBOJ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励