繁体   English   中英

VB.NET应用程序中的脚本自动化

[英]Scripting Automation within VB.NET application

我工作的软件公司为之前使用过其他类似软件的新客户提供数据转换服务。 我编写了一个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的脚本库可以完成我想要的大部分工作? 编写错误的脚本是为了解决这个问题吗? 如果有更好的方法,我真的不想重新发明轮子。

感谢您的任何帮助。 :)

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

它没有任何真正的依赖(除了.NET Framework),你不需要学习太多了解Python特定的语法来完成工作。

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

您可以嵌入任何DLR语言 (IronPython,IronRuby或JScript),也可以使用编译器服务从应用程序编译VB.NET,而不是编写自定义语言。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM