?
This document uses PHP Chinese website manual Release
MVC 架構
<AppML> 采用了 MVC 架構 MVC全名是Model View Controller,是模型(Model)-視圖(View)-控制器(Controller)的縮寫,一種軟件設計典范。 模型(Model) 描述你的應用。 視圖(View) 顯示你的數(shù)據(jù)。 制器(Controller) 控制你的應用。
Wikipedia: Model, View, Controller
| ![]() |
模型描述了您的應用程序,并且可在不同的硬件 和軟件平臺(PC,iPhone,Tablets,等)重復使用。它不關心用戶 界面(UI)或表現(xiàn)形式。
模型采用xml編寫,存儲于web服務器中。
<appml>
<datasource>
<database>
<connection>Northwind</connection>
<sql>SELECT CustomerName,ContactName,City,Country FROM Customers</sql>
</database>
</datasource>
<filters>
<query>
<field label="Customer">CustomerName</field>
<field>City</field>
<field>Country</field>
</query>
<order>
<field label="Customer">CustomerName</field>
<field>City</field>
<field>Country</field>
</order>
</filters>
</appml>
以上實例定義了數(shù)據(jù)源來自Northwind數(shù)據(jù)庫。
該模型允許 使用預定義的SQL獲取數(shù)據(jù)。它還允許通過Customer, City, 和 Country查詢數(shù)據(jù)很排序。
視圖即是 UI (User Interface:用戶界面)。它通常是一個顯示和輸入數(shù)據(jù)(可選)HTML頁面:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="appml.css" />
</head>
<body><h1>My First Web Application</h1>
<div id="Place01"></div><script src="appml.js"></script>
<script>
customers=new AppML("appml.html","Customers.xml");
customers.run("Place01");
</script></body>
</html>
以上HTML頁面使用通過執(zhí)行腳本語言創(chuàng)建一個 AppML 對象,并將數(shù)據(jù)顯示在id="Place01"的div中。
采用了 "appml.js" 腳本文件。
服務端腳本通過以下方式控制應用:
從瀏覽器中接收請求數(shù)據(jù)
將模型很數(shù)據(jù)返回給瀏覽器
從瀏覽器中接收更新數(shù)據(jù)
在服務器上更新數(shù)據(jù)
數(shù)據(jù)通信過程,請進行數(shù)據(jù)安全驗證。
瀏覽器腳本通過以下方式控制應用:
當頁面加載時,你可以加載<AppML> 控制器到頁面上。
使用控制器,你可以在頁面創(chuàng)建 <AppML> 對象。
當執(zhí)行 <AppML> 對象時, 它會向服務器請求數(shù)據(jù)。
<AppML> 對象從服務器接受數(shù)據(jù)(使用數(shù)據(jù)模型) 。
<AppML> 對象 (或者你的代碼) 在頁面中顯示你的數(shù)據(jù)。
(可選) web用戶修改數(shù)據(jù)。
(可選) <AppML> 可以向服務器發(fā)送修改請求。
數(shù)據(jù)文件夾: Data 圖片文件夾: Images 模型文件夾: Models 應用: Demo.htm 樣式: Demo.css <AppML> 配置文件: appml_config.php (或者 .htmlx) <AppML> 樣式文件: appml.css <AppML> 瀏覽器控制器: appml.js <AppML> 服務器控制器: appml.php (或者 .htmlx) |
快速應用開發(fā)(Rapid Application Development、RAD)不僅是一種需求抽取方法,它還是是軟件開發(fā)為一體的方法。 快速應用開發(fā)目的是快速發(fā)布系統(tǒng)方案,而技術上的優(yōu)美相對發(fā)布的速度來說是次要的。
<AppML> 提供超快速的原型設計,比傳統(tǒng)的軟件 開發(fā)方法高100倍的速度。
應用程序原型可以直接從應用程序模型運行,無需任何編碼。
Wikipedia: Rapid Application Development
敏捷軟件開發(fā)是基于用戶和開發(fā)者相互協(xié)作的基礎上一步一步的基發(fā)展而來的方法。
<AppML>應用從原型到完整的應用可以通過遞增的方式一步步來編寫實現(xiàn)。
Wikipedia: Agile Software Development
軟件開發(fā)往往無法按照預期的時間和預算完成。軟件編碼錯誤也是經(jīng)常出現(xiàn)。 這是因為計算機代碼是很難開發(fā),測試,維護。
編碼已經(jīng) 過時了。你應該更多描述做什么,而不是如何實現(xiàn)它。
使用 <AppML> 你需要在模型中聲明 你的應用 。
使用 <AppML> 可以 少寫或者不用編寫代碼。
Wikipedia: Declarative Programming
Web應用程序開發(fā)可以使用以下兩種不同的方式:
1. 代碼先行(Code First):使用預編程,預先測試的代碼,只增加新的應用程序說明。
2. 契約優(yōu)先(Contract First):從頭開始使用完整的應用程序的說明要求 編寫應用程序。
<AppML>采用最合理的概念: 代碼先行(Code First).
Web Service 是一個數(shù)據(jù)接口, 通過URL指定,就像一個web頁面。 但它有別與web頁面, 它只是一種傳達信息的方式。
一個典型的 Web Service 為頁面提供了數(shù)據(jù)。
使用 <AppML>, HTML 顯示為用戶界面, <AppML>提供數(shù)據(jù)。
Original Web Services 設計使用了 XML 標志如 SOAP, WSDL, 和 UDDI。
Modern Web Services 比如 <AppML> 應用更加簡單。
更容易理解 - 可以被我們閱讀
輕量級 - 沒有不必要的代碼或標記
易于實施 - 沒有所需的開發(fā)工具
面向服務的體系結構(service-oriented architecture,SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進行定義的,它應該獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言。這使得構建在各種這樣的系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方式進行交互。
Web services 只需要少量的代碼
Web services 被設計來處理一組有限的任務
Web services 使用基于HTTP的通信協(xié)議
Web services 獨立于操作系統(tǒng)
Web services 獨立于編程語言
Web services 可以連接不同的應用程序,系統(tǒng)和設備
Web Services 可以很容易地發(fā)布信息
Web Services 有利于快速應用程序開發(fā)
例如一個Web services,可以設計一個小程序,提供其他 最新的股票的交易價格的應用程序。
Web services使用HTTP協(xié)議與其他系統(tǒng)進行通信, Web服務是獨立于操作系統(tǒng)和編程 語言。
調用Web services的應用程序將始終使用 HTTP協(xié)議發(fā)送請求。調用應用程序將永遠不會 關心其他計算機運行的操作系統(tǒng)或編程語言 。
Web services可以為更多的企業(yè)創(chuàng)造新的可能性,因為它提供了一種簡單的方法的方式 分發(fā)了大量的信息。
比如:航班時刻表和機票預定系統(tǒng)。
云計算(Cloud Computing)是SOA的擴展: 應用即服務(Application-as-a service), 存儲即服務(Storage-as-a-service),數(shù)據(jù)即服務(Data-as-a-service)。
對于大多數(shù)人,云計算是在web上存儲數(shù)據(jù):
郵寄很日歷
文檔和電子表格
書籍,筆記,待辦事項列表
音樂,圖片和電影
數(shù)據(jù)庫和應用程序
原因很明顯:
有來自世界各地的訪問數(shù)據(jù)
與他人分享我的數(shù)據(jù)
硬件升級或者崩潰
<AppML> 可以很輕松地將數(shù)據(jù)庫和應用程序放在云中。