欢迎大家来到IT世界,在知识的湖畔探索吧!
在这篇文章中,开发人员描述了创建开源Web操作系统和语言的过程,以及它的用途。
也许你想知道什么是“网络操作系统”?为了解释这一点,我们必须看看传统操作系统的主要功能。操作系统的主要任务是提供统一的访问底层硬件的方法,目的是简化应用程序的创建。因此,操作系统中的“内核”成为开发人员可以使用的API,以透明地访问机器的底层硬件。这通常被称为“HAL”, 意味着“硬件抽象层”。
一个操作系统还包含其他功能 – 但主要目标是简化 为最终应用程序开发人员创建应用程序, 从应用程序开发角度抽象出“无聊的东西”,并使其更易于使用。
考虑到上述情况,“网络操作系统”可以说已经被定义,其定义如下:“Web操作系统的主要目标是让创建WEB应用程序变得更容易。” 因此,Web操作系统和Web应用程序框架之间的界限可以说变得模糊了,并且这两者通常可以(几乎)用作彼此的同义词。
我创建了一个Web操作系统。它的名字是Phosphorus Five,它是开源的。实际上,它包含在一个简单的开放源代码ZIP文件中,允许您在不到5分钟的时间内运行它,例如Visual Studio或Mono Develop。这是因为,可以说,它只是一堆库,结合到一个运行在ASP.NET或Mono之上的框架中。因此,不要让“操作系统”这个词吓倒你。您可以看到一段1分钟长的视频,演示下面的一些功能。
Phosphorus Five的主要设计目标如下:
-
使它至少 比创建网络应用程序要容易10倍。
-
允许动态安装和卸载应用程序和模块,而不会干扰其正常操作。
-
将安全设置为“商品” ,以便系统“默认安全” ,从尽可能多的安全问题中卸载开发人员。
为了更容易地创建Web应用程序,我必须解决开发人员在创建丰富的Web应用程序时遇到的所有常见问题。这些问题包括Ajax窗口小部件和控件,例如Tab View,树视图控件,通过Ajax请求上传文件等等,等等。这些Phosphorus Five的部分封装在一个名为“Micro”的模块中。 Micro也是一个CSS框架,它允许开发人员响应地创建自己的Web应用程序,以便它们可以在所有设备上工作。为了实现这种可定制化,我还必须在CSS框架的核心中提供“钩子”,使最终开发人员能够创建自己的“主题”或“皮肤”。 所以Micro可以说是Phosphorus Five Gnome或者KDE对Linux来说是什么。或者,如果您是Windows用户,则可以将Micro与Windows的“公共控件”或DOS上的“Windows部件”进行比较。
另外,主GUI模块 – “桌面”模块还提供了许多帮助功能,例如允许用户使用GUI帮助程序组件登录和注销。它还提供了帮助函数来安装和卸载模块和应用程序以及其他类型的服务。身份验证和授权也由底层系统简单地“照顾”,遵循关于密码的所有最佳实践以及其他安全问题。
我还必须确保 ,通过在自己的(下一个)应用程序和/或模块中利用自己的组件和模块并使其变得简单,“增量式”工作变得简单,并逐渐构建越来越复杂的构造。利用第三方模块和应用程序,就像在C#中使用“库程序集”一样。这恰好与我们上述目标列表中的第二点重合。
我不得不做的第二件事,听起来可能稍微有点不直观,就是创建我自己的编程语言。就我所知,目前没有编程语言,它允许动态地执行代码,在这样的程度上,模块的安装和卸载可以通过简单地将文件x复制到服务器来完成,而不会干扰你的服务器正常运行。我创建的编程语言叫做“Hyperlambda” ,它是Phosphorus Five的核心。
Hyperlambda必须非常容易学习,因为我意识到让开发人员学习一种新的编程语言,就像要求BMW车主切换到沃尔沃一样。Hyperlambda因此不含OO构建体,并且本质上是100%功能的。因此它的名字,意味着“Hyper” (网络)和“Lambda”(函数对象)。Hyperlambda也只包含四个简单的控制结构或语法元素,所以它很大程度上是自我描述 – 至少对于任何曾经见过例如YAML或JSON的人来说。
Hyperlambda是C#之上的一个简单抽象,这得益于一个称为Active Events的巧妙设计模式,它允许您轻松地在C#中调用“钩子”。所以,实际上,语言实际上更多是一种文件格式,描述了一个关系型“节点”结构,允许您声明一个节点,作为这种活动事件的参数。在C#中创建自己的活动事件,并将它们用作自己的“语言扩展” ,就像使用ActiveEvent属性声明您的方法一样简单。Hyperlambda的语法与YAML或JSON非常相似。以下是如何创建模态窗口的示例。这声明了一个“lambda对象”, 或者一个“ 您可以使用Phosphorus Five 的核心“eval”函数进行评估。
/*
* Creates a modal window.
*/
create-widgets
micro.widgets.modal:my-modal
widgets
h3
innerValue:This is a header
p
innerValue:This is a paragraph
div
class:right
widgets
button
innerValue:Close
onclick
// Closes modal window.
delete-widget:my-modal
事实上,任何有经验的Web开发人员都可能已经很容易理解上述Hyperlambda中的“节点”与它最终产生的HTML / DOM 之间的关系。以下是上述Hyperlambda如何通过例如“Hypereval”运行的截图。 Hypereval是来自Phosphorus Five的预装模块之一,它允许您在“立即”模式下评估Hyperlambda 。
然后,我所要做的就是证明它是有效的,除了为开发者提供工具链外,他们还可以利用这些工具链来实际消费磷五。以下是我最初选择关注的应用程序和模块的列表。
-
Hyper IDE – 基于Web的IDE或“集成开发环境”, 支持100种以上的编程语言。
-
Camphora Five – 一款CRUD应用程序生成器,允许您在几秒钟内创建CRUD应用程序,方法是只需在数据库模式中声明所需的列,然后让底层框架自动“生成” 您的应用程序。
-
Hypereval – Hyperlambda “终端”, 允许您在“立即” 模式下评估Hyperlambda,除了管理您的服务器外,这对于学习Hyperlambda都很有用。Hypereval还支持在您的MySQL数据库中存储Hyperlambda片段,这进一步增加了整个系统的组件化。
-
魔术菜单 – 支持语音识别和语音合成的全球导航栏模块,用于导航菜单项,并支持字面上的“数百万” 菜单项。
-
Peeples – 认证和授权模块,允许您创建和维护您的用户及其系统权限。
以下是系统的屏幕截图,安装了所有5个模块。
下面是Hyper IDE的屏幕截图,我正在编辑一个CSS文件,带有AutoComplete和整个体验。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/11224.html