入门干货之Electron的.NET实现-Electron.NET

时间:2022-10-22 18:04:39

0x01、Electron.NET

  1、介绍

    Electron是由Github上的一支团队和一群活跃贡献者维护。用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。 Electron通过将Chromium和Node.Js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的。官方地址:https://electronjs.org。Chromium是谷歌浏览器的引擎,Node.js,就是.......还用我说吗?

    Electron.Net是对这项技术的C#实现,棒棒的。( .NET Core版本)

  2、吐槽

    也是两个月没更了,有灰,某些Bug在修复中,刚入门的时候特纠结,现在整理出来了,让老铁门少些烦恼。

  3、搭建流程(以下流程是对电脑上没有nodejs痕迹的人来讲,如果你用过nodejs,你还看这步干啥,该干啥干啥去)

    a、Electron.NET是基于Electron和Node.js的,因此在你开撸之前需要做点准备工作。

    b、安装Node.js 去https://nodejs.org/en/下载

    c、打开node.js命令行注册一个配置文件,敲命令:npm config set registry xxx (xxx随便写, 你就写xxx也行, 野路子, 但没毛病)

    d、上面那个命令运行完会生成一个.npmrc文件。找到它(c:\User\Administrator\.npmrc),我找不到就用everything搜索。

    e、编辑你找到的文件,换一些源,阿里的快,清空所有内容并写入:

      registry=https://registry.npm.taobao.org
      sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
      phantomjs_cdnurl=http://npm.taobao.org/mirrors/phantomjs
      ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/

    f、继续敲命令 npm install -g electron

    g、继续敲命令npm install electron-packager --global

    h、分别敲node -v和electron -v,看看装没装上

    i、如图:

      入门干货之Electron的.NET实现-Electron.NET

    j、不是很懂Node.js的配置,除了这个环境需要,其它我也不用它。

  4、开发

    a、打开你的vs,下载ElectronNET.API这个包包。

    b、Program.cs里加上.UseElectron(args)。

          WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseElectron(args)
.Build();

    c、在Startup.cs里,Configure方法中,在app.UseMvc()下面加:

        var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions
{
Width = ,
Height = ,
Show = true,
Center=true,
Transparent=true
},$"http://localhost:{ BridgeSettings.WebPort }/1.html");
browserWindow.OnReadyToShow += () => browserWindow.Show();
browserWindow.SetTitle("Electron.NET API Demos");

      我解释一下 $"http://localhost:{ BridgeSettings.WebPort }/1.html"  ,这个URL参数就是你APP一打开的时候显示的页面。

      BridgeSettings.WebPort就是获取你这个mvc绑定在本地的端口,但是跟你配置文件的端口可不一样啊。

      比如我的配置文件中指定mvc端口为50000,但是生成的时候端口可能却是8000.

      这时候程序上下文所指定的路径为:\你的项目\obj\Host\node_modules\.bin

    d、写你的逻辑,就像写网站一样,全部写完,也测试完了,开始改配置文件:

      

<ItemGroup>
<DotNetCliToolReference Include="ElectronNET.CLI" Version="*" />
</ItemGroup>

      DotNetCliToolReference节点改成上面的样子,因为要用到它的tool.

    e、在你的程序包管理控制台中找到你项目路径,刚开始是在外面的,你得cd一下啊,啥样算进去?就是dir能看到你的program.cs就行了。

    f、 然后此时,运行dotnet electronize init,  它给你生成一个electron.manifest.json文件。

    g、 然后继续dotnet electronize start, 可能会报错,没关系,只要控制台橘黄色方框不灭(运行中)那你就继续等,走两步,没病走两步...

      入门干货之Electron的.NET实现-Electron.NET

      别的电脑没这么报错,我家里的电脑就咔咔的冒红,我鸟都不鸟,demo照样像红太阳一样冉冉升起!

    h、效果

      入门干货之Electron的.NET实现-Electron.NET

      这个是之前写的一个动态下雨的页面,水珠子好像被我改得不像了- -,另外文字不居中,实在抱歉- - 因为当时只会css3不太会css.......

      有人觉得不应该拿ElectronNET跟WPF比,XAML万岁。嗯呐,万岁,对。见仁见智,老衲涂个清静。

    g、资源

      更多例子在:https://github.com/ElectronNET/electron.net-api-demos 这个是各种各种C#例子代码,如果窗口不显示Show=false改成true试试。

      那里面的例子是C#以及js对照的,js的明显没官网的全, 就算你看完例子也不一定能找到上面代码中的一些代码,因为我翻了点源码。毕竟是初版,啥都慢慢来吧。

      今儿的例子我传到:https://github.com/NMSLanX/ElectronNET.Demo

0x02、广告

    入门干货之Electron的.NET实现-Electron.NET入门干货之Electron的.NET实现-Electron.NET

0x03、结尾

    入门干货之Electron的.NET实现-Electron.NET

    上了岁数了,时间和精力明显不够了,自顶而下的学习方法也成为了习惯。

    很多类库的文档以及demo对于开发人员来说就是天书,我从来不怪身边人说:"我看不懂,太难了,我不会。"

    我从不侮辱他们的智商,如果有人不懂,那一定是作者以及团队的事,项目文档不够全面,demo的功能覆盖率低,同时也是生态中每个人的失职!

       降低学习成本是每个.NET传教士义务与责任。

    建立生态,保护生态,见者有份。

入门干货之Electron的.NET实现-Electron.NET的更多相关文章

  1. Vite ❤ Electron——基于Vite搭建Electron&plus;Vue3的开发环境【一】

    背景 目前社区两大Vue+Electron的脚手架:electron-vue和vue-cli-plugin-electron-builder, 都有这样那样的问题,且都还不支持Vue3,然而Vue3已 ...

  2. Electron实战:创建ELectron开发的window应用安装包

    前言:研究electron自动更新的时候,在electron的官方文档auto-updater 中,提到了在几个平台mac,Linux,windows下electron 的自动更新方法,其中winds ...

  3. 入门干货之用DVG打造你的项目主页-Docfx、Vs、Github

    由于这三项技术涉及到的要点以及内容较多,希望大家有空能自己挖掘一下更多更深的用法. 0x01.介绍 VS,即VS2017以及以上版本,宇宙最好的IDE,集成了宇宙最有前景的平台,前阶段也支持了宇宙最好 ...

  4. 入门干货之Grpc的&period;Net实现-MagicOnion

    此文章简单残暴,学习成本较低,你可以跟着我一起撸代码,一起吐槽,一起砸键盘.以下操作均为 core2.0 环境. 0x01.Grpc 1.介绍  Google主导开发的RPC框架,使用HTTP/2协议 ...

  5. Swoole引擎原理的快速入门干货

    更多内容,欢迎关注微信公众号:全菜工程师小辉~ 过去一年使用PHP和Java两种技术栈完成了一个游戏服务器项目.由于项目中有高频的网络请求,所以PHP技术栈尝试使用Swoole引擎(基于事件的高性能异 ...

  6. Vue入门干货,以及遇到的坑

    一.安装环境及Vue脚手架搭建 参考文档:https://www.jianshu.com/p/1626b8643676 二.开发文档 官方文档:https://cn.vuejs.org/v2/guid ...

  7. 初探Electron,从入门到实践

    本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者.   在开始之前,我想您一定会有这样的困惑:标题里的Electron ...

  8. 【Electron】Electron开发入门

    Electron简介: Electron提供了丰富的本地(操作系统)的API,使你能够使用纯JavaScript来创建桌面应用程序,并且跨平台(win,mac,linux等各种PC端平台).与其它各种 ...

  9. Electron入门应用打包exe(windows)

    最近在学习nodejs,得知Electron是通过将Chromium和Node.js合并到同一个运行时环境中,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一门技术.对于之前一直从 ...

随机推荐

  1. 如何应用Font Awesome矢量字体图标

    Font Awesome 是一套专门为 Twitter Boostrap 设计的图标字体库.这套图标字体集几乎囊括了网页中可能用到的所有图标,除了包括 Twitter Boostrap 的默认图标外, ...

  2. springmvc使用spring自带日期类型验证

    控制器 @Controller public class MyController { // 处理器方法 @RequestMapping(value = "/first.do") ...

  3. 用Java实现约瑟夫环

    约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重 ...

  4. mySQL笔记2

    php主要实现B/S .net IIS java TomCat LAMP: Linux 系统 A阿帕奇服务器 Mysql数据库 Php语言(KE) mysql:c常用代码 create table c ...

  5. Ext&period;Ajax中scope的作用

    在Ext的前台Js中使用Ajax请求,如果想让回调函数中的this作用域跟当前的类一样如何实现呢?Ajax提供了一个参数scope. 详细代码如下: layout : { type : 'accord ...

  6. Java基础知识强化21:Java中length、length&lpar;&rpar;、size&lpar;&rpar;区别

    1.java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.2.java中的length()方法是针对字符串String说的,如果想看这个 ...

  7. java web应用程序目录

    WEB-INF是用来存储服务端配置文件信息和在服务端运行的类文件的,它下面的东西不允许客户端直接访问的.

  8. 【C&plus;&plus;】链表回环检测

    //链表回环检测问题 #include<iostream> #include<cstdlib> using namespace std; ; struct node { int ...

  9. (ZT)算法杂货铺——分类算法之贝叶斯网络&lpar;Bayesian networks&rpar;

    https://www.cnblogs.com/leoo2sk/archive/2010/09/18/bayes-network.html 2.1.摘要 在上一篇文章中我们讨论了朴素贝叶斯分类.朴素贝 ...

  10. Unity3d通用工具类之NGUI图集分解

    ---恢复内容开始--- Unity3d通用工具类之NGUI图集分解 由于最近需要一些美术资源吗,但是无奈自己不会制作UI,所以就打算去网上的项目中直接找几张可以使用的贴图资源. 但是发现这些资源已经 ...