- 有没有人认真使用过Wt?
- 它运作良好吗?
- 您是否遇到过某些限制?还是优势?
Wt是一个用于开发 Web 应用程序的 C++ 库。
请避免讨论 C++ 是否是 Web 开发的好语言。我只是想尝试一下 Wt,因为这似乎是一件有趣的事情。
我一直在使用 Wt 构建直接链接到 C++ 库的应用程序,但并没有特别花很多精力来练习 CSS 等布局功能。到目前为止,在构建此类应用程序时,它可以很好地替代 GTK。我是一个 Linux 用户,我也是真正喜欢用 C++ 编程的未洗异教徒之一,这个框架是我构建一个可以在许多平台上实际使用的应用程序的完美方式。
我没有亲自使用过该框架,但与一些使用过的人讨论过。它们实际上并没有任何限制,但我发现很难相信它们每次都在编译。他们的主要评论是,就内存使用而言,它对服务器的负载相当轻。就个人而言,我认为 php、python、ruby 等的解释性语言与 Web 开发的性质很好地配合——但这不是你问的问题。最大的优势可能是能够利用您现有的技能在新媒体中工作。
网上也有一些很好的评论,讨论利弊。这是我找到的一个http://discuss.joelonsoftware.com/default.asp?biz.5.599655.33
但是,我认为这里的主要答案是,如果没有考虑到特定的项目要求,将很难评估任何框架的适用性。如果你认为尝试用它编写一些东西会很有趣,那就试试吧。这将是确定它是否适合您的需求的最佳(如果不是唯一)方法。
我已经尝试了几个 C++ 嵌入式 Web 服务器。它们往往难以使用,而且对 Windows 不友好。
(你没有提到你的平台。如果你在 Unix 上,那么我怀疑你会发现可用的服务器更容易使用,并且可能会忽略这个答案。如果你在 Windows 上,请继续阅读......)
我尝试过 Wt,但被大规模安装打败了,它需要几个小时来编译和生成一页又一页的警告,以及广泛的学习曲线。Wt 以 Qt 为蓝本,因此如果您熟悉 Qt,学习曲线的挑战就会小得多。
我尝试过 John Bartas 的 Webio, 我喜欢这个概念,而且效果很好。但是,我发现它使用起来过于复杂,而且服务器代码难以理解。Webio 的许多复杂性是由使用“HTML 编译器”隐藏 HTML 页面造成的,这些 HTML 页面控制嵌入在应用程序代码中的文件系统内的 GUI 外观。我更喜欢将 HTML 页面放在外面的普通视图中,这样我可以在不重新编译应用程序的情况下调整 GUI。
我也看过TWS 这是由负责 SQLITE 和 FOSSIL 的 Richard Hipp 撰写的,我是他的忠实粉丝。但是,TWS 从 2001 年开始就没有维护过,并不是真正的 WINDOWS,所以我很不情愿地决定不去追求它。
最后,我推出了我自己的,称为WEBEM ,它基于 boost::asio Web 服务器的最小修改版本。在概念上类似于 TWS,但比 TWS 更简单,它允许 html 代码执行 C++ 方法。
老实说,我看过它,但我发现了一个重大的 Wt 设计缺陷——它以 Qt 为模型。试图使 Web 应用程序的外观和行为类似于 GUI。
我认为,这种方法是错误的。客户端和服务器端之间应该有明确的分离。
如果您对 C++ Web 编程感兴趣,请查看具有更传统 MVC 模型的CppCMS 。
请注意,我有偏见,因为我是 CppCMS 的开发人员。
使用它制作了一个待办事项列表应用程序。效果很好,没有问题。
我目前使用它来开发一个 GPS 测量处理 Web 应用程序,它基于用 C 实现的处理算法。它运行良好,并且与遗留 C/C++ 代码具有良好的协同作用。
它的文档不是那么广泛,并且缺乏学习教程和相关书籍使其难以学习。