我认为这个问题是一个具有强大Linux系统编程背景的人。我在Windows开发方面的经验很少,到目前为止仅限于“控制台应用程序”类型的程序。
开发服务器的规范流程是什么,知道它必须在Windows上运行?
是否有人立即构建 Windows服务应用程序?调试过程真的是as obnoxious as it seems吗? 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
$
答案 0 :(得分:3)
首先:是的,Windows上的服务器几乎总是优先实现为系统服务。但是,如果服务器也可以从命令行运行以进行故障排除,那么这是一个额外的好处。
构造代码通常不太困难,以便将特定于服务的逻辑抽象为可以检查您是作为服务运行还是在命令行上运行并且相应地运行的函数。我更喜欢只有一个包含main()函数和特定于服务的东西的源模块。为了获得最佳结果,请确保只有此模块知道您正在运行的模式。(另请注意,此模块通常可以从一个项目继承到下一个项目,只需要适度更改。)
这样做的另一个好处是,它意味着您可以在命令行模式下完成大部分调试,而无需多个构建选项。您仍然需要测试(并可能调试)服务逻辑本身,但这是一个小得多的工作。
您可能已经看过一些其他信息here。
答案 1 :(得分:2)
在Windows上,服务是