【问题标题】:Architecture of VS CodeVS 代码的架构
【发布时间】:2020-09-26 04:21:55
【问题描述】:

是否有关于构建 VS Code 的文章或演示文稿 - 架构、插件方法、与操作系统特定内容通信的任何能力等?

从 .NET 开始,我们有仅限 Windows 的应用程序,但希望跨平台。第一个想法是将内容迁移到 .NET Core,尽管我不确定这对于使用 Windows 特定资源的应用程序有多么困难。无论如何,我们也在研究其他选项,包括从头开始编写一些东西的可能性。 VS Code 被认为是跨平台和可扩展的。我所知道的是 Electron 用于 UI,您几乎可以为任何部分编写插件,并且它是开源的(或者至少 Codium 是开源的)。

因此,我想了解更多关于架构、组件使用的其他语言以及原因、面临的问题等方面的信息。我希望找到一些文章和演示文稿,或者相关人员的讨论。但除了一些基本信息,我最终找到了如何使用 VS Code 创建解决方案。

那么你知道一些好的链接吗?也许不是专门针对 VS Code 而是类似的架构解决方案?

谢谢

【问题讨论】:

    标签: visual-studio-code architecture electron cross-platform


    【解决方案1】:

    VSCode 是“简单”的基于 Electron 的编辑器/IDE/Dev 平台。如果你想构建一个通用的跨平台应用程序,也许你应该开始研究 Electron(或 NW.js)而不是 VSCode。

    一切都是 JavaScript(或 TypeScript)、Node.JS 进程和嵌入式 Chromium 浏览器,用于渲染“网页”以构建应用程序。通常,渲染进程和主进程并行运行,交换消息以进行通信。真正的 UI 部分实际上是你想要的任何东西,比如 React、Angular 或一些普通的 HTML+CSS+JavaScript。

    本质上 - 您正在交付一个带有预加载网页和捆绑 Node.JS 后端的浏览器作为您的应用程序。您的应用程序架构的主要部分将与任何使用 HTML5 的基于浏览器的应用程序相同。像使用本地存储、会话存储等。

    Electron 文档https://www.electronjs.org/docs/tutorial/application-architecture 中描述了一些基本的高级架构。

    Electron 内部架构概览:https://www.youtube.com/watch?v=oTDjyMTZU1s

    由于您可能已经拥有大量 C# 代码和库 - 以及 C# 编码器 - 您可能希望重用它们,因此还有一个 .NET 版本的 Electron https://github.com/ElectronNET/Electron.NET 。例如,如果您想在 Blazor 中制作 UI。尽管如此,该架构与您已经完成一个 Web 应用程序几乎相同。您只需将浏览器和后端捆绑在一起即可。

    【讨论】:

    • 所以是 Node.js 处理调试?我没有这方面的经验,现在只需阅读您提供的链接,它可以处理预编译的本机代码,这对我们来说可能是一个好方法。扩展 API 在您设计时非常强大,对吧?有没有这种风格的插件架构文章你会推荐?
    猜你喜欢
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多