首页 > 其他分享 >ArcObejcts SDK开发 020 开发框架搭建-架构设计

ArcObejcts SDK开发 020 开发框架搭建-架构设计

时间:2022-12-23 10:57:00浏览次数:48  
标签:架构设计 架构 ArcObejcts 程序 dll Framework 020 模块 SDK

1、技术选型

ArcObjects SDK 10.8(ArcGIS 10.8),.Net FrameWork 4.8,VS2022,WPF(WinForm)、DEV。

用的时候,打包的ArcObjects SDK dll文件,可以使用低版本的,例如10.2,这样可以保障ArcGIS 10.2以上的环境都可以运行我们的系统。

2、程序集和名称空间命名

一般情况下,我会使用AAAA.BBBB.CCCCC.dll命令,这和ArcGIS中的dll命名是一致的。AAAA代表公司、团队或者个人的简称,一般是2-4个字母;BBBB代表你这个系统名称的简称,我一般会用4-10个字符;CCCC代表模块的名称,长度不定,但能尽量短则尽量短。例如WOBM.GeoChem.Statistics。

而且逻辑模块和UI模块用不同的程序集分类。例如AAAA.BBBB.CCCC.dll,可能会跟一个AAAA.BBBB.CcccUI.dll。例如WOBM.GeoChem.StatisticsUI。

这点我们可以看下ArcObjects SDK的定义。

image1.png

3、业务功能不太复杂的系统

对于业务不太复杂的功能,我一般用以下的结构。

image2.png

我们会先创建Framework包,里面包含Framework和FrameworkUI两个程序集。这两个部分主要是框架,例如定义App-Command-Tool架构、定义常用的工具、定义常用的函数库、进度信息模块、日志记录模块、Toolbox执行器模块等,与具体的业务关系不大。

Cores包包含BLLs和UIs程序集,BLLs程序集包含了系统主要业务逻辑,里面可以用文件夹把模块分开。UI程序集主要包含各模块的UI定义,也是用文件夹把各模块分开。

MianApp主要集成Framework和Cores包中定义的内容。

4、业务功能复杂的系统

业务功能比较复杂的系统设计的变化主要体现在Cores包部分。以GeoChem系统为例。如下图所示。

image3.png

除了MainApp外,每个包都包含两个程序集,例如Framework包包含Framework和FrameworkUI,Statistics包包含Statistics和StatisticsUI。

Framework为框架包,Core为核心逻辑包,即其他各模块公用的部分。其他的都是各模块对应的组件包。最后汇总为MainApp。

5、架构的演变

架构并不是一成不变的,在系统刚开始设计开发的时候,很难考虑的面面俱到,把所有模块都考虑到。即使都考虑到,当后续的逻辑变化或者模块增加的时候都需要对架构进行适当的调整。

还是以GeoChem系统为例。

在2018年的时候,架构如下图所示。

image4.png

把一部分业务逻辑代码分离到Core模块中是怕万一系统再扩展Web应用,Core模块可以直接使用。

2020年的时候,架构图如下图所示。

image5.png

不再考虑可能性极小的Web应用扩展,合并成了三个程序集,把Core中代码融合到了BLLs程序集中。各功能模块在程序集内部以文件夹组织,只是把逻辑和UI分离。

2022年的时候,架构如下图所示。

image6.png

标签:架构设计,架构,ArcObejcts,程序,dll,Framework,020,模块,SDK
From: https://www.cnblogs.com/mytudousi/p/17000180.html

相关文章

  • Dubbo架构设计与源码解析(三)责任链模式
    作者:周可强一、责任链模式简介1、责任链模式定义责任链(ChainofResponsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前......
  • 【限时免费领取】2020-2022音视频 & 元宇宙行业报告精华合集,可单份或一次性打包下载!
     各位开发者小伙伴,社区运营小姐姐为大家准备了一份技术大礼包。涵盖音视频、元宇宙两大领域2020-2022年度精选行业分析报告,现开启限时免费领取!微信扫码获取行业报告,开......
  • 基于Go语言实现高并发推荐系统架构设计
    你好!我是封幼林,在小年糕负责推荐系统,主要从事服务架构相关工作。今天我要和你分享的话题是《高并发推荐系统架构设计》。这次分享主要分为以下这几个部分:推荐系统的基......
  • 2020第十七届华为杯数模C题——P300脑电信号数据预处理算法
    脑电信号数据预处理  这两天的数学建模选的C题,目标是要处理脑电P300信号的数据并进行相关预测任务。该题重点是数据预处理,因此根据最后实验的结果,分享相关的预处理方法以......
  • Dubbo架构设计与源码解析(二) 服务注册
    一、Dubbo简介Dubbo是一款典型的高扩展、高性能、高可用的RPC微服务框架,用于解决微服务架构下的服务治理与通信问题。其核心模块包含【RPC通信】和【服务治理】,其中......
  • 高并发架构设计经验总结
      高并发解决的核心问题是在同一时间上有大量的请求过来,然后我们的系统要怎么抗住这些请求带来的压力。本文从基础设施层、服务端架构层、服务应用层分别做了一个简单......
  • PowerDotNet平台化软件架构设计与实现系列(15):支付平台
    PowerDotNet个人项目中功能全面而强大的一个系统是支付平台。我对PowerDotNet的自信很大程度上来自于经过PowerDotNet重写后的支付、财务、结算、CRM等业务型公共服务系统......
  • 高并发架构设计经验总结
      高并发解决的核心问题是在同一时间上有大量的请求过来,然后我们的系统要怎么抗住这些请求带来的压力。本文从基础设施层、服务端架构层、服务应用层分别做了一个简单......
  • 架构设计(八):数据库的水平扩展和垂直扩展
    架构设计(八):数据库的水平扩展和垂直扩展作者:Grey原文地址:博客园:架构设计(八):数据库的水平扩展和垂直扩展CSDN:架构设计(八):数据库的水平扩展和垂直扩展数据库的扩展有两种方......
  • MySQL开源数据传输中间件架构设计实践
    主要内容: 本次分享将介绍目前数据迁移、数据同步、数据消费,多IDC架构中数据复制技术所面临问题及现有的产品和方案,并分享新开源的能在异构数据存储之间提供高性能和强大复......