1.    源起

a)     定制.Net浏览器

本人是一名C#开发者,而作为C#开发者,做客户端应用中最头痛的一件事就是没有一个好的UI解决方案, WinFrom嘛,效率虽然还不错,但是做一些特殊的效果,完全应付不来,比如透明控件。比FPS太低有时候界面闪动得厉害。而WPF呢,内用内存又太高,效率有时候跟不上,而且还可能会出现内存泄露!出于以上的原因,博主一直在寻找一个好的UI解决方案,最终选定CEF。(至于CEF是什么我就不解释了,可以百度!),在C#中CEF的一个开源项目,名称叫做CEFGLUE。

b)     加快葬送IE6浏览器的进程

    世界上使用IE6浏览器最多的地方在中国,中国使用IE6浏览器最多的地方在企业中,让他们自己去装个chorme太难了,索性开发个浏览器(其实是浏览器的外壳,并且我们可以做的一个十分绚丽便捷的外壳)给他们,一劳永逸的解决浏览器兼容问题,各种浏览器的CSS hack问题再也不用担心了,甚至公司里前端的职位也可以减少几个了。

c)     更方便的使用更强大的HTML5

    写HTML5的样式,需要考虑各种的浏览器独有的东西,比如:-webkit-transform;-moz-transform;-ms-transform;-o-transform;现在我们只有一个浏览器,根本就不用考虑这些。使用chorme核心能支持更多的HTML5特性。

d)     更快的JS执行引擎V8

    谷歌浏览器JS执行引擎是目前公认的最快的JS执行引擎(没有之一),   执行ExtJs之类的界面库速度非常快(ExtJs也是企业应用中常用的界面脚本库)

e)     WebKit核心

    目前最快的浏览器核心,目前使用面最广的浏览器核心(谷歌浏览器、苹果浏览器都用这个核心),对开发人员最友好的浏览器核心(社区支持很给力)

f)     基本上无版权之忧

    用到的所有技术都是开源的(在天朝基于什么开源协议就不要深究了)

g)     调试JS更方便

    采用谷歌浏览器的调试工具,跟firebug调试JS的方式相似

2.    把CEF配置并正确运行起来

a)     下载Cefglue框架。点我进入官网

点击Source Code,然后进入另一个页面,点击Download

然后再跳到另一个页面,找到最新的版本,点击ZIP下载

b)     接下来就要下载CEF了,在下载CEF之前,我们需要知道该版本的CEFGLUE支持哪个版本的CEF。 我们可以在Commet,提交的信息中看到作者更新到了哪一个版本。

C)下载CEF内核。点我进入官网下载

点击More Versions就可以看到更多版本

d)     把CEFGLUE项目源码解压出来,并用VS打开,打开后,发现有10个项目,有一部分并不是必须的,为了更简单明了,卸载(也可以直接移除)掉一些不必要的项目,只留下如下图的三个,并把CefGlue.Samples.WpfOsr设为启动项目。然后把项目全部改为X86的方式编译,然后.NET版本改为4.0,然后如果CEFGLUE中的项目属性--调试下面的启用Visualstudio承载进程的勾如果是勾上的,请去掉。然后把下载好的CEF内核解压,把Release下面的东西全部复制到CefGlue.Samples.WpfOsr项目的bin/Debug低下。

e)     DEMO就正常运行起来了。。。如下图,是一个浏览器

3.    UI改造

WpfCefBrowser 控件封装了好多浏览器常用的功能函数,比如前进后退等,还支持用C#调用JS函数等好多功能,然后我们就可以根据UI设计师设计的界面进行改造界面了。函数封装截图

本文章根据原作者Xdoudou编纂,原文地址:

http://www.cnblogs.com/xdoudou/p/3748143.html

基于Chrome内核(WebKit.net)定制开发DoNet浏览器的更多相关文章

  1. 基于Chrome内核(WebKit内核)定制开发DoNet浏览器

    1.    源起 a)     定制.Net浏览器 本人是一名C#开发者,而作为C#开发者,做客户端应用中最头痛的一件事就是没有一个好的UI解决方案, WinFrom嘛,效率虽然还不错,但是做一些特殊 ...

  2. Winform调用WebKitBrowser,基于chrome内核WebKit的浏览器控件

    在C#中,默认的WebBrowser控件默认使用的是IE的core,而IE的种种遭人吐槽的诟病使我不敢轻易使用WebBrowser,因此,打算使用Chrome的内核替换IE.Chrome的内核使用的是 ...

  3. python selenium中如何测试360等基于chrome内核的浏览器

    转自:https://blog.csdn.net/five3/article/details/50013159 直接上代码,注意是基于chrome内核的浏览器,基于ie的请替换其中的chrome方法为 ...

  4. 基于chrome内核的.NET开发资源

    chrome Frame: 让IE有一颗chrome的心,看起来不错,但我没有深入研究这个东西. http://www.google.com/chromeframe?hl=zh-CN&quic ...

  5. 在 .NET 中开发基于 Chrome 内核的浏览器-创建一个简单浏览器

    首先在 http://www.cftea.com/tools/downloads/Cef.zip 下载文件包. 一.将文件解压拖入到 Visual Studio 对应的 WinForm 项目中. 二. ...

  6. 基于QT的webkit与ExtJs开发CB/S结构的企业应用管理系统

      一:源起       1.何为CB/S的应用程序       C/S结构的应用程序,是客户端/服务端形式的应用程序,这种应用程序要在客户电脑上安装一个程序,客户使用这个程序与服务端通信,完成一定的 ...

  7. 基于chrome内核的UXSS

    url with a leading NULL byte can bypass cross origin protection. https://code.google.com/p/chromium/ ...

  8. java-cef嵌入基于Chrome内核浏览器,做页面爬虫(可以尽在ajax异步请求数据)

    1 CentOS 7.0 上安装和配置 VNC 服务器 2.1 2.1.1 首先,我们需要一个可用的桌面环境(X-Window),如果没有的话要先安装一个. 注意:以下命令必须以 root 权限运行. ...

  9. 基于MFC的ActiveX控件开发教程------------浏览器插件之ActiveX开发

    浏览器插件之ActiveX开发(一) 一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题.在有特殊需求(如涉及数据安全的金融业务 ...

随机推荐

  1. java 访问mysql 实例

    前提条件: 1.安装eclipse,mysql.java jdk 2.安装mysql connect J  (我安装的版本是mysql connect J 5.1.39) 3.配置java环境变量 4 ...

  2. thinkphp 动态 级联

    <div class="form-item"> <label class="item-label">一级分类<span class ...

  3. 所有HTTP请求参数及报文查看SERVLET

    HttpRequestServlet.java 说明: 用于接受所有http形式的请求,并把接受到的request中param及getInputStream全打印出来. package king.se ...

  4. C#实现JSON序列化与反序列化

    1.使用 JavaScriptSerializer类实现序列化 namespace: System.Web.Script.Serialization eg: // 序列化 private string ...

  5. c#窗体虚线图形验证码设计

    /************************窗体验证码背景图形设计及核心代码**********/ using System;using System.Collections.Generic;u ...

  6. RedHat 6.7 Enterprise x64环境下使用RHCS部署Oracle 11g R2双机双实例HA

     环境 软硬件环境 硬件环境: 浪潮英信服务器NF570M3两台,华为OceanStor 18500存储一台,以太网交换机两台,光纤交换机两台. 软件环境: 操作系统:Redhat Enterpris ...

  7. Brainstorm-the walkthrough example: Image Classification

    (1) 运行create data,其中包括下载cifar10,并转换为hdf5格式(详见百度百科:http://baike.baidu.com/view/771949.htm#4_2): cifar ...

  8. A*寻路算法(JavaScript实现)

    参考资料:http://www.cnblogs.com/zhoug2020/p/3468167.html               http://www.cnblogs.com/lipan/arch ...

  9. 使用guava进行对字符串的加锁

    java的synchronized关键字是堆某对象加锁,但是我们当需要对某个字符串加锁怎么办 比如对同一个订单只能有一个操作,但是对其他订单的操作不影响 使用 guava包下的 Interner 类 ...

  10. 初学 react | redux

    react | redux 一.安装 React Redux 依赖 React 0.14或更新版本 npm install --sava react-redux 你需要使用 npm 作为包管理工具,配 ...