C#桌面开发的未来-WebWindow
WebWindow源码作者博客基于Chromium的Edge体验体验方式一:体验方式二:预期目标:遗留的问题
WebWindow
WebWindow是跨平台的库。 Web Window的当前实验实现可在以下平台上运行:
Windows – 需要基于Chromium的Edge
Linux – 使用WebKit
Mac – 需要Safari
源码
https://github.com/SteveSandersonMS/WebWindow.git
Zeje Fork的分支:https://github.com/zeje/WebWindow.git
作者博客
https://blog.stevensanderson.com
基于Chromium的Edge
因为大众用的还是Windows操作系统(如win 7,win 10)。为了面向大众,我们在Windows 10下体验下WebWindow。现在下载并安装基于Chromium的Edge:
下载地址:https://www.microsoft.com/en-us/edge 下载地址:https://www.microsoft.com/en-us/edge/business/download (建议)
中间可能在升级的时候,要求你更新操作系统才可以安装(安装过程略)
体验
本人的体验环境是:
Window 10
Visual Studio 2019
基于 Chrome的 Edge
体验方式一:
创建一个.net core 3.0的控制台程序
安装WebWindow Nuget包
加入启动代码
using System;
using WebWindows;
namespace ZejeDesk.WebWindowApp
{
class Program
{
static void Main(string[] args)
{
var window = new WebWindow("择捷工作室WebWindow体验");
window.NavigateToString("<h1 style=\"text-align:center;\">择捷工作室!</h1> <div style=\"text-align:center;\">WebWindow体验(该桌面窗口为.NET Core 3.1应用)</div>");
window.WaitForExit();
}
}
}体验效果
体验方式二:
预期目标:
不需要依赖.net core 3.0
仅仅依赖.net framework 4.5便可。
Clone下源码到本地
打开WebWindow.Dev解决方案
捣鼓编译源码的事情
可爱又可恨的WebWindow.Native
可爱:它实现了WebView的调用;
<?XML:NAMESPACE PREFIX = "[default] http://www.w3.org/2000/svg" NS = "http://www.w3.org/2000/svg" /> os=Windows os=Linux os=Mac WebWindowAPP WebWindow 需要基于Chromium的Edge WebKit Safari webapp
* 可恨:对于国情来说,它并不完美;
* 我们需要它对更多的浏览器的支持,特别针对双引擎浏览器
* 对于windows底层方法的调用,并不一定需要原生支持,特别是一些简单的操作,js + http + webapi的方式完全可以胜任。
browser=Edge browser=WebKit browser=搜狗浏览器 browser=QQ浏览器 browser=360浏览器 browser=其他国产双引擎浏览器 browser=Safari WebWindowAPP WebWindow 需要基于Chromium的Edge WebKit Safari WebKit内核 webapp
编译的前提条件:WebWindow.Native
安装C++桌面开发支持
使用x64编译WebWindow.Native
捣鼓这个最麻烦,每个人的环境不一,像我这等C++丢了12年的人(大一学过)来说,报include异常后完全不知道怎么搞(请教了会
C++
的朋友也无果),后来好像是更新了操作系统的补丁,重启后就能正常编译了。把WebWindow改成面向多目标框架的项目
修改WebWindow.csproj文件
<TargetFramework>netstandard2.1</TargetFramework>
为
<TargetFrameworks>net45;net451;net452;net46;net461;net471;netstandard2.1;netcoreapp2.0;netcoreapp3.0</TargetFrameworks>
处理掉部分代码的问题,如:
net45下包
System.Runtime.InteropServices.RuntimeInformation
的引用问题
在
WebWindow.Dev
解决方案中,新增.net framework 4.5控制台应用程序ZejeWebWindowApp
在
ZejeWebWindowApp
中加入WebWindow项目引用加入启动代码
``` csharp
using System;
using WebWindows;
namespace ZejeWebWindowApp
{
class Program
{
static void Main(string[] args)
{
var window = new WebWindow("择捷工作室WebWindow体验");
window.NavigateToString("<h1 style=\"text-align:center;\">择捷工作室!</h1> <div style=\"text-align:center;\">WebWindow体验(该桌面窗口为.NET FrameWork 4.5应用)</div>");
window.WaitForExit();
}
}
}
```
* 修改项目配置
* 体验效果
C#桌面开发的未来-WebWindow的更多相关文章
- C#桌面开发的未来WebWindow
目录 WebWindow 源码 作者博客 基于Chromium的Edge 体验 体验方式一: 体验方式二: 遗留的问题 WebWindow WebWindow是跨平台的库. Web Window的当前 ...
- Web和移动开发的未来
Web和移动开发的未来 当我们与来自整个IT行业的专家交谈时,他们告诉我们技术,PWA和优化的持续整合是关键. 为了收集有关网络和移动开发当前和未来状况的见解,我们与19位IT主管进行了交流,我们问道 ...
- Web 开发的未来:React、Falcor 和 ES6
Web 开发的未来:React.Falcor 和 ES6 Widen是一家数字资产管理解决方案提供商.目前,其技术栈还非常传统,包括服务器端的Java.浏览器端的AngularJS.提供REST AP ...
- 谷歌宣称web组件才是web开发的未来
谷歌宣称web组件才是web开发的未来 虽然今年的谷歌I/O大会没有出现像去年谷歌眼镜发布时直播疯狂跳伞这样的活动,但是上周仍然有不少产品推出.谷歌宣布对谷歌地图.搜索.安卓,以及其他 很多产品做出更 ...
- 2016年末闲谈iOS开发的未来
移动开发市场潮流涌动,好多人都会问iOS开发的前景这样的问题,今天我就瞎扯一下我眼中的未来,纯主观非理性,爱看看. Swift怎么样 Swift很好,就像你的前女友一样好. 得益于swift的开源,以 ...
- 从中间件的历史来看移动App开发的未来
在移动开发领域我们发现一个很奇怪的现象:普通菜鸟新手经过3个月的培训就可以拿到 8K 甚至上万的工作:在北京稍微有点工作经验的 iOS 开发,就要求 2 万一个月的工资.不知道大家是否想过:移动应用开 ...
- ABAP开发人员未来应该学些什么
2007年1月我大学毕业进入SAP Chengdu从事开发工作,到今天已经整整11年了. 这张图在ABAP开发圈子里曾广为流传: 为了避免这种窘境发生在ABAPer身上,我们应该做点什么呢? 2017 ...
- [试玩] FMXLinux (Firemonkey for Linux) Linux 桌面开发(第三方插件)
FMXLinux 是一个可以用来开发 Linux 桌面软件的第三方插件,它需要配合 Delphi 10.2 Toyko 官网:http://www.fmxlinux.com/ 使用方法:开启 FMX ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(8)、关于ArcGIS Android开发的未来(“Quartz”版Beta)
1.前言 今天再一次在官网看到了ArcGIS Runtime SDK for Android下一个版本“Quartz”版的更新资料,它将是一个非常重要的更新,包括API接口的重构和开发思路的调整.具体 ...
随机推荐
- 微软科学家Leslie Lamport荣获2013年图灵奖
Lamport荣获2013年图灵奖" title="微软科学家Leslie Lamport荣获2013年图灵奖"> 编者按:Leslie Lamport,新晋图灵奖 ...
- CF-1111B-Average Superhero Gang Power
首先,对于这题我们要知道要删除一个数使平均值最大一定是删除最小的数,然后我们假设删除操作执行了i次,也就是删除最小的i个数.在已知删除操作次数之后求增加操作的次数就容易了,当然是m - i和k * ( ...
- <SCOI2005>互不侵犯の思路
日常玄学dp #include<cstdio> #include<cstring> #include<iostream> #include<algorithm ...
- MySQL5.7主从复制slave报Last_Errno: 1146错误解决
前提:由于slave磁盘未及时扩容原因导致磁盘即将写满,为了不影响业务将slave实例里一个10G的库drop了(项目前期建的库,数据现在已不使用了),然后又drop了master上的该库(对于大库建 ...
- 常用JS代码片段
1.隐藏部分数字,如手机号码,身份证号码 1 2 3 function (str,start,length,mask_char){ return str.replace(str.substr(star ...
- 差旅日志i·长安&北京(更新于8.21_夜)
大学之时,看到zealer王自如的差旅日志系列欲罢不能,扁平化的管理理念以及轻松的工作氛围,耳目一新的出差体验,抵消了部分不曾走入职场的紧张感甚至是恐惧感.如今初入职场也进入了职业生涯,特记录此次的差 ...
- springmvc两种配置方法
基于配置文件xml方式, 配置springmvc步骤: 1.在pom文件中引入jar包: <!--导入springmvc的jar包--> <dependency> <gr ...
- 程序小白如何快速开发OA办公系统
对于企业开发oa办公系统,成本高,周期长.有些企业花高价购买,购买后受制于软件商,很多功能只能按原来设计需求走,无法升级或者升级慢.这些由于软件商的开发效率低难以及时地响应企业的需求变化,所以就有可能 ...
- Samtec与Neoconix达成合作并和II-VI推出新产品
序言:Samtec近日动作不断, 近日Samtec与Neoconix达成合作并和II-VI推出新产品,以下是详细内容. Samtec与Neoconix签订Neoconix PCBeam 技术授权协议, ...
- snmp服务配置
snmp服务配置 1. 检查是否安装 snmp rpm -qa |grep snmp 如未安装 rpm –ivh 加包名 (net-snmp-utils 为各种工具包) 2.服务开启 service ...