寻找一些进行研发的术语

Finding some terminologies for doing R&D

我来这里是因为我脑子里有一个程序和一些功能。

但我不确定这些功能在编程术语中的名称。所以我什至无法对相同的内容进行适当的 google 搜索。我很想知道这叫什么,所以我可以推进我的分析和研究。

我用 C# 和 Windows Forms 开发了一个程序。目前它与 YouTube API 交互并监控聊天。我还提出了一些事件,当聊天消息到达时以及消息跟随某个 format/syntax 时。目前一切正常。

我想做的是:

如果有人使用我的软件,他只能访问二进制文件。但是想写自己的逻辑,处理我提出的一些事件。他们是怎么做到的?

我想让用户自己写program/class,放在特定的文件夹中。我希望它有一个 Start() 和 End() 方法。在方法内部,他们可以编写代码来订阅他们选择的任何事件并执行他们需要的操作。

我已经在我的主循环中编写了代码,它将循环遍历应该包含用户程序的文件夹,并尝试调用他们 programs/classes 的 Start/End 方法。

对我来说,作为项目的原作者,直接在文件夹里面写代码就可以了。一旦我构建并执行。一切正常。主程序触发我添加的program/class里面的Start/End。而且事件也处理的很好

但是使用我的软件的人想要处理它的事件,而不必重新编译我的代码怎么样?他们是怎么做到的?

您有以下选项
选项 1

  • 使用 Start() / End() 方法创建一个包含所有必需引用的模板项目和一个代码文件 (.cs)。
  • 向 start() / end() 方法添加注释或添加代码示例以说明它们如何处理其他事件。
  • 如果您的主项目没有任何源代码,该项目应该可以正常编译。
  • 如果您希望用户使用 Visual Studio 代码,请向他们说明如何使用 VS 代码进行编译。
  • 如果他们打算使用任何文本编辑器,您需要为他们提供 msbuild 命令行来编译他们的代码。
  • 他们终于可以将 .cs 代码文件与您的主项目二进制文件一起放在特定文件夹中并进行试用。

选项 2

  • 只有当您的用户也是程序员时,以上选项才有效。
  • 如果他们是半技术人员,您可以为他们提供更简单的格式来提供额外的事件。
  • 例如,创建一个 json 或 xml 格式,他们可以在其中指定事件名称以及他们希望如何处理事件 - 脚本或从某些选项中选择。例如-
    {
      "myevents": [
      {
        "event": "chatUpvote",
        "handler": "ThankYouHandler"
      },
     {
       "event": "chatDownvote",
       "handler": "TellMeMoreHandler"
      }]
    }