【发布时间】:2010-01-08 19:28:53
【问题描述】:
我已经用 .NET 编写了一些桌面应用程序,它们既提供了用于正常使用的前端 GUI,也提供了用于其他需求(例如扩展、调度、自动化、高级使用等)的命令行界面。命名这两个可执行文件的最佳做法是什么,因为它们构建在同一个目录中?我见过或做过以下一些事情:
- 将 GUI 命名为
<X>.GUI.exe,将控制台命名为<X>.exe。 - 将 GUI 命名为
<X>.exe,将控制台命名为<X>.Console.exe。 - 将 GUI 命名为
<X>g.exe和控制台<X>c.exe,或其他名称-后缀组合。 - 将代码置于上述描述性命名空间下,但排除控制台可执行文件上的命名空间。也许让它更短的名字和所有的小写字母也是如此。这很容易在 shell 中键入,但普通用户仍然可以看到 GUI 可执行文件的复杂命名空间。
- 完全使用不同的名称或命名空间。
对于同一个通用应用程序有两个不同的界面——一个是图形界面,另一个是文本界面,但我希望文件名清楚地表明程序是什么,同时给出提示(不仅仅是在它的图标中) ) 无论是 GUI 还是控制台,都没有使用神秘的名称。
旁注:有一个类似的“问题”,您有一个 .NET 类库并想编写一个前端以在不编写代码的情况下使用它。在这里,我通常会看到名为 <X>.Exe.exe 的可执行文件,其中库只是称为 <X>.dll (但我不相信这是一个好的做法),或者它是一个更友好的名称,例如Some Tool Name.exe。但在这个问题上,我更感兴趣的是如何命名可执行文件。
【问题讨论】:
-
我一般使用的命名约定是CompanyName.ApplicationName.Component
-
In 使用此回复已删除的答案:toastedcode.wordpress.com/2006/10/11/…。我以前实际上已经这样做过,我发现它可能会产生误导。例如,当您在终端中运行没有参数的程序时,它通常会执行默认操作或显示帮助消息,但会打开一个 GUI。如果你真的想在运行 GUI 时接受一个参数(例如,另一个文件的一些拖放操作),它可能会更加混乱。总的来说,我认为这样做很少见,所以我选择不在问题中包含它。
-
你为什么不只使用一个.exe?修改Main()方法,有参数时不要调用Application.Run()。
标签: .net user-interface command-line namespaces naming