基于.net开发chrome核心浏览器【二】

简介: 一: 上一篇的链接: 基于.net开发chrome核心浏览器【一】 二: 相关资源介绍: chrome Frame:   让IE有一颗chrome的心,看起来不错,但我没有深入研究这个东西。

一:

上一篇的链接:

基于.net开发chrome核心浏览器【一】

二:

相关资源介绍:

chrome Frame:

  让IE有一颗chrome的心,看起来不错,但我没有深入研究这个东西。

http://www.google.com/chromeframe?hl=zh-CN&quickenable=true

https://developers.google.com/chrome/chrome-frame/

WebKit.Net

  已经有一段时间没人更新这个开源项目了,没有研究过

  http://sourceforge.net/projects/webkitdotnet/

CEF

  研究过,很不错的类库,但是是C和C++写的

  https://code.google.com/p/chromiumembedded/

  http://www.cnblogs.com/think/archive/2011/10/06/CEF-Introduce.html(园友谭振林写的相关文章)

Xilium.CefGlue

  基于CEF,用.net包装过,很不错,我就用的这个类库(Xilium.CefGlue/3)

  https://bitbucket.org/xilium/xilium.cefglue/wiki/Home

O.N.E

  国内的人开发的,没研究过,貌似收费的。

http://www.one-lab.net/

node-webkit

  园子里的人开发的,非常不错的点子,node和chromium的结合,赞

  https://github.com/rogerwang/node-webkit/

  http://www.cnblogs.com/zhchbin/

qt

  我在这方面花费了大量的时间和精力,结果是一个坑跟着一个坑,但到现在还是不忍放弃

  http://qt-project.org/downloads

open-webkit-sharp

  园友推荐的,我大概看了一下介绍,感觉很不错的样子!

  https://code.google.com/p/open-webkit-sharp/

另外

这里说到的很多资源都是园友在上一篇文章中提到的。

谢谢你们。

三:

CEF有两个版本,CEF1和CEF3

CEF1是单进程的,实现了更多的特性,内存使用更少,与客户端应用更能完美的结合,使用的是WebKit的API,但是FLASH无法在这个框架中正常播放,不支持html5的音频和视频,只支持NPAPI插件。关于NPAPI插件的相关知识,请参阅这里:http://developer.chrome.com/extensions/npapi.html(好像要FQ)

CEF3是多进程的,使用异步消息的方式来完成主进程和其他进程的通信(其他进程有可能是Webkit,也有可能是V8的解析引擎进程),使用的是chromium官方的内容呈现API,支持NPAPI和PPAPI插件,有一个单独的进程用于调试,相对于CEF1来说,虽然可以播放FLASH等视频,但是还有很多问题没有处理掉,社区里的人认为CEF1更稳定一些,CEF3的issues列表,请参阅这里:https://code.google.com/p/chromiumembedded/issues/list

我们选用的是CEF3和Xilium.CefGlue,Xilium.CefGlue是对CEF项目的.net的包装,它是用P/Invoke的方式来调用CEF类库的,请参见:https://bitbucket.org/xilium/xilium.cefglue/wiki/Home

还有一个CEFSharp的项目,是用C++/CLI的方式来调用CEF类库的,请参见:https://github.com/chillitom/CefSharp

四:

下载最新版的CEF的动态链接库

下载地址为:http://xilium.bitbucket.org/cefglue/

一定要在这个页面来下载!因为只有这个页面给出的动态链接库才是Xilium.CefGlue所支持的

目前看到的是3.1353.1236版本(我没有下载debug版本的)

五:

下载最新的Xilium.CefGlue代码

下载地址:https://bitbucket.org/xilium/xilium.cefglue/overview

右侧点“下载”就可以了

六:

把下载到的两个压缩包都解压缩

把\cef_binary_3.1453.1236_windows_xilium\Release目录里的文件复制出来

粘帖到:\xilium-xilium.cefglue-50e94efc4182\CefGlue.Demo.WinForms\bin\Debug目录下

七:

打开\xilium-xilium.cefglue-50e94efc4182\目录下的解决方案文件

把CefGlue.Demo.WinForms设为启动项目

  注意事项:

  1.

把程序集CefGlue.Demo.GtkSharp卸载掉,

这个程序集是给mono平台用的,你也可以把WPF相关的程序集也卸载掉

  2.

  右键单击CefGlue.Demo.WinForms程序集,点属性,选择调试,

  取消选中“启用visual studio承载进程”,

  因为CEF3是基于多进程的,VS无能力承载,所以只有取消掉这个选项

  3.

  右键单击CefGlue.Demo.WinForms程序集,点属性,选择生成,把目标平台改成X86

  (这一项如果编译不通过再来修改也无碍)

八:

编译并执行,

你就可以看到CefGlue为你写的DEMO了。

你如果嫌这个DEMO里的代码比较复杂

你也可以看看CefGlue.Client这个程序集

这个程序集是个比较简单的DEMO,

你也可以按照上面的步骤让这个DEMO跑起来

九:

上面的DEMO看起来是这个样子的:

在这个DEMO的samples菜单中有几个简单的示例

这给开发者提供方便的,开发者在写自己的程序时,经常会看这几个DEMO

但几个DEMO实在是太少了。

十:

打开cef_binary_3.1453.1236_windows_xilium目录中的工程文件

(这才是CEF项目,前面说的是基于CEF开发的CefGlue项目)

编译并运行

你会看到一个类似这样的界面:

这个DEMO中,主菜单中的test是为开发人员准备的DEMO

明显比CefGlue要多一些!

如果你有一些C和C++功底(不用很高)也能看懂这里的例子

十一:

说实在的,这个项目还是有挺多的坑的,我已经碰到了好几个

跌跌撞撞总算走过来了,我一步一步的把我的经验都分享给园友

请持续关注我的后续文章

 

目录
相关文章
|
23天前
|
开发框架 算法 Java
.NET 开发:实现高效能的秘诀
【7月更文挑战第4天】探索.NET高效开发涉及理解运行时(如GC、JIT)、代码与算法优化及工具利用。关键点包括适应性垃圾回收、异步编程、明智的并发控制;编写高效代码(避免对象创建,选对数据结构和算法);使用性能分析工具,善用高性能框架如ASP.NET Core,并借助云服务和CI/CD流程持续优化。性能优化是持续学习与实践的过程。
27 1
|
23天前
|
JavaScript 前端开发 开发工具
TypeScript的介绍,let age:number = xxx,可以直接看出数据类型,Type由微软开发,可以在任何浏览器和系统中运行,比较适合大型项目,TypeScript的安装
TypeScript的介绍,let age:number = xxx,可以直接看出数据类型,Type由微软开发,可以在任何浏览器和系统中运行,比较适合大型项目,TypeScript的安装
|
3天前
|
开发框架 搜索推荐 前端开发
【.NET全栈】ASP.NET开发Web应用——Web部件技术
【.NET全栈】ASP.NET开发Web应用——Web部件技术
|
23天前
|
人工智能 前端开发 Devops
NET技术在现代开发中的影响力日益增强,本文聚焦其核心价值,如多语言支持、强大的Visual Studio工具、丰富的类库和跨平台能力。
【7月更文挑战第4天】**.NET技术在现代开发中的影响力日益增强,本文聚焦其核心价值,如多语言支持、强大的Visual Studio工具、丰富的类库和跨平台能力。实际应用涵盖企业系统、Web、移动和游戏开发,以及云服务。面对性能挑战、容器化、AI集成及跨平台竞争,.NET持续创新,开发者应关注技术趋势,提升技能,并参与社区,共同推进技术发展。**
18 1
|
23天前
|
机器学习/深度学习 人工智能 开发者
.NET 技术:为开发带来新机遇
【7月更文挑战第4天】**.NET技术开启软件开发新篇章,通过跨平台革命(.NET Core, Xamarin, .NET MAUI)、云服务与微服务(Azure, DevOps, Docker)及AI集成(ML.NET, 认知服务, TensorFlow)为开发者创造新机遇。开源社区的繁荣与性能提升使.NET更具竞争力,推动智能应用的创新与发展。开发者需紧跟潮流,利用这些工具和框架构建高效、创新的解决方案。**
21 1
|
21天前
|
前端开发 JavaScript
vue3【实战】创建项目、创建并提交代码到远程仓库,安装 SASS, 清除浏览器默认样式 reset-css, 清除模板代码,提升开发效率的必要集成
vue3【实战】创建项目、创建并提交代码到远程仓库,安装 SASS, 清除浏览器默认样式 reset-css, 清除模板代码,提升开发效率的必要集成
26 0
|
22天前
|
Web App开发 编解码
软件开发常见流程之兼容性和手机屏页面设计,PC端和移动端常见浏览器,国内的UC都是根据Webkit修改过来的内核,开发重点关注尺寸,常见移动端尺寸汇总,移动端,理想视口根据你设别的样式进行修改
软件开发常见流程之兼容性和手机屏页面设计,PC端和移动端常见浏览器,国内的UC都是根据Webkit修改过来的内核,开发重点关注尺寸,常见移动端尺寸汇总,移动端,理想视口根据你设别的样式进行修改
|
2月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
118 0
|
2月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
47 0
|
2月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
184 5

热门文章

最新文章

相关实验场景

更多