我们承接这样的课题
- 无法马上舍弃 COM / ActiveX / OCX
- 32bit 组件成为 64 位化的障碍
- 在如何连接 C++ 资产与 .NET 上犹豫不决
- 想在不破坏既有规格的前提下分阶段迁移
推进方式的基本原则
在活用既有资产时,一开始就不以全面替换为前提,往往才是更自然的做法。
我们首先梳理下面几点。
- 这项资产是 UI 部件,还是承载着规格的部件
- 是否可以保持 in-proc 不变
- 在哪里跨越 32bit / 64bit 的壁垒
- 应当用包装器吸收,还是拆分到独立进程
特别擅长处理的主题
- 梳理包含 COM / ActiveX / OCX 的既有系统
- 梳理 C++ 与 C# 的边界
- 使用 C++/CLI 进行封装
- 重新审视跨 32bit / 64bit 的结构
- 制定分阶段替换计划
适合这样的情况
- 既有资产承载着业务或设备规格,无法轻易替换
- 想优先延长使用寿命和梳理边界
- 将来想替换,但现在需要安全的迁移手段
目标状态
理想并不是“把旧的东西全部清除”,而是在活用应当保留的资产的同时,只梳理复杂的边界。
由此,我们以达到下面这样的状态为目标。
- 易于维护的结构
- 看得见替换顺序的状态
- 降低将来的迁移成本