Standards 控制台应用程序结构

Standards 控制台应用程序结构,standards,console-application,Standards,Console Application,在过去的6个月里,我已经编写了几个.Net控制台应用程序,在我们组织的不同项目中,我们有更多的应用程序。对于我的控制台应用程序,我通常采用相同的标准格式/结构。不幸的是,我们的许多控制台应用程序都没有 我一直在研究如何标准化这些控制台应用程序的结构。我还想为控制台应用程序的基本结构提供一个框架,并提供对标准处理方式(如参数传递、日志记录等)的轻松访问 有人能提出解决这些问题的最佳做法吗?我一直在读这篇MSDN文章,其中提出了控制台应用程序的设计模式。该示例使用模板方法模式来处理我前面列出的一些问

在过去的6个月里,我已经编写了几个.Net控制台应用程序,在我们组织的不同项目中,我们有更多的应用程序。对于我的控制台应用程序,我通常采用相同的标准格式/结构。不幸的是,我们的许多控制台应用程序都没有

我一直在研究如何标准化这些控制台应用程序的结构。我还想为控制台应用程序的基本结构提供一个框架,并提供对标准处理方式(如参数传递、日志记录等)的轻松访问

有人能提出解决这些问题的最佳做法吗?我一直在读这篇MSDN文章,其中提出了控制台应用程序的设计模式。该示例使用模板方法模式来处理我前面列出的一些问题

本文列出了使用这种方法的两个缺点

  • 以两倍的课程结束
  • 有许多简单、相似的类

有人能提出更好、更标准的处理方法吗?用这种方法列出额外的缺点怎么样?

我倾向于使我的控制台应用程序尽可能简单,并尽可能多地放在另一层中,以便更容易进行单元测试和验收测试。我通常也会让我的控制台应用程序保持简单/单任务,所以我通常不会有很多可能的路径,比如命令行参数。这使我能够只提取参数(如果有),解析它们并将它们传递给“后端”逻辑。

来回答我自己的部分问题


我确实花了很多时间寻找一种标准方法来处理传递给控制台应用程序的参数的解析。我一直在寻找类似于getoptforpython的东西。考虑到这一点,我决定的解决方案是。它涵盖了我们的所有需求,似乎以一种标准的方式处理争论。我想这可能会帮助那些在搜索中偶然发现这个问题的人。

/拥有许多简单、类似的类/是一个常见的问题。编写一个小型DSL处理器/解析器,从头开始生成特定类并在构建过程中使用。请不要使用缩小的URL。人们不喜欢点击他们,这一个似乎已经坏了。修复了链接。我以后将不再使用缩小的URL。谢谢你的提醒。你在生产中使用NDesk选项吗?该网站以相当大的篇幅声称其不稳定。它是否给您带来了任何问题?我目前在几个生产服务中使用它,没有遇到任何问题或不稳定。和你一起工作是一件很愉快的事。听到这个消息真是太棒了。感谢您的反馈。:)