Electron与dotNet的奇妙结合

2021-05-03   


前言

现在做一个应用,B/S架构已经成为了首选。但是也有非常多的场景确确实实需要一个桌面端的应用。我之前看到各类的桌面应用的解决方案,常常会感到,学习成本不低,同时知识的通用性又不高。本文就针对Electron.NET这个解决方案做一个介绍。该解决方案我是偶然在Github上看到的,在国内的资料非常少,在Google上也没有完整的例子,所以很想写一篇文章,抛砖引玉。

技术选型

先前,我其实接触过不少桌面端应用的解决方案。比如跨平台的QT,windows平台上的WinForm/WPF等等。

在前言中,我提到这些解决方案让我不满意的地方在于学习成本不低,对交互效果的优化也并不容易。既然现在前端的生态蓬勃发展,我自己目前也做前端相关的工作,我自然会想到依赖Web前端的生态来解决UI的问题。不难想到,Electron就是一种很合适的方案。

但是Electron也有它的问题。首先Electron更多基于NodeJS,做一个媒体播放器,聊天工具都很合适,但是如果要做大型的应用,应用的后台部分其实不好做。比如我想做一个MES系统,那么最好其实是用WinForm来做。但是这样又丧失了Web前端丰富的画面表现。

这时我接触到了Electron .Net。这种方案完美地解决了两个问题:

  1. UI的表现力可以依赖Node前端生态;
  2. 后端既可以借用NodeJS的生态,又可以使用C#的dotNet丰富的能力。

如何使用

原理

首先需要描述的是ElectronNet的原理。ElectronNet分为两部分,一部分是ElectronNET CLI,即脚手架。另外一部分是dotNet的包。构建一个ElectronNET的项目,是通过构建一个NetCore项目的方式来实现的。所以下文默认本文的读者已经具有NetCore的基本知识。

【爷累了,待会再写】

Q.E.D.


胡思乱想的工程师