2009-08-09 32 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中移植和實現遠程服務規範來實現的。