我正在尝试/考虑使CppCMS - C++网络框架项目更加跨平台。
今天,我可以轻松地支持Linux、OpenSolaris、FreeBSD甚至Cygwin。但是当涉及到本机Windows时,它会变得非常痛苦:
概况:
- Pref-forking allows be keep high survivability in case of crashing (not supported under windows) so this feature would be missing.
- I use some file-locking facilities (but I can probably give them up without forking)
- I have intensive use of native pthreads, even I can replace them with Boost.Thread
底线:
有许多重要的工作要做,即使它完成了,它也可能只使用MingW工具,而不是Windows程序员熟悉的“原生”工具。
所以,我的问题是:
编辑:
对我来说也很重要的一点是,有多少windows开发人员更喜欢使用开源开发工具,MingW而不是微软的开发解决方案,比如VS。
编辑#2:关于“本机”windows解决方案和IIS的定义。
实际上,使用IIS运行框架是一个非常困难的问题。我解释:
所以..。绝对没有将我的应用程序连接到IIS的标准方法。
请注意,我实现了标准的 Web服务器API,我既没有实现IIS专有的ISAPI,也没有实现Apache专用的API,甚至对于面向UNIX世界来说,第二个更重要。
因此,只是Windows IIS Web world还没有真正准备好为这样的项目进行合作,所以如果有人在Windows下使用它,它将与更开放的web服务器一起使用它。
发布于 2009-08-06 07:35:26
你应该根据用户的需求做出决定。用户是否曾在Windows上请求使用该框架?如果是这样的话,他们是否解释了为什么要使用Windows (例如,他们有哪些附加约束,他们想使用什么why服务器,等等)?
通常情况下,Windows用户确实期望事情按照Windows的方式工作。这意味着Visual支持、IIS支持、MSI安装程序等等。如果有些东西仍然觉得是Unix,我宁愿使用Unix适当,而不是与一个半工作的端口战斗。
发布于 2009-08-10 09:49:56
作为一个windows客户端应用程序开发人员,目前开发环境部门本质上是Win32和其他一切,而且它们大多是不兼容的,这给我带来了一定的伤害。这就是为什么我准备为我的个人windows应用项目搬到MinGW,并试图让他们跨平台。
我建议逐步转向更多的跨平台库,如您所建议的那样,重构线程以增强::fork(),或者使用IPC从fork()转到多进程,可能也使用boost的工具。日期/时间的东西,也可以处理升级换代。至于数据库支持,有
我认为微软的编译器支持并不重要,因为MinGW提供了一个很好的构建环境,支持它的所有IDE,Eclipse和Dev-C++都是最受欢迎的。但是,如果要使项目msvc兼容,请确保用户能够使用Visual 2010的Express版本(一旦发布)--这样就不会有人只为使用您的项目而为Visual 2010 (升级)支付费用,而且您也不会需要使用微软的最新技术。
您很可能不会为了项目规模的代码库而避免使用一定数量的ifdef,但这些努力肯定是值得的,如果不仅仅是因为获得了宝贵的经验并与一些新的快乐和感激的成员一起扩展了社区。
发布于 2009-08-10 19:25:45
您说您可以很容易地支持Cygwin,这一说法提醒我,我曾经看到过一些商业Windows软件,它们只是捆绑在cygwin1.dll中来支持一些原来的Unix代码。如果将cygwin1.dll添加到安装程序中就足够了,那么就试试它吧。
https://stackoverflow.com/questions/1237360
复制相似问题