现代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,这是很容易把数据库和应用程序在云中。