当前位置: 首页 > 软件库 > 开发工具 > >

OpenSumi

本地和云端 IDE 框架
授权协议 MIT
开发语言 TypeScript
所属分类 开发工具
软件类型 开源软件
地区 国产
投 递 者 翁烨霖
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

OpenSumi 框架旨在解决阿里经济体内部 IDE 产品研发的重复建设问题,满足 IDE 在更多垂直场景的定制能力,同时实现 Web 与本地客户端共用底层,让 IDE 研发从早期的“刀耕火种”时代向“机器化大生产”时代迈进。

整体架构

为了保证框架可以同时在 Web  Electron 环境下运行,OpenSumi 采用了一套前后端分离、通过一层抽象的通信层进行相互调用的项目结构。

 Web 上,我们使用 WebSocket 来作为通信的实现。

Electron 上,我们则是 IPC 通信。

每一个通信的连接对应前后端一个独立的 DI (Dependence Inject) 容器,所以 OpenSumi 的后端实现是无状态的,不同连接之间是严格隔离的。

在 OpenSumi 内主要有三个核心进程:

  • 插件进程 (Extension Process)
  • 后端进程 (Node Process)
  • 前端进程 (Browser Process)

为了保证插件的问题不会影响 IDE 的性能表现,插件能力上 OpenSumi 采用了跟 VS Code 类似的方案,通过独立的插件进程去启动插件,插件进程再通过后端进程与前端进程进行通信。

OpenSumi整体架构

OpenSumi 的不同能力实现被拆分到了不同的模块内,这些模块通过 贡献点机制 (Contribution Point)、DI 机制 (Dependence Inject) 互相之间有较弱的依赖关系,对于一些比较核心的基础模块,如主题服务、布局服务等,也会被其他模块直接依赖。

因此,在集成开发过程中需要保证一些模块的引入顺序。

整体启动的生命周期如下图所示:

生命周期

 

  • 11 月 3 日,2022 云栖大会「云计算加速开源创新论坛」上,阿里巴巴云生态开源矩阵重磅发布。阿里集团和蚂蚁集团共建的国内第一款(也是唯一一款)IDE 框架 OpenSumi,在本次论坛发布了新版本。 OpenSumi 是一款由阿里集团及蚂蚁集团共建并开源,面向垂直领域,低门槛、高性能、高定制性的双端(Web 及 Electron)IDE 研发的框架,开发者只要基于我们的起步项目进行简单配置,

 相关资料
  • 应用程序的两个实例都有一个TcpListener,本地端口=8000。 一个应用程序实例(称为“a”)创建一个TcpClient。现在,这个客户机不能有本地端口=8000,或者构造函数抛出套接字异常“通常只允许每个套接字地址(协议/网络地址/端口)的一次使用”。 因此,我创建了带有随机本地端口的第一个客户机,并运行Connect()与另一个应用程序实例“b”连接。 “B”使用TCPListener

  • 在使用JS测试Google云endpointAPI时,它总是返回null。在调查过程中,我在一个新选项卡<code>中打开了API根URLhttp://localhost:8888/_ah/api并引发以下异常: HTTP错误500 访问/_ah/api时出现问题。原因: 由以下原因引起: ResponseRewriterFilter.java:123:字符串索引超出范围: 0在org.mortb

  • 我的Google App Engine应用程序使用旧(v1)版本的Cloud Endpoint,据我在留档中看到的建议迁移到v2 Cloud Endpoint Framework。 该应用程序使用Java标准环境,是Android和iOS客户端的后端。 目前在API的开发过程中,我同时生成Android的客户端库和iOS移动应用程序的发现文档,如文档中所述: https://cloud.googl

  • 主要内容:一、基本框架,二、主要流程,三、源码,四、总结一、基本框架 整体的框架其实和普通的C/S服务器模式的应用程序没有本质的不同,只是MySql更显复杂一些。服务端启动网络服务进行网络监听,用户通过客户端复用网络通信来和服务端进行通信。在服务端要有一些基础的方法解释,这有些类似于编译器对源码的处理,但此处的SQL要简单很多。主要的功能框架如下图:   这幅图和上篇文章的图其实是一样的,只是这里进行了一些细节的表述,更容易理解。 二、主要流程 主要的

  • 问题内容: 我想知道(我的Java应用程序的)播放框架版本与我的应用程序的Java版本之间是否有任何联系? 示例:如果我使用play 2.2.1并在计算机上安装了java8。我可以在代码中使用java8吗? 如果有连接。java8的第一个播放版本是什么? 谢谢你妮芙 问题答案: Play 2.3.x是提及Java 8的第一个版本,请参见此处 今天早晨,我正在与我的一位同事交谈,他发现运行2.1.x

  • 本文向大家介绍ssm框架上传图片保存到本地和数据库示例,包括了ssm框架上传图片保存到本地和数据库示例的使用技巧和注意事项,需要的朋友参考一下 本文介绍了ssm框架上传图片保存到本地和数据库示例,主要使用了Spring+SpringMVC+MyBatis框架,实现了ssm框架上传图片的实例,具体如下: 1、前台部分 2、controller 3、base64 4、mapper.xml 以上就是本文