突破禁忌,打造全新的Web应用世界

sunhui 2021-05-14 11:58:46
突破禁忌,打造全新的Web应用世界

互联网浏览器打造了一个丰富多彩的Web世界
毋庸置疑,互联网浏览器催生了一个绚丽多姿的Web世界,从上个世纪九十年代开始至今,浏览器这个专属的概念深刻的影响着我们生活的世界,直到今天,这个领域一直都是巨头们的主场,虽然历经沧桑,我们已经目睹了几代浏览器的纷争,为他们担忧、为他们喝彩……。虽然偶尔也会有巨头之外的团队加入纷争,然而,格局很难改变,纵观今天的互联网,这个领域亦然是寡头的舞台,我们依然是看客……
浏览器技术的成熟,意味着什么?
互联网时代,浏览器技术的成熟,使得越来越多的技术团队面临着强烈的制约,我们只能看着有限的巨头制定相关的规则,事实上,已经开始扼杀创新。因为支撑代码复杂度越来越大,留给其他技术团队的空间似乎越来越小,这种趋势,只能愈演愈烈。
从应用的角度看,浏览器技术的成熟加剧了桌面应用与Web应用之间的分化,使得二者之间的鸿沟变宽了,可以说Web设计的方方面面开始将许多问题流水化,扼杀创新的趋势已经非常明显。
我们需要创新,那么入口在哪里?
是的,任何事物发展的规律都无法摆脱这样的事实:“当瓶颈凸现的时候,预示着新变革的开始”。Web页面似乎发展到尽头了,作为互联网内容的引擎,由于技术的禁锢,似乎阻碍了什么,阻碍了什么呢?
事实上,对于桌面操作系统而言,浏览器依然是一类客户端程序,与其他客户端应用的差异是,浏览器支持一类基于Web DOM的文档,由于这类文档易于制作、易于分发,这些特点恰好迎合了互联网的需要,也正是这一环节,使得浏览器成为桌面应用的另类。
由于桌面应用系统缺乏浏览器内置的机制,使得在互联网时代桌面应用总体上看是力不从心的,特别是组织内容的方面,桌面软件显得相形见绌。
变革从改变浏览器独特的地位开始
桌面软件的发展迫切需要一个与互联网浏览器对等的内容制作体系,如果有,那么互联网世界将会是一个全新的场景。如果我们顺着现有的技术路线,遵循巨头制定的规则,那么,浏览器的位置就会越来越独特,事实上,与桌面软件之间的差别就会变得越来越大,如此,我们就会陷入微软、google等巨人的步调,那么,Web世界我们就会永远是看客,相当长的时间之内,我们只能为他们喝彩、鼓掌。
师夷之技以制夷,这句话的道理非常的明确。当你无法与之竞争的时候,我们需要学习对手的长处,改变策略,只有这样,我们才可能打破禁忌,制造规则。
TheUniverse,一个改变规则的开源项目(https://github.com/TangramDev/OpenUniverse)
如果我们不改变规则,那么我们几乎无法参与竞争。让浏览器失去其专属的地位,是我们给出的具体方案。如果桌面应用系统需要一个基于内容的、与浏览器对等的内容引擎,那么,一个最简明的思路就是,让你的系统直接包容浏览器的全部,如此,浏览器就不再特殊,其专属的地位就会渐渐消失……
我们无意终结浏览器的存在,然而,如果每一款应用本身就是一款浏览器,那么概念上看,浏览器的消失就是一种必然趋势。
从一个新的视角看桌面软件开发
事实上,支撑Web页面的DOM元素本身,也是一组二进制的组件,DIV、CSS等等,都被封装在浏览器核心支持库的内部,标准的Web页面仅仅是定义了有限的描述规则。改变DOM模型应该是桌面软件弥补差距的第一步。当我们深入到浏览器开源代码的内部,我们发现,主流的支撑体系内部包含着“排他”的逻辑,Chromium的渲染引擎,使得主流的二进制组件无法正常的加载,或许这一点是阻止大众团队介入浏览器领域的最直接的壁垒。JavaScript的“沙箱”,也是隔离其他语言代码的另外一层壁垒,如果我们可以改良浏览器的基础构造,使得保留“Sandbox”策略的同时,常规的二进制组件,例如COM、.NET、Win32等组件可以平滑的与DOM渲染共处,那么问题就会完全不一样。TheUniverse的切入点就在这个环节。
我们需要将桌面软件看成一个超级的Web入口,为此,我们需要一个包容标准Web的新型Web页面,我们需要重新看到浏览器窗口,将其包容的内容不限于Web页面,或者说,我们将其他窗口也看作浏览器窗口,那么,桌面软件与浏览器之间的鸿沟也就消失了。为了更好的体验我们这个项目的宗旨,我们建议下载我们的二进制体验包,具体下载地址:Releases · TangramDev/OpenUniverse (github.com)
为此,我们需要改变一些固有的认识,例如,WinForm,我们会将其看作一种特殊的浏览器,这样,Form对象就会完全受控于Web:


(当我们将WinForm对象看作是浏览器窗口的时候,Form对象也可以浏览网页,只不过,看上去与传统的页面不同)

当我们泛化了浏览器窗口这个概念,那么,页面也就不再是传统意义之下的页面,在新的框架之下,浏览器窗口仅仅是一个“对象类型”,不再具有特殊的地位,例如,一个MFC窗口,也可以充当浏览器窗口:

(当浏览器窗口失去了其特殊的地位,那么Web页面的内涵也就随之改变,我们不能简单的认为Web页面本身是渲染在一个矩形的内部)

正如我们如上图片显示的那样,DOM元素的外延扩大了,那些过去意义下的窗口,现在是一种DOM元素,扩大了DOM的外延,那么所有的一切都将被Web页面描述,这样新的Web模型就得以建立。如下图所示:

(一个多文档界面,这里体现的是一个WinForm MDI结构,当用Web重新定义的时候,可以支持任意多个子窗体类型,不依赖于开发阶段,只依赖于页面描述)

当桌面软件开发与Web开发一体化的时候
事实上,数学发展曾经经历过“初等函数”的黄金时期,而数学理论得以爆发的阶段恰好是人们意识到初等函数的局限,还有绝对数量的函数用初等函数无法表达,这个阶段才开启了数学发展黄金时代。突破标准Web的禁忌,是弥合桌面软件与Web应用的开始,会不会迎来桌面软件的黄金时代,我们觉得是一个富有挑战的话题。
我们认为,桌面软件的Web化,是一个必然的趋势,TheUniverse这个项目,应该是“抛砖引玉”性质的尝试,希望会对外界团队有一个启发,与开发者共勉。

...全文
985 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
引用
XForms 是 W3C 标准 XForms 在 2003 年 10 月成为 W3C 标准。
恩,一个很古老年代的IBM的实验品,都是w3c标准了,不过后来受众不高,最后不见了。(也就我这种老古董还记得曾经有个这玩意了
回复
到不算新的东西,只看支持程度。 比如很古老的年代的IBM 的XForm就是例子。基本上我当做一个结构化文档驱动的UI引擎看把(当然如果泛化成这样,那么Qt的Qxml,wpf的xaml,安卓的xml布局,其实都算这种思路下的产物),如果以我个人来看 使用结构化文档驱动的UI引擎可以搞,不过我更看重交互部分,他不能光展示啊。我们还得需要不同Ui的交互控制
回复
sunhui 05-14
当然不是给Web套个壳子,给Web套个壳子的做法,将全部的内容都现在在一个矩形控件之内了,我们这个框架与CEF、Electron等有本质的区别
回复
不是早就有,给web套个壳子
回复
晨易夕 05-14
你这。。混合开发?
回复
发动态
发帖子
.NET技术前瞻
创建于2007-09-28

1.3w+

社区成员

.NET技术 .NET技术前瞻
申请成为版主
社区公告
暂无公告