.NET桌面程序集成Web网页开发的十种解决方案

时间: 2022-07-31 08:04:24 浏览次数:245

B/S架构的Web程序几乎占据了应用软件的绝大多数市场,但是C/S架构的WinForm、WPF客户端程序依然具有很实用的价值,如设计类软件 AutoCAD与Autodesk Revit、WPS、IT类的集成开发环境(数据库、图形处理软件)、PC端的小工具等等,充分利用了客户端电脑的资源综合计算能力,处理性能更加优秀。如果想在C/S架构的客户端程序中集成Web应用,也只能借助Web网页,然后将网页集成到客户端程序中,这样就间接的达到了目的。下面是客户端审图系统中集成Web网页的实际应用案例

WinForm程序中集成网页的基本原理就是通过一个包含类似浏览器功能的控件,将Web网页载入并解析渲染出来。

介绍 WinForm、WPF 集成 Web 网页的多种技术方案之前,先了解一下浏览器的内核。

浏览器最重要或者说核心的部分是Rendering Engine,可大概译为渲染引擎,不过我们一般习惯将之称为浏览器内核。负责对网页语法的解释(如标准通用标记语言下的一个应用HTML、JavaScript)并渲染(显示)网页。 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。

内核分类

Trident(MSHTML、IE内核)

内核被包含在全世界最高的使用率的操作系统中,即为Windows操作系统,所以我们又经常把它称之为IE内核。

Trident内核的常见浏览器有:

IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0)、IE11360安全浏览器(1.0-5.0为Trident,6.0为Trident+Webkit,7.0为Trident+Blink)360极速浏览器(7.5之前为Trident+Webkit,7.5为Trident+Blink)百度浏览器(早期版本)世界之窗浏览器(最初为IE内核,2013年采用Chrome+IE内核)UC浏览器(Webkit内核+Trident内核)其他等

其中部分浏览器的新版本是双核甚至是多核,其中一个内核是Trident,然后再增加一个其他内核。国内的厂商一般把其他内核叫做高速浏览模式,而Trident则是兼容浏览模式,用户可以来回切换。

Gecko(Firefox内核)

Gecko内核常见的浏览器:Mozilla Firefox、Mozilla SeaMonkey、waterfox(Firefox的64位开源版)、Iceweasel、Epiphany(早期版本)、Flock(早期版本)、K-Meleon。

Webkit(Safari内核,Chrome内核原型,开源)

参考网站:https://liulanmi.com/labs/core.html

Blink

Blink是一个由Google和Opera Software开发的浏览器排版引擎,Google计划将这个渲染引擎作为Chromium计划的一部分,并且在2013年4月的时候公布了这一消息。这一渲染引擎是开源引擎WebKit中WebCore组件的一个分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex浏览器中使用。

浏览器内核检测

ie.icoa.cnhttp://mybrowse.osfipin.com

控件1:WebBrowser

微软WinForm开发框架中老牌控件。

默认基于IE7内核,对H5网页加载支持不完善。只支持单线程模式,大部分对其操作必须在创建它的线程中执行,不可以在其它线程中调用其方法或属性。性能相对较弱。

控件4:CefSharp

CefSharp中文帮助文档,请点击查看免费、开源:https://github.com/cefsharp/CefSharp支持JS、C、WinForm窗体之间相互通讯与调用。兼容性较好,支持H5、CSS5、WebGL等。支持获取Cookies较全面。通过NeGet安装SDK时,运行时环境会被自动下载到当前项目的bin\debug 或者 bin\Release目录下。导致整个项目非常大,大约110M左右。以独立进程方式运行,消耗内存较多。当控件Dock属性设置为 Fill,客户端电脑的缩放与布局不是100%时,窗体呈现黑边(严重bug),并没有完全填充父容器。

实际项目应用效果如下图(缩放比例为100%):

呈现的模型是三维BIM模型,里面用到了HTML5、CSS3、WebGL等新技术。

控件5:Miniblink

Miniblink是一个追求极致小巧的浏览器内核项目,全世界第三大流行的浏览器内核控件。其基于chromium最新版内核,去除了chromium所有多余的部件,只保留最基本的排版引擎blink。Miniblink保持了10M左右的极简大小,是所有同类产品最小的体积,同时支持windows xp、npapi。

开源地址:https://github.com/weolar/miniblink49/releases

控件6:GeckoFX

GeckoFX是skybound工作室开发的一个开源的用于方便将gecko引擎(最主要的浏览器是firefox)链接到.net 窗体应用的一个组件。它是用C写成的,里面有大量的C的注释,geckofx是最完美的默认的iE核心webbrowse控件的替代控件。

控件7:DotNetBrowser

DotNetBrowser能嵌入一个基于Chromium的WPF或WinForms组件到你的.NET应用中,用来显示使用HTML5、CSS3、JavaScript、Silverlight等技术构建的现代网页。

收费

控件8:EO.WebBrowser

官网:https://www.essentialobjects.com/Products/WebBrowser/Default.aspx收费

控件9:Sciter.Forms

Sciter.Forms是基于Sciter桌面引擎的.NET类库,支持.net framework4.x、.NET CORE、.NET5及更高版本,支持Windows及Linux桌面系统。

Sciter为桌面UI开发带来了一系列web技术。网页设计师和开发人员可以在创建外观现代的桌面应用程序时重用他们的经验和专业技能。Sciter允许使用经过时间验证、健壮且灵活的HTML和CSS来定义GUI,并使用GPU加速渲染。Sciter引擎是一个单一的、紧凑的DLL,大小为5+Mb。使用它的应用程序比使用Electron或Qt构建的应用程序小10倍以上。

官网:https://sciter.com/

开源地址:https://gitlab.com/c-smile/sciter-js-sdk

控件10:aardio

官网:https://www.aardio.com

aardio专注于桌面软件开发,17年一直保持非常活跃地更新,aardio 被多年用于生产项目实践,久经测试和锤炼。

aardio 小、轻、快,轻便利索,体积仅 6.5MB,学习和使用成本极低。aardio 虽然小,但提供了惊人数量的开源标准库、扩展库 - 这些库基本都是由纯 aardio 代码实现,涉及到了桌面编程的方方面面。

最高法原法官王林清一审获刑14年

让青春之花在不懈奋斗中绚丽绽放

上海高考将延期一个月举行

全面落实取消县城落户限制政策

  非常感谢您读完蓝港网络的这篇文章:".NET桌面程序集成Web网页开发的十种解决方案",仅为提供更多信息供用户参考使用或为学习交流的方便。我们公司提供:网站建设、网站制作、官网建设、SEO优化、小程序制作等服务,欢迎联系我们提供您的需求。

标签:

Copyright © 常州蓝港网络科技有限公司 苏ICP备2022017479号-1