0

在我不断努力兑现承诺和过度交付的过程中,我正在寻找一个 .Net 工具来创建非程序员上级可以使用的简单 .Net 应用程序。我将如何编写和编译代码?

意图解释:我希望我的上级,而不是要求我制作条形码标签应用程序,选择一些选项,进行一些测试打印,然后创建应用程序并准备好重复使用。但是我该如何编写输出应用程序让他们在其他机器上重用呢?

另外,这是一个糟糕的想法还是有一些优点?

编辑:对于所有建议可配置性而不是我原来的问题的人:我们发布的所有内部使用的应用程序基本上都被日工使用,我的上司更喜欢这些应用程序是静态的和不可配置的。话虽如此,我们的一些应用程序在 5 或 6 年内没有改变,因为它们是按照所需的规范制作的。在过去的几周里,他们请求了 2 个新的条码应用程序,其中第三个请求是通过的。

4

4 回答 4

2

这是可能的,尽管工作量很大。

我自己没有尝试过,但我会告诉你创建这样一个应用程序(技术上称为“域特定语言”)的最简单方法是从一些动态语言(如 IronPython 或 Boo)开始并构建你的在它之上的语言(动态语言让你添加新的命令)

我的朋友,他的名字叫 Ayende Rahien,甚至写了一本关于这样做的书: “Boo 中的 DSL:.NET 中的域特定语言”

于 2010-08-16T14:15:07.073 回答
1

您是否基本上想选择应用程序的外观和打印条形码的方式,并从中生成一个可以正常工作的新应用程序?即,您只想创建不同(定制)类型的条码打印机应用程序?

如果是这样,我建议将所有可选选项视为数据。制作一个生成器应用程序,让您可以轻松选择任何内容,并将其写入数据文件。制作第二个应用程序,它将读取数据文件并让用户创建条形码。第二个应用程序以及数据文件是您生成的应用程序,您可以使用生成器应用程序部署它。然后,生成器可以允许用户选择输出文件名,并将第二个应用程序与数据文件一起复制到该位置。这是一个双文件解决方案,但它允许“创建”和部署自定义条码打印应用程序。

如果它绝对必须是单文件解决方案,请查看资源 API,它可能允许您更新第二个应用程序的资源,因此您可以将数据文件注入可执行文件。

如果这是关于更多,即您希望用户能够添加您没有想到的功能,那么您可能对脚本语言有更多的运气,就像 James Curran 解释的那样。

于 2010-08-16T14:32:47.840 回答
0

好的,如果你不喜欢我关于动态语言的 DSL 的第一个想法,那么你必须从头开始创建你的整个语言。这意味着:

  • 定义语法。
  • 解析和标记源代码。
  • 从解析树创建含义指令。(即“编译”)
  • 从这些指令生成 IL 代码。

尽管有一些工具可以提供帮助,但这是一项巨大的工作:

  • Irony为解析以及一些编译和代码生成做了很多工作。
于 2010-08-16T15:04:20.167 回答
0

你不是说配置应用吗?

为用户提供您正在谈论的选项,并让他们将这些选项保存到数据库中,以便其他用户可以利用这些设置。

于 2010-08-16T14:15:59.813 回答