LDE 与 SDE 协作:企业级多开发环境体系
在传统的企业 PLM 项目开发中,开发人员通常在同一个中心化测试服务器(共享数据库)上修改 ItemType、Form 和 Method 代码。这种粗放的做法会导致开发人员之间的更改相互覆盖,造成“代码打架”、系统频繁崩溃、调试困难等问题。
Aras 官方提倡的 DevOps 工程化实践 核心就是引入 LDE(本地开发环境) 和 SDE(共享开发环境) 双环境体系,结合 Git 分支机制实现多人并行协作。
1. LDE 与 SDE 环境定义
1.1 本地开发环境 (Local Development Environment - LDE)
- 宿主:每个开发人员的个人工作电脑。
- 物理构成:本地安装 IIS、SQL Server 开发者版、Aras Innovator Server 实例、以及本地 Vault。
- 作用:完全隔离的个人沙箱。开发人员可以任意修改元数据、编写 Method 并附加调试器(debugger),而不会影响任何其他队友。
1.2 共享开发环境 (Shared Development Environment - SDE)
- 宿主:团队共用的中央服务器或云主机。
- 物理构成:公共数据库、公共 Web 容器。
- 作用:团队集成测试与自动化流水线运行环境。它是团队代码的“第一落地源”,只有通过代码审查的成果才能部署到 SDE。
2. LDE 本地开发沙箱搭建步骤
搭建一个合格的本地 LDE 开发沙箱,需要确保各项基础设施版本与团队 Baseline 一致:
- 设置 Powershell 执行策略:
- 打开管理员权限的 Powershell,允许运行配置脚本:powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
- 打开管理员权限的 Powershell,允许运行配置脚本:
- 安装 .NET SDK 及微服务运行时:
- 安装对应的
.NET Framework运行时与.NET 6.0/8.0 (Windows Server Hosting Bundle),确保 IIS 能够正确托管 Aras OData 路由微服务。
- 安装对应的
- 配置本地 SQL Server:
- 安装 SQL Server 实例,并确保其默认的排序规则(Collation)设为
SQL_Latin1_General_CP1_CI_AS。
- 安装 SQL Server 实例,并确保其默认的排序规则(Collation)设为
- 获取环境基线 (Baseline):
- 从公司 Git 团队主仓库下载当前的基线部署包(包含代码树 zip 和数据库备份 bak)。
- 将数据库还原到本地,并配置 IIS 将虚拟目录指向本地解包后的代码树。
3. 团队协作 Git 分支开发流
在双环境体系下,团队日常协作严格遵循以下 Git 分支合并模型:
3.1 核心流程走过 (Fork & Clone)
- 建立派生仓库 (Fork):开发者在 Azure DevOps 或 GitHub 上,从“团队主仓库(Team Repo)”派生出自己的“个人隔离仓库(Developer's Fork)”。
- 本地克隆 (Clone):开发者将自己 Fork 的仓库 Clone 到本地 LDE,创建功能开发分支(如
feature/part-customization)。 - 本地开发调试:在 LDE 沙箱中修改元数据和 Method 代码,并通过 VS 进行本地集成测试(TAF)。
3.2 成果提交与代码审查 (PR & Code Review)
- 包导出与代码跟踪:开发完成后,使用 Aras 导出工具将元数据修改导出为本地 XML 包(物理文件),连同 Method 代码一起提交 commit。
- 同步更新 (Fetch & Rebase):在推送到云端前,开发者必须从团队主仓拉取最新的变更,并在本地分支进行
rebase。如果有元数据冲突(如两个人都修改了同一个 ItemType 属性),在本地 LDE 解决冲突并验证。 - 推送与 PR 发起:将本地分支推送到个人云端 Fork 仓库,然后向团队主仓的
development分支发起一个 Pull Request (PR)。 - 同级评审 (Code Review):
- 团队资深开发人员对 PR 进行审查,检查:
- 是否遵循命名规范(如 Package 命名必须带公司前缀)。
- C# 服务端 Method 是否存在 SQL 注入风险。
- 是否包含对应的单元测试。
- 自动化流水线(CI Pipeline)在后台静默运行,拉起集成测试环境进行自动构建校验。
- 团队资深开发人员对 PR 进行审查,检查:
- Merge 合并与 SDE 自动部署:评审通过且 CI 绿灯后,代码合并进主仓,CI 流水线自动将新成果推送到 SDE(共享开发环境)供业务人员验证。
