Delphi 10.3 Web应用开发B/S框架介绍(二):IntraWeb 17
发表时间:2019-1-19
发布人:葵宇科技
浏览次数:145
导言:很多人想当然的认为Delphi不能开发B/S WEB应用,其实Delphi发展到现在10.3,一直在不断的进步,Delphi不但巩固了Windows本机软件开发领域的王者地位,更扩展到了安卓、IOS、Linux跨平台开发领域,成为APP快速开发的利器,同时很多Delphi第三方开发厂商也不遗余力的开发了很多Delphi WEB应用解决方案。
作为最早的Delphi B/S WEB应用解决方案,IntraWeb已经推进到了17版,当前的发布版为15版,已经相当成熟,并被广泛应用与生产环境中。
漂亮的Delphi IntraWeb应用
像桌面应用程序一样开发,但作为标准HTML和JavaScript部署到Web。无需插件。
以下是IntraWeb 17的路线图,非常令人兴奋!
支持
IDE: 待定
IntraWeb 14和16支持Delphi / C ++ 2009.目前这意味着13个 Delphi编译器。添加C ++并且它加倍到26.这确实使构建过程复杂化并使支持问题变得复杂,因为一些是特定于编译器的。
较新版本的IntraWeb包含自愿遥测,它将通过HTTP调用报告有关IntraWeb安装的基本匿名信息和其他相关数据。所有数据都将匿名报告,不包含任何私人或个人身份信息。报告的一些数据的示例将是IntraWeb版本,IDE版本和用于防止我们的日志中的重复条目显示为多个安装的匿名ID。这是作为IntraWeb IDE包中已存在的版本更新检查的一部分实现的。
使用这些数据将使我们能够更好地处理使用各种Delphi / C ++版本的用户数量,并确定IntraWeb 17将支持哪些IDE版本。
浏览器: 在Flux中
IntraWeb 17正在向前迈进,需要依靠现代浏览器中的最新功能。最终的浏览器支持将被确定,并且还将取决于最终版本的时间范围以及每个浏览器如何执行所需的高级功能。
IntraWeb 17将具有双模式页面(有关详细信息,请参见下文)。对于IntraWeb 16及之前当前存在的旧类型表单/页面,浏览器要求将更加灵活。
模式可能会支持包括Internet Explorer在内的旧版浏览器,但IWML可能只支持:
- Chrome:43或更高。
- Firefox:45或更高。
- Internet Explorer:不支持 - IE是一个死产品,正在被Edge取代。
- 边缘:13,但更可能是因为Edge本身仍然处于不稳定状态。
- Mac浏览器:待定
- 移动:待定,但可能需要移动Chrome,移动Firefox或其他。
目标
大爆炸
非常简单地将IntraWeb方法再次放在Web开发的前面,并提供任何开发语言或平台中任何其他框架中都不可用的Web生产力和功能。
在AJAX和其他功能出现在主流之前许多年,IntraWeb具有诸如umPartial等功能。相比之下,IntraWeb 17将更进一步。
高度兼容
IntraWeb 17将需要进行重大更改,但我们理解允许现有代码以最小的更改工作的重要性。在核心区域,将评估重大变更的移植现有项目所需的时间。
IntraWeb 17包含一个新的页面类型(现在称为Page17)。仍将支持旧页面类型(页面16),允许现有表单按原样使用。
并行开发
IntraWeb 16和IntraWeb 17正在并行开发。
特征
IntraWeb 17目前包含许多新功能。随着开发的进展,某些功能可能会分阶段发布(即17.1,17.2等)或推送到未来的IntraWeb版本,如IntraWeb 18。
IWML(IntraWeb标记语言)
IWML是 IntraWeb 17 的核心功能,它将带来以前Web应用程序通常无法使用的功能。学到更多
Server Manager
服务器管理器是一个新的可选组件,可以使用所有部署模式(ISAPI,Apache等),它们将允许:
应用管理
- 动态加载和卸载应用程序
- 收集和查看有关用户和应用程序的统计信息,例如会话列表,使用的内存等。
- 实时更新 - 让新用户保持旧实例,而新用户在更新版本的应用程序上运行。当旧实例中的所有用户都注销时,旧实例将被禁用。
- 能够禁用应用程序并为用户提供消息。
用户管理
- 能够发送管理员消息
- 查看用户和会话时间
- 能够强制关闭个人或所有用户会话
ACORN
甲通则 ? ompact ? bject ? eadable ?浮选
IWML使用ACORN。ACORN是一种可扩展的规范,旨在实现灵活性,紧凑性,易读性,易于解析和易于流式传输。ACORN是在对XML的极度干扰和偏移(经常使用移位击键)感到失望之后设计的,并且严重限制以及较小(与XML相比)但仍然存在JSON的干扰和偏移。
ACORN是一种EOL分隔规范,使解析变得更加容易。
我们打算记录并打开任何人免费使用的ACORN。
IWCL
IWCL指的是IntraWeb组件库。IWCL不是Delphi IntraWeb组件,而是在浏览器中运行的IntraWeb JavaScript库。在IntraWeb 17中,现有的JavaScript IWCL仍然是为了确保兼容性,但IWML使用基于TypeScript的更新的IWCL。
对话框
JavaScript对话框非常有限,并阻止其他选项卡。现有的基于DOM的对话框更好,但仍然有局限性和副作用。IntraWeb 17将有一个自定义的统一对话框架来解决这些限制和问题。
统一图书馆
目前,每种部署类型都具有唯一的项目类型。ISAPI是一种项目类型,另一种是SA,依此类推。源文件可以共享,但这会产生额外的维护问题。作为服务器管理器所需更改的一部分,将存在一个新的通用项目类型,然后由ISAPI,Apache,ASP.NET的填充程序动态加载(事实上,IntraWeb的ASP.NET已经是一个加载IntraWeb库的填充程序)可以加载通用库。StandAlone不需要填充程序,但也会加载此通用库类型。
这将在部署期间添加一个所需的文件,但这是一个小缺点值得它带来的好处。
响应 - 手机,平板电脑,桌面
IWML的新布局提供了响应式布局作为其性质的一部分,并允许页面轻松地从小型手机屏幕调整到大型桌面显示器。
语气
通过纤维或停滞的线程。
TypeScript推理
有限的自动Delphi到TypeScript的翻译。
WordPress集成
此功能仍在调查中,但可能的功能包括:
- 能够为WordPress页面提供短代码
- 能够将整个页面提供给WordPress
- 登录和用户集成
- 能够检索WordPress内容并在IntraWeb页面中显示它
Facebook整合
能够发布到Facebook,使用Facebook登录等。
的WebSockets
IWML可以更轻松地修改DOM(浏览器中的网页),这使得更容易执行实时更新,远远超出AJAX的功能。问题的第二部分是延迟,被最终用户视为延迟或迟缓。
AJAX和其他通信方法都需要通过HTTP。HTTP使用短期连接,因此将其用作实时通信通道是不可行的。AJAX提交请求并等待响应,但如果服务器想要推送它必须等待客户端检入。这些请求中的每一个都建立一个新的连接,即使在快速连接上也可能需要几分之一秒 - 足够让用户注意到响应滞后。由于处理无法缓存的如此多的连接请求的简单开销,服务器上的大量负载也会减慢连接响应时间。
WebSockets 是一种允许通过HTTP进行持久TCP连接的协议。WebSockets已经出现了一段时间,但是在浏览器中不同程度的支持阻碍了使用,但更重要的是,在Internet服务提供商或企业级别上使用旧的或配置错误的代理,有效地禁用了许多用户的WebSockets。
截至2017年,WebSockets的情况已大大改善,并期待继续增加支持。WebSockets支持可能是IWML的可选功能,但在使用时,它将允许从浏览器到服务器的消息响应时间非常快,并且还允许服务器与浏览器通信,而无需等待浏览器启动通信。
这种类型的低延迟通信通道可实现更高速的事件,例如可用于直接在服务器上处理来自浏览器的实时键盘输入的按键事件。它还可以实现鼠标移动跟踪。这只是两个简单的例子。
这使得IntraWeb可以生成几乎像桌面应用程序一样的应用程序,但没有安全风险,没有安装,也没有远程桌面会话的延迟。使用的带宽非常小,因为与远程桌面会话不同,原始元数据正在被发送而不是一点一点地被删除,并且像远程桌面解决方案必须一样发送图像。
官方网站:https://www.atozed.com/intraweb
欢迎加入Delphi知识局QQ群:32422310