“最近比较忙,很少写文章了。是在做一个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
领取专属 10元无门槛券
私享最新 技术干货