【问题标题】:Scripting Automation within VB.NET applicationVB.NET 应用程序中的脚本自动化
【发布时间】:2010-12-31 03:13:28
【问题描述】:

我工作的软件公司为以前使用过其他类似软件的新客户提供数据转换服务。我编写了一个 VB.NET 应用程序来自动执行常见的转换操作,并且在已知供应商之间有单独的逻辑。特定的文件布局已变得相当普遍,但由于该特定竞争对手的应用程序存储信息的性质,某些字段对一个客户意味着一件事,而对不同的客户则意味着另一件事。

此供应商格式中的某些元素每次都会更改,因此我编写了应用程序来说明这一点。因为某些数据字段对不同的供应商意味着不同的东西,所以我每次都必须更改我的映射代码。当我每六个月左右使用一次时,这不是问题,但这些变得越来越普遍,我更愿意找到一种方法来进一步自动化这个过程。

我正在考虑实现一种简单的解释性脚本语言,它允许我将客户端的转换设置保存在一个文本文件中,这样我就不必每次运行它时都将设置输入我的应用程序。从长远来看,我的目标是花时间在更快的转换中实现这一目标。

这是我脑海中的例子:

# this is a comment
RECORD INCLUDE(source[Class] != 'I' && source[Category] != 99);

FIELDMAP
  destination[name] == source[name];
  desintation[address] == source[mailingaddress1];
  ...
END FIELDMAP

BEGIN
  # logic goes here
END

我不想让这变得比它需要的更复杂。我承认我什至从未研究过脚本,并且对于从哪里开始或需要考虑哪些其他因素一无所知。

是否已经有 .NET 的脚本库可以满足我的大部分需求?编写脚本是错误的方法吗?如果有更好的方法,我真的不想重新发明轮子。

感谢您的帮助。 :)

【问题讨论】:

    标签: c# .net vb.net scripting automation


    【解决方案1】:

    IronPython(Jake 提到的 DLR 语言之一)是 Python 脚本语言的 .NET 实现。它允许您访问 .NET 代码(包括框架类和您编写的类),并且是此类任务的绝佳选择。

    它没有任何真正的依赖项(除了 .NET 框架),您无需学习太多特定于 Python 的语法即可完成工作。

    (如果您决定使用 IronPython,我建议您使用 Notepad++ 作为您的编辑器。)

    【讨论】:

    • 我以前从未使用过 Python,但 IronPython 看起来很有希望。我会试一试。谢谢!
    【解决方案2】:

    您可以嵌入任何 DLR languages(IronPython、IronRuby 或 JScript),而不是编写自定义语言,或者您可以使用 compiler services 从您的应用程序编译 VB.NET。

    另一个想法...如果您只需要更改变量名称之间的映射,也许您可​​以想出一个定义映射的小 XML 文件。

    【讨论】:

    • DLR 语言听起来像是我需要的,但我将探索编译器服务,看看这是否是一个可行的选择。映射确实是我的逻辑的一部分,但有时我需要动态定义其他逻辑,因为某些字段不会以线性方式映射。感谢您的输入。 :)
    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 2021-12-01
    • 1970-01-01
    相关资源
    最近更新 更多