第1篇:.NET多种WebKit内核/Blink内核浏览器初步测评报告

本文转自“吾乐吧软件站”,原文链接:http://www.wuleba.com/?p=23590

报告研究时间:2013-10-29——2013-11-04

报告结论意见:Xilium.CefGlue 是最好的.NET WebKit内核浏览器,用它来做二次发开效果是最好的!

感兴趣的,可以加入:WebKit/Blink 内核浏览器开发 QQ交流群:244840771

开发语言为:.NET/C++ 方向

第2篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:导航篇

星级 名称 语言 版本 优点 缺点

★★ Chromium Embedded Framework (CEF) C/C++ 3.1547.1406
1、开源项目,有社区支持 1、C++更新维护成本太高
2、一直都还在更新维护 2、开发难度较大
3、基于CEF二次开发项目多

★★★★ Xilium.CefGlue C# 3.1547.1448
1、基于CEF,DotNET封装 1、参考资料较少
2、继承CEF优良特性 2、可能有些大坑,需要自己解决
3、无需安装多余组件,直接可用 3、已知JS调C#方法,但方法很繁琐
4、CSS3、JS、HTML5 效率高
5、已成功封装类库 Binding’s CLR Object

★★★☆ CefSharp C# 1.25.5
1、基于CEF,DotNET封装 1、要求手动安装VC2012组件
2、继承CEF优良特性 2、此项目是C++与C#混合开发
3、可以实现JS回调C#方法 3、网页加载中关闭,进程不退出
4、CLR OBJ 与 JS 交互非常强 4、CSS3与JS效率比CefGlue略低
5、官方提供的资料比较有用

★ O.N.E C#/VB.NET/DELPHI/C++ 534.x
1、官方提供一定文档资料 1、收费
2、内核、开发语言较全 2、主要是VC资料,C#较少

☆ Node-Webkit C++/JS/HTML5 0.8.0
1、跨平台 1、资料极少
2、用Web技术编写桌面应用 2、学习成本极高,与项目不符

★★ WebKit.NET C# 0.5
1、很多资料都是基于这个开发 1、作者已在2010年停止更新
2、要求手动安装VC2005组件
3、要求安装Apple QuickTime

★★★ Open-Webkit-Sharp C# 3.0.1.0023
1、基于WebKit.NET 0.5开发  1、内核较老,日后可能有问题
2、可以实现JS回调C#方法 2、要求手动安装VC2005组件
3、用法与WebBrowser相似 3、要求安装Apple QuickTime
4、学习成本相对较低,易上手 4、源码编译缺少组件,无法调试
5、只能调用他的DLL进行二次开发
6、低版本内核显示字体有点怪

要点说明:

01、Open-Webkit-Sharp 默认不存在JS对话框,如果需要显示alert box,则需要在ShowJavaScriptAlertPanel进行捕捉,然后显示对话框;
02、Open-Webkit-Sharp 内核较老,所以显示的字体会比较粗(旧版本就是如此),可通过webKitBrowser.Appearance.FontSmoothing缓解,暂时无法根治;
03、以上所有的项目,都必须在X86环境下,才能正常工作,否则运行直接报错;部分项目还需要取消勾选“启动Visual Studio承载进程”;
04、从长远上说,应该选用Xilium.CefGlue,但是这个苦于无法解决“JS调用C#方法”问题,因而被迫选择Open-Webkit-Sharp作为折中方案;
05、在XP环境中,Xilium.CefGlue的JS对话框与默认主题冲突,会错位,换主题可解决;
06、Open-Webkit-Sharp 需要依次安装VC2005、VC2008、VC2010组件之后,才能正常工作,否则会有各种报错;
07、CefSharp 需要安装VC2012 x86 11.0.60610.1组件才能运行,必须是这个版本,其他一律没用;编译代码时需要重新设置“平台工具集”,改成支持XP模式;
08、CefSharp 网页加载过程中(未加载完毕),如果这个时候退出程序,则会导致进程无法退出;此外XP环境下存在较严重的进程不会退出问题;
09、CefSharp 对于CSS3、JS的解析效果不如Xilium.CefGlue,两者相比,会发现CefSharp比较慢、会卡、有细微停顿等问题;
10、Xilium.CefGlue 已经解决“JS调用C#方法”问题,但是需要把JS代码写在程序后台,实现起来非常繁琐,很不灵活;
11、Xilium.CefGlue 已成功封装类库 Binding’s CLR Object,现在只需定义变量名称,然后new class(),就可完成全自动绑定,不再需要后台写JS,非常方便;
12、只要是基于CEF开发的项目,都必须安装NPAPI版本的Adobe Flash组件,否则不能播放动画。Chrome系统默认安装的是PPAPI版本,如果用命令行注册,也可以支持。 

下载地址:2016年4月10日 此项目所有源码,以及文档正式开源 244840771 加QQ群下载

本文采用 CC协议 发布,转载请注明:转载自 吾乐吧软件站

本文链接地址:http://www.wuleba.com/?p=23590

 
 from:http://www.wuleba.com/23590.html

【转】.NET多种WebKit内核/Blink内核浏览器初步测评报告的更多相关文章

  1. 基于Gecko内核的简单浏览器实现

    分享一个基于Gecko内核的简单浏览器实现过程. 项目需要需要开发一个简单浏览器,由于被访问的网页中有大量Apng做的动画,使用IE内核的webbrowser不能播放,使用基于WebKit和Cefsh ...

  2. 如何搞定IE+google双内核的360浏览器表单自动回填兼容问题

    最近开发中碰到一个关于表单问题,在用户提交表单时候浏览器会提示是否保存帐号 如果点击保存,在退出帐号切换其他帐号时,浏览器会自动为表单填充数据,为了解决这个自动填充问题时, 主要分2个思路来解决,一个 ...

  3. js/jQuery判断浏览器名称、内核版本、浏览器壳

    1.js方法 /* 判断浏览器名称和版本 目前只能判断:ie/firefox/chrome/opera/safari 2012年5月16日23:47:08 浏览器内核UA:UA; 浏览器内核名称:NV ...

  4. Linux设备驱动开发详解-Note(5)---Linux 内核及内核编程(1)

    Linux 内核及内核编程(1) 成于坚持,败于止步 Linux 2.6 内核的特点 Linux 2.6 相对于 Linux 2.4 有相当大的改进,主要体现在如下几个方面. 1.新的调度器 2.6 ...

  5. Linux内核之 内核同步

    上文我们介绍过进程调度,Linux内核从2.6版本开始支持内核抢占,所以内核很多代码也需要同步保护. 一.同步介绍 1.临界区与竞争条件 所谓临界区(critical regions)就是访问和操作共 ...

  6. 在阿里云中编译Linux4.5.0内核 - Ubuntu内核编译教程

    实验环境:Ubnuntu 64位(推荐使用14.04)+Xshell 阿里云现在提供的云服务器很好用的,用来编译内核性能也不错.本文介绍最基本的内核编译方法,为了方便,所有操作均在root用户下进行. ...

  7. Linux 内核开发—内核简单介绍

    内核简单介绍 Linux 构成 Linux 为什么被划分为系统空间和内核空间 隔离核心程序和应用程序,实现对核心程序和数据的保护. 什么内核空间,用户空间 内核空间和用户空间是程序执行的两种不同的状态 ...

  8. 1.移植3.4内核-分析内核启动过程,重新分区,烧写jffs2文件系统

    1.在上章-移植uboot里.我们来分析下uboot是如何进入到内核的 首先,uboot启动内核是通过bootcmd命令行实现的,在我们之前移植的bootcmd命令行如下所示: bootcmd=nan ...

  9. Linux 内核开发 - 内核定时器

    时间差的度量 系统的定时器硬件以固定的频率产生时钟中断,产生始终中断的间隔以HZ 常量来决定,通常在50~1200之间,x86默认是1000.HZ能够依据不同的内核来配置. Linux 採用jiffi ...

随机推荐

  1. apk在IIS中的MIME设置

    支持下载的话: 扩展名中填写“.apk”, MIME类型中填写apk的MIME类型“ application/vnd.android.package-archive ”

  2. 作业5-需求分析(EX:南通大学成绩录入系统)

    产品利益相关者: 用户:南通大学各任课老师. 顾客:南通大学(教务处) 工程师:系统的开发,测试,维护,推广人员等 竞争性需求分析: N(需求) A(做法) B(好处) C(竞争) D(推广) 基础性 ...

  3. IDisposable接口

    C#中IDisposable接口的主要用途是释放非托管资源.当不再使用托管对象时,垃圾回收器会自动释放分配给该对象的内存.但无法预测进行垃圾回收的时间.另外,垃圾回收器对窗口句柄或打开的文件和流等非托 ...

  4. 第一个Sprint冲刺第四天

    讨论成员:邵家文.李新.朱浩龙.陈俊金 讨论问题:掌握计时技术的知识 讨论地点:qq网络 进展:即将开始对计时技术代码的编写

  5. 多线程编程3 - NSOperationQueue

    一.简介 一个NSOperation对象可以通过调用start方法来执行任务,默认是同步执行的.也可以将NSOperation添加到一个NSOperationQueue(操作队列)中去执行,而且是异步 ...

  6. PHP 转换snmp的时间格式

    function convert_snmp_timeticks($timeticks) { if(!is_numeric($timeticks)) { return FALSE; } //如果是字符串 ...

  7. js中获取样式的俩种方法 style.color和style['color'] 区别

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. C# 读取文本文档(转)

    1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出. byte[] byData = ...

  9. python中如何判断某个变量是否存在

    方法一:try...except... 方法二: locals().has_key('var') var变量存在返回True, 不存在返回False 方法三:'var' in dir() 同样返回Tr ...

  10. error: failed to initialize alpm library

    这个问题出在archlinux上面 [root@sarch pacman]# pacman -Syuerror: failed to initialize alpm library(database ...