知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當前位置>首頁 » 新聞資訊 » 網(wǎng)站建設(shè) >
C++web開發(fā)框架
發(fā)表時間:2012-2-15
發(fā)布人:葵宇科技
瀏覽次數(shù):72
C++ Web工具包 Wt
Wt(音同'witty')是一個C++庫,同時也是開發(fā)和部署web應(yīng)用的服務(wù)器。 Wt不是所謂框架(framework),它只是一個庫,它不會將編程方式強加于開發(fā)者。
Wt的API是以widget為中心(widget-centric)的,并受到現(xiàn)有C++圖形用戶界面(GUI) 的應(yīng)用編程接口(APIs)的啟發(fā)。Wt為開發(fā)者提供了幾乎所有web實現(xiàn)細節(jié)的抽象,其中 包括事件處理和圖像支持。
基于頁面的web應(yīng)用開發(fā)框架(Page-based frameworks),如PHP、JSP/JSF (+servlets+struts)等,沒有實現(xiàn)對一些最基本技術(shù)的特性的抽象,這些技術(shù)包括 HTML/XHTML、JavaScript、CSS、AJAX、 Forms、DHTML、SVG/VML/Canvas等,顯然基 于頁面的開發(fā)框架(frameworks)必須要求開發(fā)者隨時熟悉和掌握這些基本技術(shù)。另外, 當選擇某一種基本技術(shù)時(如當前流行的AJAX),開發(fā)者則要對該技術(shù)的優(yōu)雅降級 (graceful degradation)負責,比如當AJAX或JavaScript已經(jīng)不復(fù)存在或某些功能失效 時。同時,應(yīng)用程序結(jié)構(gòu)還要遵循早期HTML以頁面為基礎(chǔ)的開發(fā)范式。作為一個AJAX開 發(fā)者,這就意味著他需要手工設(shè)計和維護客戶端/服務(wù)器端的通訊。
盡管開發(fā)者有時不希望,但為了生成HTML代碼或填充HTML模板會在頁面中插入 JavaScript,如此操作則會帶來安全風(fēng)險,如跨站腳本(XSS:Cross-Site-Scripting)。 但是,模板框架(template frameworks)本身無法避免這種情況的發(fā)生,因為開發(fā)者總是 需要插入自定義的JavaScript來提高web應(yīng)用。
相比之下,使用Wt開發(fā)的web應(yīng)用就要好許多,因為這樣的應(yīng)用只使用一種編譯 語言(C++),而且生成必要的HTML/XHTML、Javascript、CGI、SVG/VML/Canvas以及 AJAX代碼的任務(wù)都交給Wt庫完成。自然地,web開發(fā)的安全性和瀏覽器可移植性問題也都 交給了Wt。另外,在可能的情況下,Wt將最大限度地使用JavaScript和AJAX;特別 地,在不支持AJAX的情況下,采用Wt開發(fā)的web應(yīng)用仍能正常工作,因為Wt采用了 轉(zhuǎn)回普通HTML/CGI的機制(reverting to a plain HTML/CGI mechanism),保證了 瀏覽器與服務(wù)器之間的正常通訊。
典型應(yīng)用舉隅:
- 由于Wt web應(yīng)用服務(wù)器占用較低的內(nèi)存(low footprint),故而可以為 可聯(lián)網(wǎng)的嵌入式系統(tǒng)(web-enabled embedded systems)提供基于web的圖形 用戶界面(GUI);
- Wt可以為需要整合現(xiàn)有C++庫的應(yīng)用提供基于web的圖形用戶界面(GUI), 這些應(yīng)用包括科學(xué)上的或工程上的應(yīng)用;
- Wt可以創(chuàng)建從現(xiàn)有C++桌面應(yīng)用到web的有效渠道(port)。
使用Wt的好處
- 可以象開發(fā)C++桌面應(yīng)用一樣開發(fā)web應(yīng)用;
- Wt提供最基本的(plain)widgets,這些widgets可以在運行環(huán)境不支持 JavaScript的情況下照常工作(當然,如果支持的話效果會更好)。同時Wt::Ext命名 空間下的widgets工作效果會更酷(more polished),而且可以提供更高級的功能, 但是會需要對JavaScript的支持以及更為流行的瀏覽器。以上兩類widgets在Wt中共享 同一套應(yīng)用編程接口(API);
- Wt提供兩種開發(fā)與部署模式,即使用Wt內(nèi)置(build-in)httpd或者FastCGI連接器 (connector),前者在Wt內(nèi)較容易實現(xiàn),而后者則實際上是在開發(fā)FastCGI應(yīng)用;
- 客戶端與服務(wù)器端在驗證(validation)和事件處理(event handling)方面采用同 一原則(a single specification),即兩種應(yīng)用下,開發(fā)者在服務(wù)器端使用C++編寫, Wt既在服務(wù)器端生成C++代碼,又同時在客戶端生成JavaScript代碼;其中事件處理特 指使用無狀態(tài)槽(stateless slot)實現(xiàn)的情況;
- 可以產(chǎn)生標準的、符合HTML/XHTML規(guī)范的代碼;
- 使用內(nèi)聯(lián)VML、SVG、HTML 5 Canvas可以提供可移植的(portable)、抗鋸齒圖像 (anti-aliased graphics);
- 無跨站腳本(XSS)風(fēng)險,因為Wt完全控制表示層(presentation layer),并提前 (proactively)過濾掉活動(active) 標簽(tags)和屬性(attibutes),這樣很好地 隱藏了駐留在服務(wù)器端的業(yè)務(wù)邏輯(business logic);
- 基于Wt的應(yīng)用載入時間極短(ultra-fast load time),同時占用較低帶寬 (low bandwidth usage),當然也會受到顯示內(nèi)容復(fù)雜程度(screen complexity)的影響, 但肯定不會是應(yīng)用程序的大小。
C++的Web開發(fā)框架 CppCMS
CppCMS是一個C++的Web開發(fā)框架(不是一個CMS) 。它不同于大多數(shù)其他Web開發(fā)框架,如巨蟒Django , Java的Servlets ,或C++ Wt因為它在設(shè)計和調(diào)整來處理極高的負荷,而且它的目的是發(fā)展的網(wǎng)站,而不是“GUI-Like” Web應(yīng)用程序。
下面是一個模板腳本示例:
<% c++ #include "data.h" %>
<% namespace my_view %>
<% class message uses data::message %>
<% template render() %>
<html>
<body>
<h1><% message %> World!</h1>
</body>
<html>
<% end template %>
<% end class %>
<% end namespace %>
類似的項目還有一個 CppServ
C++的Web框架 runasdog它是網(wǎng)絡(luò)開發(fā)中的一個異類,開發(fā)網(wǎng)絡(luò)應(yīng)用,但是完全不需要網(wǎng)絡(luò)接口的參與,可以將你的本地程序瞬間變成一個網(wǎng)絡(luò)服務(wù)器,這就是runasdog!
runasdog,dog意指watchdog(看門狗),就是說它會像看門狗一樣,檢視著網(wǎng)絡(luò)的一舉一動,并將之通知給本地程序。目前官方給出了兩個 demo,一個是將bash變成remote bash server,啟動后可以遠程執(zhí)行bash命令,另一個是聊天室程序,程序本身用lua編寫,沒有用到第三方庫,通過runasdog將程序變成一個網(wǎng)絡(luò) 聊天室,支持查看玩家列表,發(fā)送消息給指定玩家,廣播消息,踢人,lua后臺又調(diào)用bash等等。功能相當強大。
相關(guān)案例查看更多
相關(guān)閱讀
- 百度小程序
- 小程序被騙
- 百度小程序公司
- 汽車回收系統(tǒng)
- 網(wǎng)站建設(shè)價格
- 云南科技公司
- 網(wǎng)絡(luò)公司排名
- 云南網(wǎng)頁制作
- 小程序技術(shù)
- 云南小程序制作
- 云南小程序被騙蔣軍
- 云南省建設(shè)廳網(wǎng)站官網(wǎng)
- 高端網(wǎng)站建設(shè)公司
- 網(wǎng)站沒排名
- web學(xué)習(xí)路線
- 百度人工排名
- 人口普查小程序
- 軟件定制公司
- 云南省建設(shè)廳網(wǎng)站
- 云南網(wǎng)站建設(shè)費用
- 云南省城鄉(xiāng)建設(shè)廳網(wǎng)站
- 日歷組件
- 云南小程序公司
- 前端
- 搜索引擎自然排名
- 昆明小程序哪家好
- 網(wǎng)站建設(shè)案例
- APP
- 汽車回收管理系統(tǒng)
- 小程序開發(fā)費用