国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Tutorial AppML / AppML 架構

AppML 架構


MVC 架構

 

<AppML> 采用了 MVC 架構。

MVC 全名是 Model View Controller,是模型(Model)-視圖(View)-控制器(Controller)的縮寫,一種軟件設計典范。

模型(Model) 描述你的應用。

視圖(View) 顯示你的數(shù)據(jù)。

制器(Controller) 控制你的應用。

 

Wikipedia:Model, View, Controller

 

       pic_mvc.jpg

模型(MODEL) - 僅僅是一個簡單的XML文件

模型描述了您的應用程序,并且可在不同的硬件和軟件平臺(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ù)和排序。


視圖(VIEW) - 僅僅是一個普通的 HTML 文件

視圖即是 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" 腳本文件。


CONTROLLER(控制器) - 僅僅是一個瀏覽器很服務端的腳本

服務端腳本通過以下方式控制應用:

  • 從瀏覽器中接收請求數(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ā)送修改請求。


典型的 Web 文件和文件夾:

pic_web.png



web文件夾:Demo

數(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ā)

快速應用開發(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


代碼先行(Code First)

Web應用程序開發(fā)可以使用以下兩種不同的方式:

1. 代碼先行(Code First):使用預編程,預先測試的代碼,只增加新的應用程序說明。

2. 契約優(yōu)先(Contract First):從頭開始使用完整的應用程序的說明要求編寫應用程序。

<AppML> 采用最合理的概念:代碼先行(Code First)


面向服務的體系結構(service-oriented architecture,SOA)

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的優(yōu)勢

  • 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)和編程語言。

調(diào)用Web services的應用程序?qū)⑹冀K使用HTTP協(xié)議發(fā)送請求。調(diào)用應用程序?qū)⒂肋h不會關心其他計算機運行的操作系統(tǒng)或編程語言。

Web services可以為更多的企業(yè)創(chuàng)造新的可能性,因為它提供了一種簡單的分發(fā)大量信息的方式。

比如:航班時刻表和機票預定系統(tǒng)。


云計算(Cloud Computing)

云計算(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ù)庫和應用程序放在云中。