基于CEF,用.net包装过的Xilium.CefGlue/3,基于此框架可以很方便在你的winform等C/S项目中搭建一个内建的浏览器

Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件,支持Windows, Linux, Mac平台。
CEFGlue是此C++写就CEF类库的C# 移植版。基于此类库,我们可以很方便的在我们的winform等C/S项目中嵌入Chrome浏览器。
当我们在项目中引入了CEFGlue类库之后,我们还需要引入CEF类库,因为我们需要通过P/Invoke来调用CEF类库的C++方法。因此如果我们想要在我们的C/S项目中引入浏览器就需要通过引入这两个类库了。

大概就介绍到这里了。一开始,我们部门的经理叫我去维护一个已有的项目,并尝试优化。该项目就是一个单机版的应用,由于客户的需要(客户的仓库比较偏远,连不上网,因此,只能用C/S来做,但是界面winform的界面又丑,如果用wpf,又耗内存,而且部门没有回WPF的,如果使用GDI+以及重绘控件,又麻烦,当时他们赶时间,因此就有了此项目-基于Chrome内核的CB/S项目)。经理叫我去了解下,项目代码都给我了,一开始就是懵逼啊,尽管以前玩过webbrowes控件,但那是基于IE,而且是已经封装好的,引用下就行,不麻烦,这会可以全新的东西,还是没有听过的,于是,就想着自己来试试吧,找资料,然后自己搭个demo,跑起来,这样的话,理解会更深。说干就干,一顿搜狗和百度,找到了一些资料,如下:
基于.net开发chrome核心浏览器【二】
基于QT的webkit与ExtJs开发CB/S结构的企业应用管理系统
Xilium.CefGlue与CEF库的版本匹配关系

有了这些基础,不再对CEF两眼抹黑了,当然我没有去研究内核实现。于是我便开始自己搭建了,哎,说起来都是泪啊,满屏的英文资料,看的眼睛疼,不过还是熬过来了,下面介绍下吧,首先给两个官网链接,分别是CEFGlue和CEF的下载路径:
https://bitbucket.org/xilium/xilium.cefglue/downloads/
http://opensource.spotify.com/cefbuilds/index.html
具体怎么用,请参考:
使用CEF(CEFGLUE)作为您的客户端UI(一)

一定要注意CEFGlue和CEF的版本的对应,要不然会有问题。
其次就是CEF版本的下载了:

我一开始下载的是debug和release,这两个都是只有dll的,没有什么用,后来我下载了Simple版的,就是windows Client的,下载解压后把release下的文件复制到了winform bin下的release就可以了.
注意,一定要对应CEF与CEFGlue的版本,下载CEF要下载Simple的那个(就我而言,我是这么多的,其余版本的你要是也可以运行,也可以下载)

从零开始搭建基于CEFGlue的CB/S的winform项目的更多相关文章

  1. 从零开始搭建口袋妖怪管理系统(4)-借助webpack4.6工程化项目(上)

    "手动是不可能手动的了,这辈子都不可能手动的了." 一.目标 上一章我们借助ngRoute,完成了口袋妖怪SPA系统的多模块导航开发,但是现在引用的东西越来越多,项目文件目录开始变 ...

  2. [IOS]从零开始搭建基于Xcode7的IOS开发环境和免开发者帐号真机调试运行第一个IOS程序HelloWorld

    首先这篇文章比较长,若想了解Xcode7的免开发者帐号真机调试运行IOS程序的话,直接转到第五部分. 转载请注明原文地址:http://www.cnblogs.com/litou/p/4843772. ...

  3. mac下搭建基于vue-cli 3.0的Element UI 项目

    1.安装yarn管理工具(包含node.js); 2.安装全局vue-cli全家桶: yarn global add @vue/cli 3.创建.测试一个vue-cli项目: vue create a ...

  4. 从零开始搭建FAQ引擎--基于ES的字面匹配

    从零开始搭建FAQ引擎--基于ES的字面匹配

  5. 从零开始搭建一个简单的基于webpack的vue开发环境

    原文地址:https://segmentfault.com/a/1190000012789253?utm_source=tag-newest 从零开始搭建一个简单的基于webpack的react开发环 ...

  6. 基于 Hexo 从零开始搭建个人博客(二)

    阅读本篇前,请先配置好相应的环境,请仔细阅读教程 基于 Hexo 从零开始搭建个人博客(一). 原文链接:基于 Hexo 从零开始搭建个人博客(二) 前言 博客搭建过程遇到任何问题,优先在本页面搜索, ...

  7. 基于 Hexo 从零开始搭建个人博客(五)

    阅读本篇前,请先阅读前几篇文章: 基于 Hexo 从零开始搭建个人博客(一) 基于 Hexo 从零开始搭建个人博客(二) 基于 Hexo 从零开始搭建个人博客(三) 基于 Hexo 从零开始搭建个人博 ...

  8. Linux编程之从零开始搭建RPC分布式系统

    我一毕业进公司就接触到了RPC,主要是使用前辈们搭建好的RPC框架以及封装好的RPC函数进行业务开发,虽说使用RPC框架开发已经近半年了,但一直想知道如何从零开始搭建起这么一个好用的分布式通信系统框架 ...

  9. mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)

    文章介绍结构一览 一.使用maven创建web项目 1.新建maven项目 2.修改jre版本 3.修改Project Facts,生成WebContent文件夾 4.将WebContent下的两个文 ...

随机推荐

  1. 【Unity Shaders】ShadowGun系列之一——飞机坠毁的浓烟效果

    写在前面 最近一直在思考下面的学习该怎么进行,当然自己有在一边做项目一边学OpenGL,偶尔翻翻论文之类的.但是,写shader是一个需要实战和动手经验的过程,而模仿是前期学习的必经之路.很多人都会问 ...

  2. C++对象模型的那些事儿之四:拷贝构造函数

    前言 对于一个没有实例化的空类,编译器不会给它默认生成任何函数,当实例化一个空类后,编译器会根据需要生成相应的函数.这类函数包括一下几个: 构造函数 拷贝构造函数 析构函数 赋值运算符 在上一篇博文C ...

  3. (一〇〇)使用AddressBookUI实现通讯录操作

    上节提到使用AddressBook可以实现通讯录数据的获取,但有时需要用户自己选取联系人或者联系人信息,这时候就要借助AddressBookUI框架的ABPeoplePickerNavigationC ...

  4. UNIX/LINUX程序设计教程(1)-- 获取系统信息

          1.主机标识 每一台机器都有一个主机名,主机名由系统管理员指定,在网络中主机名可能是一个网络域名. 函数 gethostname() 和 sethostname() 可以用来获取和设置主机 ...

  5. Fresco图片框架内部实现原理探索

    流行的网络框架 目前流行的网络图片框架: Picasso.Universal Image Loader.Volley的(ImageLoader.NetworkImageView).Glide和Fres ...

  6. 数据库隔离级别(mysql+Spring)与性能分析

     数据库隔离级别与Spring配置事务的联系及性能影响,以下是个人理解,如果有瑕疵请及时指正.   这里以mysql为例,先明确以下几个问题: 一.一般项目如果不自己配置事务的话,一般默认的是au ...

  7. HMM:隐马尔可夫模型HMM

    http://blog.csdn.net/pipisorry/article/details/50722178 隐马尔可夫模型 隐马尔可夫模型(Hidden Markov Model,HMM)是统计模 ...

  8. hive的map类型处理

    https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-CollectionFunc ...

  9. 我眼中的Linux设备树(二 节点)

    二 节点(node)的表示首先说节点的表示方法,除了根节点只用一个斜杠"/"表示外,其他节点的表示形式如"node-name@unit-address".@前边 ...

  10. Libgdx 1.6.0发布,跨平台游戏开发框架

    [1.6.0] -英文原文:http://www.badlogicgames.com/wordpress/?p=3682 -API更改:GlyphLayout xAdvances现在有了额外的开始入口 ...