現代Web架構
AppML結合了最先進的最新技術和現代網絡的發展思路。
AppML注重速度,簡單性和成本低:
- 面向服務的MVC架構
- 極低的帶寬消耗
- 優化雲計算
- 從演示內容的完全分離
- 智能聲明式編程
- 快速和敏捷Web開發
- 高可擴展性和可測試
- 簡單的配置和重新配置
- 對用戶帳戶和角色支持SMART
MVC架構AppML使用MVC架構 MVC代表模型,視圖,控制器 該模型描述了您的應用程序。 該視圖顯示您的數據。 控制器控制您的應用程序(of course) 。 維基百科: 模型,視圖,控制器 |
模型 - 只需JSON
該模型描述了應用。
該模型是在不同的硬件和軟件平台的可重複使用的(Server, PC, iPhone, Tablets, etc.) 。
該模型是不關心呈現或用戶界面(UI)
該模型是用JSON:
模型
{
"rowsperpage" : 10,
"database" : {
"connection" : "localmysql",
"sql" : "SELECT
CustomerName, City, Country FROM Customers",
"orderby" : "CustomerName"
},
"filteritems" : [
{"item" : "CustomerName", "label" : "Customer"},
{"item" : "City"},
{"item" : "Country"}
],
"sortitems" : [
{"item" : "CustomerName", "label" : "Customer"},
{"item" : "City"},
{"item" : "Country"}
]
}
查看 - 剛剛HTML
該視圖是在UI (User Interface) ,用於顯示(and input)的數據。
視圖是用HTML和CSS:
HTML查看
<!DOCTYPE html>
<html lang="en-US">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script src="http://www.w3ii.com/appml/2.0.3/appml.js"></script>
<body>
<div class="container" appml-data="local?model=model_customers">
<h1>Customers</h1>
<div appml-include-html="inc_listcommands.htm"></div>
<div appml-include-html="inc_filter.htm"></div>
<table class="table table-striped table-bordered">
<tr>
<th>Customer</th>
<th>City</th>
<th>Country</th>
</tr>
<tr appml-repeat="records">
<td>{{CustomerName}}</td>
<td>{{City}} </td>
<td>{{Country}} </td>
</tr>
</table>
</div>
</body>
</html>
試一試» 控制器 - 客戶端和/或服務器腳本
網頁中的客戶端腳本可以控制應用程序:
- 如在模型中定義AppML能夠顯示數據
- 由HTML屬性定義AppML能夠顯示數據。
- AppML應用程序可以運行獨立的HTML (hidden)
- (可選地)可以AppML從web服務器(SQL服務器)請求數據模型
- (任選地)AppML用戶可以編輯數據
- (任選地)AppML可以發送數據到web服務器
服務器腳本可以控制應用程序:
- 從客戶端接收請求(browser)
- 將數據返回到客戶端
- 從客戶端接收數據
- 更新服務器上的數據
- 以驗證和安全的護理
編程的藝術
保持應用程序的大小和複雜性低,是所有節目的主要問題。
控制計算機應用的複雜性,是程序設計的真正的藝術。
聲明式編程
軟件開發經常斷裂期限和預算。 成品軟件常常爆滿編碼錯誤的。 這是因為計算機代碼是很難開發,測試和維護。
編碼已超出 。 你應該更多的描述做什麼 ,少怎麼辦呢。
隨著AppML您在模型和視圖 聲明你的應用程序。
隨著AppML有少(sometimes nothing)代碼 。
維基百科: 聲明式編程
快速和敏捷應用開發
控制計算機應用的複雜性是程序設計的真正的藝術。
在控制下保持應用程序的大小和複雜性是所有節目的主要問題。
RAD是使用最低限度的計劃有利於快速原型的軟件開發方法。
AppML提供超快速的原型設計,高達100倍,比傳統的開發方法更快。
應用原型,可以直接從應用模式運行,無需任何編碼。
敏捷軟件開發是基於一步一步的發展,在解決方案的用戶和開發者合作創建了一個方法。
隨著AppML,應用可以用一步一個腳印,以小的增量,從原型到完整的應用程序。
代碼優先
Web應用程序可以在兩種不同的方式進行開發:
1.代碼首先:使用預編程的,預測試代碼,只添加新的應用程序的描述。
2.合同第一:編碼從頭開始使用完整的應用需求描述的應用。
AppML使用最合理的概念: 代碼第一 。
面向服務的架構(SOA)
面向服務的架構(SOA)是一種用於構建Web應用程序的架構。
SOA提供了開發成本低,靈活性高。
有了SOA,應用程序可以創建從無到有,或從現有的IT基礎架構,並使用由不同的應用程序,在不同的硬件和軟件。
SOA是MVC和聲明式編程 ,其中數據可以不如何的關注很容易消耗再合適不過了。
網頁服務
Web服務是數據,通過URL標識的接口,就像一個網頁。
一個Web服務從網頁不同,只有在它傳達信息的方式。
一個典型的Web服務只提供數據到網頁。
隨著AppML,HTML是用戶界面,Web服務提供的數據。
原始Web服務被設計為使用XML標準,如SOAP,WSDL和UDDI。
現代的Web服務,如AppML更容易使用。
- 容易理解 - 人類可以閱讀
- 輕量級 - 沒有不必要的代碼或標記
- 易於實施 - 無需開發工具
Web服務的好處
- Web服務是代碼的小戶型
- Web服務是專門用來處理一組有限的任務
- Web服務使用基於HTTP通信協議
- Web服務是獨立的操作系統
- Web服務是獨立的編程語言
- Web服務可以連接不同的應用程序,系統和設備
- Web服務可以很容易地發布信息
- Web服務有利於快速應用程序開發
例如:一個小程序設計與證券交易所的價格供應其他應用程序。
例如:航班時刻表和機票預訂系統。
由於Web服務使用HTTP,他們是獨立於操作系統和編程語言。
雲計算
雲計算是SOA的擴展:應用作為一種服務,存儲作為一種服務,數據作為一種服務。
對於大多數人來說,雲計算是有關存儲在網絡上的數據:
- 電子郵件和日曆
- 文檔和電子表格
- 書籍,筆記,待辦事項
- 音樂,圖片和電影
- 數據庫和應用程序
原因是很明顯的:
- 有來自世界各地的訪問數據
- 分享我與其他人的數據
- 為了生存硬件更改或崩潰
隨著AppML,這是很容易把數據庫和應用程序在雲中。