Skip to content

Visual Studio Method Plugin:开发服务端 Method

Aras Innovator Method Plugin 让开发者在 Visual Studio 中创建和修改 服务端 Method。 它可以从 Innovator 实例或本地 AML 包打开代码,也可以把代码保存回相同目标,并提供测试模板等辅助能力。

先看产品边界

这个插件面向 server-side methods。它不是通用的客户端 JavaScript/CUI/Form 开发器, 也不是 TAF 的 AML Integration Test Plugin。两者是不同的 Marketplace 扩展。


1. 适用版本与支持声明

截至 2026-08-13,Visual Studio Marketplace 页面明确列出:

  • Aras Innovator 12 SP18
  • Aras Innovator Release 20~37
  • 插件由 Aras 以 as is 方式提供。
  • Aras 不为该插件提供支持或相关服务。

Release 38 和 39 不在页面列出的范围内。即使扩展能够安装或连接,也不能据此写成“官方兼容 R39”。

Visual Studio 版本也要核对

不要凭经验写“支持 VS 2019/2022”。安装前应查看 Marketplace 当前的 Installation Targets、扩展版本说明, 并在与目标 Innovator Release 匹配的测试机做烟雾验证。


2. 插件能做什么

Marketplace 当前说明包含以下能力:

  1. 创建和修改 Aras Innovator 服务端 Method。
  2. 从 Innovator 实例打开 Method。
  3. 将 Method 保存回 Innovator 实例。
  4. 从本地 AML package 打开或保存 Method。
  5. 生成用于单元测试 Method 的模板代码。
  6. 保存 Method 前,在 Innovator 中创建新的 package。

这些能力并不意味着插件会自动完成:

  • Client JavaScript 的浏览器兼容测试。
  • Method 与 ItemType Server Event/Action 的所有关系配置。
  • Package Definition 的完整依赖分析。
  • 生产部署审批和回滚。
  • TAF 许可、环境与测试运行器配置。
  • 目标 Release 的 .NET 兼容迁移。

3. 版本决定服务端代码目标

插件解决编辑体验,不会替你消除运行时差异。

Innovator 世代服务器运行时边界开发含义
R15 起服务器组件迁移到 .NET Core 3.1旧 Framework API 可能不可用
R31 代.NET 6自定义 DLL 应按目标 Release 文档编译
R34/R35.NET 8.0.1依赖库需与服务器运行时兼容
R39.NET 10插件兼容页尚未列 R39,不能据此部署

服务端 Method 引用自定义 DLL 时,应使用目标 Innovator 版本的 IOM,并按 Programmer's Guide 配置 DLL 与 method-config.xml。 不要只因为 Visual Studio 编译通过,就认为服务器一定可以加载程序集。


4. 安装前检查

4.1 建立兼容矩阵

记录以下信息并随仓库保存:

text
Innovator Release : 35
Method Plugin      : <Marketplace extension version>
Visual Studio      : <validated edition/version>
Server runtime     : .NET 8.0.1
IOM                : <target-server compatible version>
Validation date    : 2026-08-13

如果 Innovator 超出 Marketplace 范围,停止并选择受支持工作流,例如在浏览器中维护 Method、 使用官方包工具迁移,或向 Aras 确认替代方案。

4.2 使用隔离账号和环境

  • 先连接 LDE 或专用开发实例。
  • 账号只授予 Method 与 Package 所需权限。
  • URL、数据库名和身份验证方式以目标环境为准。
  • 不把密码或 token 写进源码、项目文件或 Git。
  • 正式保存前确认 Method 是否已被其他开发者锁定或修改。

5. 推荐工作流

5.1 打开前

  1. 记录服务器中 Method 的 ID、名称、method_type 和最后修改时间。
  2. 确认它属于正确的 Package Definition。
  3. 导出或保存当前 AML,作为可比较基线。
  4. 再从插件打开 Method。

5.2 编辑时

  • Method body 只写平台要求的主体代码,不随意添加完整类包装。
  • 使用目标 Release 支持的 C# 与 .NET API。
  • 把权限检查和输入校验保留在服务器端。
  • 外部调用设计超时、重试和幂等。
  • 不把连接字符串、密码或环境 URL 硬编码在 Method 中。

5.3 保存后

  1. 从 Innovator 重新打开 Method,确认代码完整。
  2. 运行一个明确输入的烟雾测试。
  3. 导出 AML 包并审查差异。
  4. 确认 Server Event、Action、Permission 等关系没有意外变化。
  5. 再提交 Git 和发起评审。

6. 可复现实验:最小服务端 Method

仅在隔离开发环境新建一个测试 Method,例如 z_test_vs_plugin_smoke

csharp
Innovator inn = this.getInnovator();
return inn.newResult("VS_PLUGIN_SMOKE");

验证步骤:

  1. 在 Innovator 中创建 C# 服务端 Method,并纳入测试 Package。
  2. 使用插件从该实例打开 Method。
  3. 只修改返回文本为 VS_PLUGIN_SMOKE_2
  4. 保存回开发实例。
  5. 通过受支持的 Method 执行入口运行它。
  6. 断言 <Result> 内容为 VS_PLUGIN_SMOKE_2
  7. 保存到本地 AML package。
  8. 用文本比较确认只有目标 Method 发生变化。
  9. 用 Package Import Tool 导入另一份测试数据库并再次运行。

实验记录至少包括插件版本、VS 版本、Innovator Release、Method ID、Package 名和导入日志。

调试进程不能写死

现代 Innovator 使用 ASP.NET Core/Kestrel,IIS 在 MSI 部署中可作为反向代理。 不要把“始终附加 w3wp.exe”写成跨版本步骤;应按目标 Release 部署形态识别实际承载进程。


7. 测试模板不等于 TAF

Method Plugin 可以生成用于单元测试 Method 的模板代码;这项能力不等于安装了 TAF。

需求应使用的工具
编辑服务端 MethodAras Innovator Method Plugin
创建 Aras TAF AML 集成测试Aras Innovator AML Integration Test Plugin + TAF
编写普通自建单元测试团队选定的 .NET 测试框架

如果项目使用 TAF,还必须核对 TAF 自身的 Innovator/VS/.NET/许可矩阵。


8. 常见错误

声称插件支持客户端 JS

Marketplace 定位是服务端 Method。客户端脚本需要浏览器、Form/CUI 上下文和目标版本 API 的独立验证。

发明固定项目目录

不要把 ServerMethods/.../method.metadata.xml 等结构写成官方保证。 以实际插件版本生成的项目和 AML package 为准。

把 as-is 写成“官方工业级支持”

发布者是 Aras,但页面同时明确“不提供支持或相关服务”。两句话必须一起写。

默认兼容 R39

当前页面只列到 R37。版本范围之外必须重新评估工具链。

把保存到服务器当成发布完成

开发实例保存只是开发步骤。正式迁移仍需 Package、评审、导入日志、测试和回滚方案。


9. 官方依据

文档最后核验:2026-08-13。

本站内容仅供学习与参考