作为一个有着强大Linux系统编程背景的人,我问这个问题。我在Windows开发方面的经验很少,到目前为止,这只限于“控制台应用程序”-type程序。
知道服务器必须在Windows上运行,开发服务器的规范过程是什么?
是否立即构建Windows应用程序?调试过程真的是尽管看上去很讨厌吗?Windows开发人员是否为了调试而从命令行应用程序开始,并仅将其转换为用于部署的服务?
作为比较,我将提供Linux“服务器”是所选语言中的常规命令行程序。我将把服务器定义为一个典型的程序,
Windows系统管理员可能需要完全不同的接口来启动、停止和管理服务器。我对此完全开放,我只是还没有看到事情的整个方面。
$ ./my-server &
Starting...
$ head /var/my-server.log
2012-3-10 14:34:43.934 [info] Server started! Waiting for connection from client
$ 发布于 2012-03-11 22:15:59
首先:是的,Windows上的服务器通常都是作为系统服务来实现的。但是,如果服务器也可以从命令行运行以进行故障排除,这将是一个额外的好处。
通常不太难构造代码,以便将特定于服务的逻辑抽象到函数中,这些函数可以检查您是作为服务运行还是在命令行上运行,并相应地运行。我更喜欢只有一个源模块,只包含main()函数和特定于服务的内容。要获得最佳效果,请确保只有此模块知道您在哪种模式下运行。(还请注意,这个模块通常可以从一个项目继承到另一个项目,只需进行少量的更改。)
这样做的另一个优点是,它意味着您可以在命令行模式下完成大部分调试,而无需多个构建选项。您仍然需要测试(可能还需要调试)服务逻辑本身,但这是一项小得多的工作。
您可能已经看到了一些附加信息-- 这里。
发布于 2012-03-10 14:24:02
在Windows上,服务是
有关.NET中的服务的更多信息,请参见这里;关于这些服务在C级(即没有任何高级语言工具)如何工作的细节,请参见这里。
https://stackoverflow.com/questions/9647125
复制相似问题