从零开始搭建基于CEFGlue的CB/S的winform项目
基于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项目的更多相关文章
- 从零开始搭建口袋妖怪管理系统(4)-借助webpack4.6工程化项目(上)
"手动是不可能手动的了,这辈子都不可能手动的了." 一.目标 上一章我们借助ngRoute,完成了口袋妖怪SPA系统的多模块导航开发,但是现在引用的东西越来越多,项目文件目录开始变 ...
- [IOS]从零开始搭建基于Xcode7的IOS开发环境和免开发者帐号真机调试运行第一个IOS程序HelloWorld
首先这篇文章比较长,若想了解Xcode7的免开发者帐号真机调试运行IOS程序的话,直接转到第五部分. 转载请注明原文地址:http://www.cnblogs.com/litou/p/4843772. ...
- 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 ...
- 从零开始搭建FAQ引擎--基于ES的字面匹配
从零开始搭建FAQ引擎--基于ES的字面匹配
- 从零开始搭建一个简单的基于webpack的vue开发环境
原文地址:https://segmentfault.com/a/1190000012789253?utm_source=tag-newest 从零开始搭建一个简单的基于webpack的react开发环 ...
- 基于 Hexo 从零开始搭建个人博客(二)
阅读本篇前,请先配置好相应的环境,请仔细阅读教程 基于 Hexo 从零开始搭建个人博客(一). 原文链接:基于 Hexo 从零开始搭建个人博客(二) 前言 博客搭建过程遇到任何问题,优先在本页面搜索, ...
- 基于 Hexo 从零开始搭建个人博客(五)
阅读本篇前,请先阅读前几篇文章: 基于 Hexo 从零开始搭建个人博客(一) 基于 Hexo 从零开始搭建个人博客(二) 基于 Hexo 从零开始搭建个人博客(三) 基于 Hexo 从零开始搭建个人博 ...
- Linux编程之从零开始搭建RPC分布式系统
我一毕业进公司就接触到了RPC,主要是使用前辈们搭建好的RPC框架以及封装好的RPC函数进行业务开发,虽说使用RPC框架开发已经近半年了,但一直想知道如何从零开始搭建起这么一个好用的分布式通信系统框架 ...
- mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)
文章介绍结构一览 一.使用maven创建web项目 1.新建maven项目 2.修改jre版本 3.修改Project Facts,生成WebContent文件夾 4.将WebContent下的两个文 ...
随机推荐
- (Android自定义View)来来来,一起再撸一个Material风格loadingView。
本文同步自博主的个人博客wing的地方酒馆 很久很久以前,撸了一款loadingview(点击这里回顾),当时觉得还不错,现在看看觉得好丑啊!!! 于是想再撸一个,无意间在这里看到一个很不错的效果,于 ...
- 【移动开发】一张图搞定Activity和Fragment的生命周期
- Cocos2D实现RPG队伍菜单任意调整角色顺序的效果
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 前一篇我们实现了队伍实现拖尾效果,但是在实际游戏中我们往往需要 ...
- android插件化之路
概论 插件式开发通俗的讲就是把一个很大的app分成n多个比较小的app,其中有一个app是主app.基本上可以理解为让一个apk不安装也可以被运行.只不过这个运行是有很多限制的运行,所以才叫插件. ...
- Ext JS 6开发实例(二) :使用CMD创建应用程序
由于Ext JS 6将原来的Ext JS和Sencha Touch合并为一个框架,因而在使用CMD来创建应用程序前,需要考虑清楚你是要创建一个通用应用程序,还是仅仅只是针对桌面或移动设备的应用程序. ...
- 15个易遗忘的java知识点
1.java中的基本数据类型以及所占内存大小 (1)整形 byte 1字节 short 2字节 int 4字节 long 8字节 (2)浮点型 float 4字节 double 8字节 ...
- 就这么 来ADO.net类操作数据库
使用ADO.net操作数据库其实也是很简单,而且使用频率蛮高的一种方式.话不多说,上代码才更容易理解. 首先,先要引入数据库操作相关的命名空间,这样才能使用下面的代码 //数据库连接引用的命名空间 u ...
- qualcomm memory dump 抓取方法
Memory dump是系统出现crash时常用的分析故障原因的方法,qualcomm 各子系统运行时,为方便debug,都会开辟ram log和debug variable用于保存各系统运行信息及健 ...
- ubuntu14下mysql忘记密码的处理
ubuntu14下mysql忘记密码的处理 ubuntu14.04忘记了mysql的用户(root)的密码.接下来: 1) 停止mysql服务 $ sudo stop mysql 2) 启动mysql ...
- Django练习——博客系统小试
在上一篇博客Todolist的基础上(http://blog.csdn.net/hcx25909/article/details/24251427),本周继续进行实践,这次我要搭建一个简单的博客系统. ...