2009-08-09 51 views
9

我一直在环顾四周,遇到了WT工具包,它是否稳定?有什么好处? 由于缺乏关于网站开发的图书馆和资源,我很难在C++中如何去做这件事。 (CGI/Apache)任何好的C/C++网络工具包?

我的应用程序的目的是从运行GNU/Linux的Sybase ASE15数据库填充一些数据Apache因此允许一些用户交互。

我打算使用Sybase开放客户端库(libct)从服务器检索列,并将此数据回馈到wt model/view。

我的请求:

有什么更实际的解决方案,而不是使用其他脚本语言? 我的意思是实际上,与ODBC检索和MVC机制的接口?

如果在C++中不可用,Java中的任何替代方法?

回答

2

给这一个样子。我从不喜欢Wt的设计。但是,我是一个反框架的人。

http://cppcms.sourceforge.net/wikipp/en/page/main

+0

是的,我知道misterMatt之前提出过这个问题,尽管这是一个很好的选择,但现在我正在编写一个小框架来满足需求。 关于Wt的设计,我认为它对于一个面向CGI的应用程序来说有点慢。 – ZeroCool 2009-08-12 17:49:27

1

用于C/C++的最佳Web工具包是Apache httpd。只需编写一个模块,您就可以使用libct访问您的数据库。

有像这样的MVC模块mod_spin,但我没有任何经验。

2

CGI程序在C和C++中都很容易编写 - 你不需要任何特殊的库,尽管有一个很明显会使开发速度更快。你真的了解CGI的工作原理吗?基本上,您的程序使用getenv()读取环境变量,进行一些处理,然后将一些HTML写入程序的标准输出。

+0

绝对是的,实际上程序已经达到了它打算做的事情,但有一些额外的开销。我不是一个JavaScript/AJAX专家,但是看到了一些工具(WT ie),它们可以完成整个工作,从而让您不知道实现的方式。 – ZeroCool 2009-08-09 23:48:45

1

C++是不是一个非常流行的选择对于web应用程序 - 可能是因为太容易 会留下安全漏洞,开发时间往往比脚本语言要慢很多。我想说99%的web应用程序不需要C++带来的速度。

因此,这导致缺乏良好的框架。

从我相当轻看我想说的重量可能是你最好的选择方面,虽然 它更多的有用的东西(比如网页模板)不是框架库。

我认真考虑不要在C++中这样做。甚至Java(我自己更喜欢C++)也有更强大的网页开发支持。

0

我的web开发个人的选择是Ruby on Rails的,但如果你有C,C++或Java之间进行选择的Web开发,我的建议是使用Java与JavaServer Faces

11

C++是不是 Web应用程序非常流行的选择 - 可能是因为 它太容易留下安全漏洞, 和开发时间往往是很多 比脚本较慢 语言。

动态类型的脚本语言将编译时错误转换为运行时错误。检测这些可能不像读取编译器输出那样简单。脚本语言可能适用于快速简单的项目。除了一定程度的复杂性之外,还需要强类型,结构良好的语言。如C++或Java。

大多数脚本编程语言都鼓励草率编程。对于“安全漏洞”:如果引用缓冲区溢出,分配/释放错误,则答案为“STL”。当然还有适当的培训:-)

4

tntnet(http://www.tntnet.org)非常适合用C++创建Web应用程序。

1

的Qt将会日益成长的日子。而Wt则是试图代表基于Qt的网络工具包。 C++是强大的语言,在我看来是最好的。如果你喜欢牛羚项目和独立技术。我真的建议使用它们。我使用PHP,Phyton,C#,VisualBasic,Fortran等,但我并不喜欢其中的C++。

1

我给了Wt一个尝试,真的很喜欢它。我不会给你任何缺点或利弊从头开始使用它,但是当你用C/C++编写后端数百万个API条目时,Wt是一个明显的选择。有一些非常强大的功能比较容易使用,例如动态加载的表格。在服务器上的信号处理等。

我真的不喜欢在Wt的一件事是,它在本文写作时与Windows上的Apache不兼容。您必须使用Unix或Windows上的IIS。 Wt还提供了自己的http服务器,这对开发应用程序非常方便,但我不相信它在生产服务器中的作用,因为我不确定它的安全性。

0

Apache Celix看起来像一个有前途的活动项目,可以满足这个(尽管旧的)问题的要求。请参阅:http://celix.apache.org/

从Apache项目说明页面:

Celix是适应C. OSGi规范的实现它将尽可能接近API,但由于OSGi规范主要是为Java编写的,因此会有差异(Java是OO,C是程序性的)。实现的一个重要方面是Java和C之间的互操作性。这种互操作性是通过在Celix中移植和实现远程服务规范来实现的。