通过多个.exe编写应用程序是一种好习惯吗?

时间:2011-01-10 13:09:16

标签: architecture

在一本书中 - 我认为是Eric S. Raymonds“unix编程的艺术” - 我读到了......应该通过将多个小工具放在一起来构建应用程序。

所以,我想知道开发一个Windows应用程序是不是一个好主意,例如,为每个任务创建一个小的.exe?

例如:您有一个文档管理系统:

这可以像:

一样
  • 用于搜索和显示文档的.exe(GUI)
  • 用于索引文档的.exe(将文档放入数据库)
  • .exe用于删除文件

你认为这是一个好主意还是应该放在一个带有多个DLL的大型.exe中(这将是我看到大多数应用程序构建的方式)?

什么是利弊?

2 个答案:

答案 0 :(得分:2)

当我们考虑组件,服务,可部署单元等的粒度时,确实有很多优点和缺点。

在传统的命令行unix世界中,我们以文本文件的形式处理数据,每一行都是记录,也可能是用逗号或制表符或空格分隔的字段。然后可以开发很多小小的用户,我们用“cut”,“join”,“tr”,“grep”,“sed”,“head”等来获得巨大的乐趣。就个人而言,我仍然确保我拥有这些工具在我的Windows环境中。

为什么这么好用?基本文件格式同意:行和列。我们可以添加新的实用程序,并将知道进行集成。从来没有需要更改旧的实用程序,因为我们添加了一个新实用程序。也没有GUI,我们希望在命令行工作。我们只是启动任务管道来完成工作。

现在当事情变得更复杂时你会怎么做?当您想要提供GUI时。简单方法:点击子弹发布一个App。新功能,新的应用程序版本。这可能不是那么糟糕,你改变了UI的某些方面,需要更改一些文件格式或API,所以其他部分也会改变。更容易发布单一,连贯,(甚至可能)测试的整体。

然而,随着UI的范围增加,它释放所有内容相当具有破坏性。因此,Eclipse开发了OSGi之类的组件模型,因此可以从许多单独开发和发展的组件中组装单个UI。

答案 1 :(得分:1)

在我看来:

是和否。决定是否应该制作不同的.exe有几个因素。在宏观方案中,您必须确定正在执行的任务是否保证其自己的文件。一个很大的因素是决定它是否与您的中央应用程序有独立的用途。在此之后,您还必须确定您的应用程序是否已本地化为一个软件包,或者是一系列可以独立使用的实用程序。

从用户的角度来看,人们不喜欢一次打开多个程序。回到你的例子,这是我将如何做到这一点。我会将一个.exe作为主程序:

* an .exe for searching and displaying documents (GUI)
* an .exe for deleting documents
* etc.

然后有一个单独的.exe作为后台索引器,执行你列出的第二个功能。

实际上,它应该是根据具体情况进行评估的,从多个角度考虑智能UI设计。

编辑:此外,您可能会发现自己处于更适合其他分离方式的情况下(例如标签,对话框等)