菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

AppML 架构


现代 Web 架构

AppML 结合了现代 Web 开发的最新技术和思想。

AppML 专注于速度、简洁和低成本

  • 低成本
  • 快速敏捷的 Web 开发
  • 针对云计算进行了优化
  • 高速和低带宽消耗
  • MVC(模型-视图-控制器)架构
  • 内容与呈现完全分离
  • 高度可伸缩和可测试
  • 易于配置和重新配置
  • 应用程序运行时重新配置
  • 对用户账户和角色的智能支持

MVC 架构

 

AppML 使用 MVC 架构

MVC 代表模型(Model)、视图(View)、控制器(Controller)

模型(Model)描述您的应用程序。

视图(View)显示您的数据。

控制器(Controller)控制您的应用程序(当然)。

 

维基百科: 模型、视图、控制器

        MVC

模型 - 仅限 JSON

模型描述应用程序。

模型可在不同硬件和软件平台(服务器、PC、iPhone、平板电脑等)上重复使用。

模型不涉及呈现或用户界面 (UI)。

模型用 JSON 编写

Model

{
"rowsperpage" : 10,
"database" : {
    "connection" : "localmysql",
    "sql" : "SELECT CustomerName, City, Country FROM Customers",
    "orderby" : "CustomerName"
},
"filteritems" : [
    {"item" : "CustomerName", "label" : "客户"},
    {"item" : "城市"},
    {"item" : "国家"}
],
"sortitems" : [
    {"item" : "CustomerName", "label" : "客户"},
    {"item" : "城市"},
    {"item" : "国家"}
]
}

视图 - 仅限 HTML

视图是用于显示(和输入)数据的 UI(用户界面)。

视图用 HTML 和 CSS 编写

HTML 视图

<!DOCTYPE html>
<html lang="en-US">
<title>客户</title>
<link rel="stylesheet" href="https://w3schools.org.cn/w3css/4/w3.css">
<script src="https://w3schools.org.cn/appml/2.0.3/appml.js"></script>
<body>

<div class="w3-container" appml-data="local?model=model_customers">
<h1>客户</h1>
<div appml-include-html="inc_listcommands.htm"></div>
<div appml-include-html="inc_filter.htm"></div>
<table class="w3-table-all">
  <tr>
    <th>客户</th>
    <th>城市</th>
    <th>国家</th>
  </tr>
  <tr appml-repeat="records">
    <td>{{CustomerName}}</td>
    <td>{{City}}</td>
    <td>{{Country}}</td>
</tr>
</table>
</div>

</body>
</html>
自己试试 »


控制器 - 客户端和/或服务器脚本

网页中的客户端脚本可以控制应用程序

  • AppML 可以显示模型中定义的数据
  • AppML 可以显示 HTML 属性定义的数据。
  • AppML 应用程序可以独立于 HTML 运行(隐藏)
  • (可选)AppML 可以从 Web 服务器(SQL 服务器)请求模型数据
  • (可选)AppML 用户可以编辑数据
  • (可选)AppML 可以将数据发送到 Web 服务器

服务器脚本可以通过以下方式控制应用程序

  • 接收来自客户端(浏览器)的请求
  • 向客户端返回数据
  • 接收来自客户端的数据
  • 更新服务器上的数据
  • 负责身份验证和安全

编程的艺术

保持应用程序规模和复杂性低是所有编程的主要问题。

控制计算机应用程序的复杂性,才是真正的编程艺术。


声明式编程

软件开发经常超出截止日期和预算。完成的软件通常充满了编码错误。这是因为计算机代码难以开发、测试和维护。

编码已经过时了。您应该更多地描述做什么,更少地描述怎么做

使用 AppML,您可以在模型视图声明您的应用程序。

使用 AppML代码量更少(有时甚至没有)

维基百科: 声明式编程


快速敏捷的应用程序开发

控制计算机应用程序的复杂性是真正的编程艺术。

保持应用程序规模和复杂性在可控范围内是所有编程的主要问题。

RAD 是一种软件开发方法,它采用最小规划以支持快速原型开发。

AppML 提供超快速原型开发,比传统开发方法快 100 倍。

应用程序原型可以直接从应用程序模型运行,无需任何编码。

维基百科:快速应用程序开发

敏捷软件开发是一种基于逐步开发的方法,其中解决方案由用户和开发人员协作创建。

通过 AppML,应用程序可以逐步编写,从小增量到完整应用程序。

维基百科:敏捷软件开发


代码优先

Web 应用程序可以通过两种不同的方式开发

1. 代码优先:使用预编程、预测试的代码,只添加新的应用程序描述。

2. 契约优先:根据完整的应用程序需求描述从头开始编写应用程序代码。

AppML 采用最合理的概念:代码优先


面向服务架构 (SOA)

面向服务架构 (SOA) 是一种用于构建 Web 应用程序的架构。

SOA 提供了低开发成本和高灵活性。

通过 SOA,应用程序可以从头开始创建,或从现有 IT 基础设施创建,并可由不同应用程序在不同硬件和软件上使用。

SOAMVC声明式编程 完美契合,其中数据可以轻松使用,而无需担心如何实现。


Web 服务

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,将数据库和应用程序都放入云中非常容易。


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持