桌面应用_桌面应用开发 - CSDN
  • C# 桌面应用程序

    千次阅读 2017-02-25 22:03:43
    桌面应用程序下面介绍建立 用户界面 的基础知识,说明如何 启动和运行 桌面应用程序。 但并不详细讨论应用程序实际完成的工作。 微软推荐我们使用 WPF 技术来创建桌面应用程序。 我们以后会详细研究桌面应用程序...

    桌面应用程序

    下面介绍建立 用户界面 的基础知识,说明如何 启动和运行 桌面应用程序。
    但并不详细讨论应用程序实际完成的工作。
    微软推荐我们使用 WPF 技术来创建桌面应用程序。
    我们以后会详细研究桌面应用程序,以及 WPF 到底是什么,它到底可以做些什么。

    创建一个简单的 Windows 桌面应用程序。

    菜单 | 文件 | 新建项目(快捷键 Ctrl + Shift + N) 然后选择 WPF 应用程序。

    这里写图片描述

    点击确定后,出现如下界面:

    这里写图片描述

    主界面分为 上部分 和 下部分。
    上部分显示了一个空窗口,称为 MainWindow。
    下部分显示了一些文本,这些文本实际上就是用来生成 上部分 窗口的代码。

    点击左侧的 工具箱 选项卡。
    点开 常用WPF空间。
    双击 Button 即可在窗口中添加一个按钮。

    这里写图片描述

    这里写图片描述

    双击添加到窗口中的按钮。(不排除你双击的位置不对,导致进入了编辑 Button 文字模式)

    这里写图片描述

    双击后,进入 MainWindows.xaml.cs 的 C# 代码文件。
    进行如下修改。

    这里写图片描述

    运行应用程序 (快捷键 F5)
    单击我们添加的按钮,弹出一个消息对话框。

    这里写图片描述

    点击 确定。然后点击 窗口右侧的 X 退出应用程序。(就像我们平时操作桌面软件一样)

    示例说明

    创建一个简单的 桌面应用程序,就是这么简单!
    当然,如果你想写一个具有意义的桌面应用程序,就以后再说了。
    单看这个示例,我们能知道些什么呢?

    当运行应用程序时,点击我们添加的按钮,执行了我们为该按钮编写好的代码。
    Visual Studio(IDE) 帮我们完成了很多工作,让我们没编写什么复杂的代码,就创建了窗口。

    让我们切换到 设计界面,也就是 MainWindow.xaml 文件。

    这里写图片描述

    我们可以发现下方的 XAML 代码。(XAML 是 WPF 应用程序中定义用户界面的语言)
    多了一个 Button。我们可以猜测,这行代码就是实现 上面那个 Button 按钮的代码。

    然后我们点击该按钮,可以看到 右侧的属性窗口 出现了一些新的内容。

    这里写图片描述

    我们修改 属性窗口 中,公共节点中的 Content(内容)里的文字信息。
    改为 点我。

    这里写图片描述

    可以看出,这里是控制 按钮 上显示的文字内容的。
    然后我们还看到里面还有很多可以修改的属性(头有点大 -,-)
    不过用到的时候再说吧!

    从这个示例中,我们还可以知道一点,WPF 应用程序的 设计和功能实现是分离的。
    设计都在 MainWindow.xaml 文件中。
    而我们实现的功能代码(例如前面添加了点击按钮,弹出一个消息框的代码)
    是保存在 MainWindow.xaml.cs 文件中的。
    也就是所谓的 设计和逻辑 的分离。
    这样有一个好处就是,设计人员可以专心设计界面的外观,也就是我们俗称的 UI。
    而程序员就可以安心的实现程序的逻辑和功能。
    两块都可以一起干活,互相不耽误,节省了时间!

    早期的 Windows 桌面应用程序使用的并不是 WPF 技术来创建桌面应用。
    而是 Windows Forms 技术。
    当前来讲,WPF 就是用来替代 Windows Forms 技术的。
    所以我们直接用最新的 WPF 技术就可以了。

    展开全文
  • .net core WinFrom桌面应用程序 初体验

    万次阅读 2019-05-05 15:14:48
    1..net Core 创建WinFrom桌面应用程序 前提是安装好.netCore开发环境,以及最新的.netCore3.0以上 使用命令创建,打开CMD,输入:dotnet new winform -o TestWFCore 上述代码会创建一个名为TestWFCore的新项目。...

    1..net Core 创建WinFrom桌面应用程序

    前提是安装好.netCore开发环境,以及最新的.netCore3.0以上

    使用命令创建,打开CMD,输入:dotnet new winform -o TestWFCore

    上述代码会创建一个名为TestWFCore的新项目。该项目位于c:\ Users(YourAccount)下

    然后把这个项目拷贝出来,放到自己想放的目录下就行,最后使用Visual Studio 2019 打开即可,但是打开如下如图所示:

     

    窗体设计器不可用,但是可以正常生成和运行。继续往下看

    2..net Core窗体可视化设计器

    下面是这个项目的csproj文件内容

    把csproj的内容全部替换为下面代码:

    <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
    
      <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFrameworks>net472;netcoreapp3.0</TargetFrameworks>
        <UseWindowsForms>true</UseWindowsForms>
        <LangVersion>7.3</LangVersion>
        <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
      </PropertyGroup>
      <ItemGroup Condition=" '$(TargetFramework)' == 'net472' ">
        <Reference Include="System" />
        <Reference Include="System.Core" />
        <Reference Include="System.Xml.Linq" />
        <Reference Include="System.Data.DataSetExtensions" />
        <Reference Include="Microsoft.CSharp" />
        <Reference Include="System.Data" />
        <Reference Include="System.Deployment" />
        <Reference Include="System.Drawing" />
        <Reference Include="System.Net.Http" />
        <Reference Include="System.Windows.Forms" />
        <Reference Include="System.Xml" />
      </ItemGroup>
      <ItemGroup Condition=" '$(TargetFramework)' == 'net472' ">
        <!-- add From files to here to enable designer -->
        <Compile Update="Form1.cs">
          <SubType>Form</SubType>
        </Compile>
      </ItemGroup>
    </Project>

    保存csproj文件,然后如vs有提示重新加载,就全部从新加载,要不然就关闭VS重新打开项目,就如下所示:

    这样修改后,项目的属性中目标框架就变为了只读状态

    因为设置了两个目标:

    最终这样在生成项目的时候在debug目下会有两个目录:

    netcoreapp3.0下的文件就是我们需要的可运行的所有文件。

    说明:

    • 这是目前的临时解决方案,官方后续会肯定会在.netCore项目了里面支持可视化窗体设计的,而且创建项目应该也会有相应的模版。
    • 目前使用.net core开发的winform桌面应用程序也只能在windows系统上面运行,至于以后怎么在Mac或者Linux下运行官方暂时还么有进一步发表,但是可以肯定的是以后winform肯定能跨平台的。

    3.移植.net framework桌面应用程序到.net Core

    可以下载:.NET可移植性分析器这个visual studio扩展,用来分析你的.net framework项目是否适合移植到.netCore:

    然后根据官方教程来吧,官方教程比较详细:将 Windows 窗体桌面应用程序移植到 .NET Core
    我这里按个人理解总结一下吧,主要步骤是:

    • 创建一个空目录与需要移植的项目放在同一个目录下
    • 然后在空目录下只需要创建一个.net core的 csporj文件
    • 然后在把以前的项目关联到现在这个csporj文件上,这样以前那个项目的csporj文件可以正常打开设计窗体,从新的.sln文件打开项目(新的csporj文件)就能使用.net core 的特性
    • 最终效果是如果把两个项目同时打开,可以看到两边的代码是一样的,而两个项目使用的框架是不同的,一个是framewrok,一个是.netcore,因为代码文件都是同一个嘛,只是指定了不同的框架,但是移植后新写的.netcore的一些代码特性,原来的项目打开的话会有很多漂红的,不能用的,而且在新项目下面新建的cs文件,会在新项目的目录下(原framewrok项目的文件还是在之它自己的目录下),如下图:

    这样的话只是对窗体的界面的调整设计比较方便。

    移植后的项目是没有窗体的可视化设计界面的,但是我也从移植后的项目中引用了.net core 的一些nuget包,然后成功的运行并从服务器上获取了数据:

    以上所有内容就是现阶段体验的情况,有一些东西也是东查一点资料西找一点,最终综合为自己所用了。

    展开全文
  • 01为什么用 JavaScript 来开发桌面应用?曾经的 JavaScript 脆弱、简陋、甚至有被边缘化的危险,不过 JavaScript 在经过了两次飞跃后(以 V...
        

    01

    为什么用 JavaScript 来开发桌面应用?

    曾经的 JavaScript 脆弱、简陋、甚至有被边缘化的危险,不过 JavaScript 在经过了两次飞跃后(以 V8 为首的 JavaScript 引擎和 Node.js 的问世),不再受人欺负,早已升级为绿博士(复仇者联盟 4 中班纳博士和绿巨人的合体,强大而充满智慧)

    V8 引擎让 JavaScript 的运行速度飞快,Node.js 让 JavaScript 不仅仅能做 Web 前端页面,还能开发后端应用。

    尽管有了 Node.js,JavaScript 可以开发服务端应用,但有一类重要的应用它还是无法胜任——桌面应用。目前 Web 应用和移动应用看似成为主流,但如果没有桌面应用,Web 应用和移动应用甚至都不会存在。

    所有的 Web 浏览器(IE、Chrome、Firefox、Safari 等)都是桌面应用,如果没有桌面应用,Web 页面根本没地方运行;用于开发移动应用的开发工具(IDE)也是桌面应用。

    而且 Windows 的开始菜单和 Mac OS X 的 Docker 中的每一个图标都对应一个桌面应用,可以说,桌面应用无处不在。

    如果将 Web 应用和移动应用比作国王,那么桌面应用就是国王头上的那顶王冠,没有了王冠,国王什么都不是,而赐予 JavaScript 制作王冠之神力的正是 Electron。

    这是一个基于 V8 引擎和 Node.js 的开发框架,允许用 JavaScript 开发跨平台(Windows、Mac OS X 和 Linux)桌面应用。

    640?wx_fmt=png

    02

    有哪些著名应用是使用 Electron 开发的

    目前有相当多的桌面应用是使用 Electron 开发的,例如,著名的 Visual Studio Code(微软推出的一个跨平台源代码编辑器)就是用 Electron 开发的、蚂蚁小程序(在支付宝中运行的小程序)也是用 Electron 来开发的;

    以小米、华为为主的众多手机厂商推出的快应用(类似于微信小程序)的 IDE 也是用 Electron 开发的。

    蚂蚁小程序 IDE:

    640?wx_fmt=png

    此外,大家熟悉的 Slack、Atom、XMind ZEN、WebTorrent、Hyper 等都是基于 Electron 的应用。

    从 Electron 的主要用户来看,很多都是大厂,如蚂蚁金服、小米、华为、GitHub(Electron 就是 GitHub 推出的)、微软等,由于现在 GitHub 被微软收购了,因而目前 Electron 的后台是微软。因此学习 Electron 不用担心以后没市场,毕竟,各大厂都在用 Electron。

    03

    Electron 开发的好处

    用 Electron 来开发有什么好处呢?Electron 本身是基于 Node.js 的,这样就可以利用 Node.js 的现成资源。

    而且 Electron 是跨平台的,可以同时开发 Web 应用和桌面应用,无论是 UI,还是代码(JS),大多数资源都可以共享,这也为开发者大大减少了工作量,甚至企业也无需重复投入人力来开发系统。

    此外,Web 应用在网络环境不好的情况下,页面加载缓慢,它不仅仅要传递数据,而且要传递大量与 UI 相关的代码(如 CSS、HTML 等),非常耗时。

    但桌面应用就不同了,运行时至少 UI 部分不需要从网络上更新,顶多是与服务端交互数据,就算网络不畅通,也可以暂时使用本地的数据。

    就算我们不开发这些“高大上”的产品,只开发相对容易的管理系统,在本地运行仍然会大幅度提升用户体验。

    最重要的一点,Electron 不仅仅支持 Web API,完成与 Web 应用相同的工作,而且还允许调用很多操作系统底层 API 来访问计算机的硬件设备,甚至可以自己用 C++、Go 来编写本地模块,可以完成很多 Web 应用无法做到的事情。

    可能有很多读者以前开发过桌面应用,认为桌面应用也有缺点。比如,桌面应用很难做到实时更新,维护相对于 Web 应用费时费力,不过这个缺点是针对传统桌面应用的,而基于 Electron 的应用没有这个缺点。

    Electron 之所以这么多人用,并不仅仅是因为它基于 Web 技术,而且它还能调用很多本地 API,在实现很多功能时与本地应用非常接近。

    04

    学习 Electron,成为更优秀的开发者

    作为一名开发者,学会开发桌面应用,会非常显著地提升自己的核心竞争力,而且 Electron 开发桌面应用使用的是 Web 技术,可以考虑将 Web 应用与桌面应用作为一个应用来开发,这样会大大提升开发效率。

    前面提到,国外许多著名应用使用 Electron 来开发,包括常用的 Visual Studio Code。目前 ,Electron 在国内也不断升温,例如支付宝小程序 IDE、快应用 IDE 等都是使用 Electron 开发的。

    此外,尽管微信小程序 IDE 不是使用 Electron 开发的,但却是使用了类似的 NW.js 开发的,而 NW.js 的使用方法与 Electron 很像,举一反三即可。

    本课程笔者团队也正在使用 Electron 开发一款跨平台的开发工具 OriUnity,可以使用 JavaScript 同时开发桌面应用、Web 应用、移动 App 和小程序,而且可以将客户端与服务端融为一体。

    在开发产品的过程中,我们也积累了很多 Electron 的实践经验。因此正好借着达人课的机会,将 Electron 的一些开发经验总结出来,希望对想入门 Electron  的读者有一定的借鉴作用。

    640?wx_fmt=jpeg

    Electron 开发入门

    原价:49.00

    限时特价:35.00

    05

    课程结构

    Electron 功能众多,但这些功能基本上可分为基础知识(开发环境安装、开发步骤、IDE 的选择等)、窗口、菜单、高级 API(数据库、托盘、摄像头、拖拽、剪贴板等)以及发布应用程序,本课程将会结合这些知识点详细讲解如何用 Electron 开发桌面应用。

    课程目的是培养大家解决实际问题的能力,每一课的知识点既相互独立、又有联系,比如,在创建托盘时需要用到上下文菜单的知识。

    大多数文章(除了配置开发环境和简介外)都配有完整的实现代码,并且在最后还提供了两个实战案例:基于 Electron 的云笔记和数据库管理系统,把离散的知识点结合起来完成非常复杂的桌面应用项目。

    本课程分为七大部分,共 29 篇(含开篇词)

    第一部分(第 01 ~ 04 课):Electron 基础知识

    这部分主要介绍了用 Electron 开发跨平台桌面应用的原因、桌面应用的优势、Electron 应用的基本开发步骤、如何搭建集成开发环境、用 Git 管理 Electron 应用等内容,这一部分是 Electron 学习的开胃菜,大餐请继续往后看。

    第二部分(第 05 ~ 09 课):用 Electron 创建窗口

    这部分详细介绍了用 Electron 创建各种类型窗口的方式,主要内容包括只针对 Mac OS X 系统的文件展示窗口、打开对话框窗口、保存对话框窗口、显示消息对话框窗口、使用 HTML 5 API 创建子窗口、用 open 方法打开的子窗口交互、在窗口中嵌入 Web 页面等。

    第三部分(第 10 ~ 12 课):创建各种类型菜单

    菜单是桌面应用程序的重要部分,这一部分详细介绍了在 Electron 中如何创建各种类型的菜单,主要内容包括使用模板创建窗口菜单、如何设置菜单项的角色、菜单项的类型、为菜单添加图标、创建动态菜单、上下文菜单。

    第四部分(第 13 ~ 21 课):常用的核心 API

    这一部分是本系列课程的核心内容,讲解了 Electron 中常用的核心 API,主要包括创建托盘应用、拖拽操作、使用摄像头、根据操作系统定制样式、用纯 JavaScript API 操作 SQLite 数据库、用 Node.js 模块操作 SQLite 数据库、访问 MySQL 数据库、使用剪贴板、注册全局键、测试等。

    第五部分(第 22 ~ 23 课):发布应用程序

    由于基于 Electron 的桌面应用需要依赖 Node.js、Electron 以及众多的模块才能运行,这些东西肯定不能让用户自己一个个安装,最好的解决方案就是把这些东西与开发的桌面应用一起打包,然后将一个安装包发放给用户,用户只需要双击安装包就可以搞定,因而学会发布 Electron 桌面应用非常必要。

    因此,这部分内容主要介绍了如何用各种工具发布基于 Electron 的应用,主要包括使用 electron-packager 和 electron-builder 创建安装包及制作安装程序(dmg、exe 等)

    第六部分(第 24 ~ 26 课):项目实战

    这一部分是本系列课程的画龙点睛之笔,需要把前面五部分介绍的知识点连接起来完成复杂的桌面应用,这里提供了两个完整的案例,一个是云笔记系统,该系统可以将本地的笔记保存到服务端,只是这里的服务端是以太坊,而不是传统的数据库;

    第二个项目是基于 Electron 的 MySQL 数据库管理系统,可以做本地管理 MySQL 数据库,而且还可以将数据上传到以太坊进行备份。

    第七部分(第 27 ~ 28 课):模块分析

    这一部分主要介绍了 Node.js 和 Electron 模块的相关知识,包括使用 JavaScript 开发 Node.js 和 Electron 模块以及使用 C++ 开发 Node.js 和 Electron 的本地模块。

    通过这一部分的内容,可以让 C++ 与 Electron 完美融合在一起,让 Electron 拥有无限扩展性。

    640?wx_fmt=jpeg

    课程寄语

    Node.js 和 Electron 堪称 JavaScript 的左右护法,前者让 JavaScript 可以轻而易举地跨越不同类型应用的界限,后者让 JavaScript 可以进入服务端和桌面应用领域。

    有了这两个护法,JavaScript 可以真正成为唯一的全栈开发语言,从 Web 到移动,再到服务端,再到桌面应用,甚至是终端程序,无所不能。

    本课程并不是单纯讲解 Electron 的知识,而是想要教会大家开发 Electron 桌面应用的思想,提高动手能力,今后无论遇到多复杂的桌面应用需求都能得心应手,轻松应对。

    最后,预祝大家学习愉快,Good Luck!

    640?wx_fmt=png

    题图:来自电影《无双》


    展开全文
  • 跨越平台桌面应用开发框架electron使用的心路历程

    万次阅读 多人点赞 2018-06-26 15:57:50
    从接触Electron到真正去做出一个桌面应用,再到今天写下这边文章,大概花了三个月时间吧,到不是因为有多难学,主要是由于这纯碎是个人兴趣,自己是在业余时间干的,公司里面目前还没有推行,这段时间开发任务又比较...

    这里写图片描述


    前言

        首先声明一下这篇文章不谈代码,只谈心。
        从接触Electron到真正去做出一个桌面应用,再到今天写下这边文章,大概花了三个月时间吧,到不是因为有多难,主要是这纯碎是个人兴趣,自己是在业余时间干的,公司里面目前还没有推行,这段时间开发任务又比较重,所以断断续续用了三月吧。今天写下这篇文章只是记录一下这个过程,也是和初学者分享一下。相信大多数人都是知道Electron最初是起源于Atom,然后从Atom剥离开来最终形成了现在的Electron,目前使用Electron來开发的桌面用非常多,我们最熟悉的比如Atom,VScode…,这类IDE,除此之外还有一些开发的辅助工具也借助于electron,比如iview的官方脚手架用来创建vue项目,腾讯的weFlow工具,等等。这些辅助工具将平时的一些命令行操作集成到了图像化界面操作中来,使用起来更加方便简洁。总的来说,electron对于我们前端来说用到的知识没什么特别的,但是做出来的东西感觉挺新鲜的,毕竟一下从做web页面,升华到做桌面应用了,内心还是有点小激动的。

    目录:

    1. 我是什么时候开始接触electron的
    2. 为什么作为一个前端要花时间在Electron这种桌面应用开发框架上去
    3. 为什么越来越对她越来越有感觉了
    4. 为什么一定要做成桌面应用,web网页不是也能干他的活吗
    5. 使用eletron需要储备哪些知识
    6. 学习electron的过程中需要注意什么
    7. electron的弊端

    我是什么时候开始接触electron的

        最先接触的是Weex这一类的垮终端移动APP开发框架,后来开始使用VScode编辑器,才听说Electron有多么的强大,然后跑去Electron的官网一看,首页那句醒目的标题“使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用”瞬间吸引到了我,然后就开始干,从最开始的官方demo到electron-vue再到自己开始做了一个前端开发的辅助工具应用,一步步趟过来,有点喜悦,也有点头疼,虽然已经有类似Atom,VScode这样的产品了,但是发现在开发过程中遇到的问题,度娘上还是找不到几篇真正能解决问题的帖子,最后还是自己去踩,但是比起weex来还是好多了,不是黑weex,主要是他的生态建设太差了,新入门的需要花费大量的时间去学习,并且需要在实际应用中不断去发现问题,然后解决问题,关键是解决问题的过程中很少能获得社区的帮助。言归正传,我们还是回到electron的话题上来。

    为什么作为一个前端要花时间在Electron这种桌面应用开发框架上去

        作为一个web前端开发人员,去弄桌面应用是不是有点不误正业。这个其实不然,首先electron的精华就是”使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用”,这就是赤裸裸的在勾引我们前端开发人员,臣妾就是为你服务的。其次在node出来之后,前端的定位其实开始变得模糊起来了,前端开发人员不再仅仅局限于UI和页面,UE和业务逻辑的实现了,开始越来越多的接触后端的知识,‘大前端’这个名词也开始经常在各种公开场合见到,就连ES也开始和java这对兄弟也开始相认了(越来越像了),所以多接触一点也算是与时俱进吧。
        像Electron这种结合了Node,Chromium,html,css,js的框架,对于有志成为‘大前端’的同学来说,是比较有吸引力的,它是基于node的,对于熟悉node生态圈的人来说,开发起来就更加如鱼得水了。这里可能唯一比较陌生的可能就是Chromium了,我们可以拿面向对象的思想来看待它,electron已经帮我们封装了对于Chromium的操作,so.我们只需要了解electron的API就行了,刚开始接触没有必要去纠结自己对于它有多了解,当到了用electorn开发桌面应用如鱼得水的时候,我们有时间可以去了解一下他。所以这些所谓的陌生并不会成为我们学习和使用electorn 阻碍作为一个程序员,就是要勇于去接触新的东西,这样平时枯燥的编码生活才会多一点点色彩。
        所以,作为前端完全可以大胆去尝试使用electron来开发桌面应用,技多不压身,在将来的某些时候或许可以为你提供一种全新的解决方案。

    为什么越来越对她越来越有感觉了

    1. 他让我摆脱了不同浏览器之间的差异和版本的限制,由于electron是基于Chromium的(Chromium是chrome的开发者版本),他完全遵循W3C的标准,对ES,CSS,BOM,DOM的最新规范都有很好的支持,所以我们在写代码的时候,什么ES6,7,8,DOM0,2,3都大胆的用起来,爽歪歪。
    2. 基于Node,生态成熟,有足够丰富的第三方包来支持我们的开发。没必要自己再绞尽脑汁的去想某个功能的实现,别人写的npm包早已帮我们实现,这就是”拿来主义”的好处。
    3. 可以开发跨平台的桌面应用,就像weex宣传的那样“write once,run everyWhere”,只需要写一份代码,打包出来的应用可以在windows,linux,mac OS上面运行。当然这是最理想的情况,无论是RN,weex还是electron,要做到多端共用,还是需要在代码中做一定的适配的,大概有百分之八十是共用的吧,剩下的百分之二十还是需要兼容一下。

    为什么一定要做成桌面应用,web网页不是也能干他的活吗

        在最开始的时候我也有这样的疑问,用web网页来实现不是更好吗,只要有浏览器就可以访问,而且只要终端上面有浏览器就能访问,这样还省去了应用的安装步骤多好啊。在接触久了之后发现,网页能干的他能干,而且干的更好,web不能干的,他也能干。比如:
    1.他可以摆脱浏览器的沙盒机制,可以访问操作系统层面的东西。我们在网页上面只能借助于后台服务去干这种事,然后通过http告诉前端页面,如果要处理本地文件,还得将文件传到服务器上去,让服务器处理。
    2.更好的用户体验,不管我们是做成B/S的web还是做成客户端的形式,最终的目的其实是在实现功能需求的同时还是最求更好的用户体验,在用户体验上桌面应用无疑更上一层。就像你webApp和原生APP比较,原生无疑还是体验更好。

    既然electron就可以做桌面应用,那是不是就没有C#和C++什么事了

        在electron之前,桌面应用基本上是靠C#和QT来做。那为什么不用他们来做,非得整个electron呢。

    1. 效率,就我个人的使用经验来看,用electron来开发相同需求的桌面应用,使用electron来开发效率明显比其他的要提高很多,而且做出来的桌面效果更佳。
    2. C#的开发者现在基本上在各个公司都是稀有物种了,现在都跑去开发移动端应用去了,PC端的桌面应用感觉没什么油水了,能用web开发的就用web了,这样自然开发的人就少了,开发人员少了如果还用他去开发,这样后期维护起来会比较困难。
    3. 除了C#不是还有QT吗,这个我没有写过,但是我们组老大就是用QT框架来桌面应用的,但是当他看见electron的时候,感慨还是这个写起来方便。
    4. 当然java也有类似Swing之类的桌面UI组件,但是效果比较一般,也能做比较酷的效果但是比较耗时。
      当然这并不是说electron 就可以替代C#和QT,每总技术都有适合他的应用场景,在做之前我们在技术选型的时候,需要充分的考虑他们的利与弊,后面我会说说我在使用electron使用中遇见的弊端。

    使用eletron需要储备哪些知识

    1. 首先需要熟练掌握前端的基础知识html,css,js,为什么要强调熟练,因为作为前端,你连这都没掌握,那我还是建议好好学习一下前端基础知识吧,等基础打牢了再出来浪。
    2. 有一定的node基础,也就是对nodejs有一定了解,知道他是什么,用来干什么的,怎么环境搭建,npm包的使用,我是建议系统的学一下nodejs,看看官方文档,然后Express或者Koa这种web服务框架看看,自己搭建一个web服务玩玩,现在流行大前端,走出去不知道nodejs,所实话有点不好意思。
    3. 在具备了上面两门绝技之后,就可以跟着官方demo,把electron的demo拉下来根据步骤,将代码跑起来,看看electron做的桌面应用到底长什么样子,感受一下。
    4. 在demo跑起来后然后再根据demo的结构看看里面使到的API,这里我不建议一开始就去撸官方的API文档,这样你可能很快就放弃了,一看,呀这么多API那记得住啊,然后就在心里开始打退堂鼓了。一步一步来,用到什么,然后去看什么,这里我后面会将我从搭建环境到最后制作打包出APP的心路历程分享出来,有兴趣的可以留意一下,下个月吧。

    学习electron的过程中需要注意什么

    1. 首先不要急功冒进,一来就要干点什么大事,先按照文档,将demo跑起来,看看怎么搭建开发环境,怎么打包成一个可执行程序,这里打包出来的执行程序可能有点难看,但是不要在意,先将就用着,我会在后面的笔记整理中提到如何打包成我们平时看到那样的安装程序。
    2. 建议现在网上找一些鼻尖简单的demo看看,然要一上来就撸官方API文档,这样太枯燥了,而且好多API你一开始也用不上,看看简单的demo,将基本的API掌握,再去完善其他。
    3. 需要分清楚主进程和渲染进程,分清楚他们的职能,这样我们在写代码的时候才不会混淆,代码的层次结构才能分的领清。
    4. 有node经验的小伙伴不要先入为主将主进程当着nodejs中的服务端了,我开始就这么干的,一看到node就激动了,这样你会遇见很多坑的,而且可能还爬不出来。

    electron的弊端

        前面都是说electron是多么多么方便快捷,现在提一下,我在使用中遇到的弊端

    1. 窗口创建背景的问题,在html没有被加载完成前,窗口只用用背景色去填充,不能使用个性化的背景图案,这会造成首次加载的体验不好。
    2. 打包出来的APP太大,就是最简单的应用打包出来都有40多MB。

    总结
        就一句话,前端现在真是牛逼大了,老本行web就不说了,用nodejs可以搭建后台服务,用RN,weex可以做移动端APP,现在electron连PC桌面端应用也不放过了,现在谁还敢说我们前端就是写写页面,写写样式的。吼!吼!

    展开全文
  • 文章转载于:https://blog.csdn.net/u011583927/article/details/54896961如何创建一个最简单的Windows桌面应用程序 (C++) 最近刚开始学习C/C++开发Windows应用程序,这里将会以零基础的视角把学习过程完全记录下来...
  • 几款简约而且华丽丽的桌面应用

    千次阅读 2012-01-10 14:06:10
    昨天还刚刚在抱怨没有好的桌面应用,后来就发现了一些很不错的东西。 听我一一道来。。。。。 1、Fences  官网:http://www.stardock.com/products/fences/ windows桌面的一个扩展功能,能把图标分类 ...
  • 常用的桌面应用框架

    千次阅读 2019-06-17 14:43:06
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • HTML5桌面应用程序开发

    万次阅读 2019-05-08 10:14:27
    前端时间要写一个桌面软件,比来比去没有满意的,要么不好看,要么不好用,要么打包体积太大。所以就有了这个小项目——easy...创作桌面应用,不需要掌握QT,C++,C#,Java那些繁琐的东西,只要会创建网页就可以。同...
  • 用HTML开发Windows桌面应用程序1

    万次阅读 热门讨论 2015-05-27 10:35:01
    如果要说明这个题目上的问题,就先要说一下,软件开发的种种方式,从最初的命令行软件开发方式,到可视化的窗口软件,开发方式的进步使得开发难度降低,用户体验也越来越完善,不过今天要谈的是windows下的桌面软件...
  • 桌面应用程序与web应用程序

    千次阅读 2017-10-25 10:50:49
    简单而言,在本地有应用程序文件的应用,都是桌面应用,在浏览器中使用的应用都是web应用。 原理上而言: 桌面应用有自己独立的进程与操作系统进行消息通讯,操作系统对事件进行检测,传递给桌面应用进程,桌面...
  • Java桌面应用程序

    万次阅读 多人点赞 2017-04-13 15:27:47
    java桌面应用印象因为桌面程序运行在宿主机器上, 所以比如你运行java桌面程序,必然要安装java虚拟机, 也就是相当于在操作系统上再加一层抽象, 这与直接调用api的桌面程序效率相比,或多或少低一点。 因为...
  • nodejs的桌面应用(electron)

    万次阅读 2017-11-22 23:56:40
    最近发现nodejs可以做桌面应用,主要是之前的同事在搞,我也要稍微研究下不能落后啊,基于nodejs的桌面应用,常用的就是nw.js和electron,nw出的比较早,资料比较多,bug也很多,它的前身是node-webkit文档可以参考...
  • ● 如何编写简单的桌面应用程序   VS 是一个庞大的复杂产品,可能会使初学者望而生畏,但使 用它创建简单的应用程序是非常容易的。在本章开始使用VS 时,不需要了解许多知识,就可以编写C#代码。本书的后面将...
  • 无法卸载creative cloud桌面应用程序

    万次阅读 2016-08-27 13:17:14
    结果必须安装 creative cloud ,后来通过其它方法安装了PhotoShop CC 2015,就想把 creative cloud 卸载了,谁知道在卸载的时候提示:无法卸载creative cloud桌面应用程序,如下图:什么年代了,还有这样的流氓...
  • html 套壳成桌面应用

    千次阅读 2017-12-22 10:36:44
    参考网站用node-webkit把web应用打包成桌面应用node-webkit是一个Chromium和node.js上的结合体,通过它我们可以把建立在chrome浏览器和node.js上的web应用打包成桌面应用,而且还可以跨平台的哦。很显然比起传统的...
  • 采用electron开发桌面应用

    千次阅读 2018-12-26 11:57:15
    什么是electron,能做...2.前端做桌面应用. 前端做桌面应用(electron, nw) 1.electron [link](https://github.com/search?q=electron&amp;amp;ref=opensearch).&amp;lt;br/&amp;gt; 官网地址: [l...
  • WEB应用和桌面应用的区别于优缺点

    万次阅读 2018-02-01 14:31:17
    桌面应用程序:  在台式电脑上运行的应用程序称为桌面应用程序。比如:记事本,Word,Excel。  这种应用程序的特点是  1)缺少共享 2)直接双击就可以运行,不需要IE 3)一般以window的窗口形式存在  Web应用...
  • HTML5封装成桌面应用

    千次阅读 2019-06-11 12:23:18
    HTML5封装成桌面应用1、准备工作:2、封装3、打包 1、准备工作: web项目地址 nw.js下载网址 reshacker(度娘自行下载) Inno Setup(度娘自行下载安装,有中文版) 2、封装 1、解压目录结构如下:2 2、在解压好的根...
  • 当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用户界面)编程,用Python...
  • 桌面应用嵌入H5(Node-Webkit)

    千次阅读 2018-12-26 15:11:04
    可将网页文件嵌入到桌面应用程序中,例如暴雪的星际争霸,腾讯的微信、QQ桌面版,酷我音乐等都采用混合桌面应用。 2、使用方法 (1)下载对应操作系统的Node-Webkit包; (2)编写网页文件及package.json文件...
1 2 3 4 5 ... 20
收藏数 355,060
精华内容 142,024
关键字:

桌面应用