C#窗体内嵌Chromium内核浏览器实战 (1)

简介: 本文目录1. 背景2. 调查3. webbrowser的替代方案4. CefSharp介绍5. 准备工作

1. 背景

为一个大型集团客户开发一套系统,为了便于升级维护使用了B/S结构。


BUT,客户要求客户端能读写射频卡、操作打印机打印票据,还好,可以写个C# winform程序通过webbrowser控件内嵌网页,同时也支持JS和C#代码互相调用。操作硬件读写卡、打印的功能交给C#就是了。


BUT,客户电脑竟然还有少量的XP…顿时无语,虽然是XP比例少,奈何人家体量大,咱们也没法要求客户把XP系统都换了。


欲哭无泪啊,要知道XP系统IE版本最高到8,而webbrowser是IE内置的浏览器控件,那也就是说只能使用IE8特性,IE8这种远古巨兽对现在的前端技术支持简直就是渣渣渣。


2. 调查

没办法,客户就是上帝,先看看能不能在IE8框架内解决问题吧。


首先IE8不支持HTML5,头疼,好在通过html5shiv可以实现兼容IE8。


第二,IE8 支持的 CSS3 新特性很少,不到30%。这意味着一些漂亮的前端css部分可能GG了,另外兼容性也是个大问题了,几乎所有页面都得在IE8里面测试下实际效果,而IE8的测试效率简直渣渣渣


第三,心里有中不详的预感,看下vue吧,登录Vue官网,看到下面一条消息,感觉不会再爱了。


Vue 不支持 IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性。但它支持所有兼容 ECMAScript 5 的浏览器。

1

第四,绝望中去查了下react和angular,都已经放弃了对IE8的支持。


OK,我也放弃。


3. webbrowser的替代方案

网上查了查,可以在.net平台使用的浏览器嵌入控件方案有几种


首先是WebKit .net,版本旧的相当可以,查阅了N多博客,踩了N多坑,最后也没在XP上跑起来,就算跑起来了也不敢用,N年前的东西了以后能不能活还不一定。


然后是GeckoFX,这家伙是FireFox的gecko内核机制的,但是网上资料很少,又踩了N多坑,最后跑都没有跑起来,直接GG。


最后找到了CefSharp,好家伙一看有github,最近几天还在更新,顿时心内一定,就是它了。


4. CefSharp介绍

github介绍很精准,地址:CefSharp的GitHub,大体说的是:


CefSharp是可以在.net应用内嵌的Chromium内核控件,支持VB、C#等CLR语言,支持winform、wpf等平台。


通俗的说,就是开发的.net程序可以通过CefSharp内嵌一个网页。


不错不错,那就开始使用吧。


5. 准备工作

首先安装个xp系统测试用,win7、win10上能跑起来绝对说明不了xp下可用。


然后xp系统得安装. net framework4.0,经过我多次失败的验证,好像.net4.0以下使用CefSharp一直报错,搞不懂啊。当然XP系统是可以安装. net framework4.0的,附地址:.net4.0地址


然后还得安装VC++2013运行库,这个是CefSharp运行的基础,忍忍吧,XP能装上就算不错了。提供地址:

vc++2013运行库下载。


然后得有Visual Studio开发.net程序,此处我用的VS2013。


然后下载CefSharp得用NuGet工具,此处提供下载地址:NuGet下载地址。下载后双击安装即可,注意版本。安装后VS2013工具菜单下会多出NuGet包管理器子菜单。


工欲善其事必先利其器,这些准备工作都到位了,就可以开始大干一场了。

相关文章
|
3月前
|
数据采集 JavaScript C#
C#图像爬虫实战:从Walmart网站下载图片
C#图像爬虫实战:从Walmart网站下载图片
|
4月前
|
数据采集 存储 C#
C# 爬虫技术:京东视频内容抓取的实战案例分析
C# 爬虫技术:京东视频内容抓取的实战案例分析
|
20小时前
|
开发框架 搜索推荐 算法
一个包含了 50+ C#/.NET编程技巧实战练习教程
一个包含了 50+ C#/.NET编程技巧实战练习教程
43 17
|
2月前
|
开发框架 NoSQL MongoDB
C#/.NET/.NET Core开发实战教程集合
C#/.NET/.NET Core开发实战教程集合
|
3月前
|
设计模式 C# 开发者
C#设计模式入门实战教程
C#设计模式入门实战教程
|
5月前
|
算法 C#
C#实战 | 求解《九章算术》盈不足之共买物
【7月更文挑战第8天】中国古代数学成就显著,《九章算术》展示了先进的算法,如分数运算和方程解法,领先世界数百年。项目示例通过控制台应用,运用for循环和if条件语句,模拟解决书中盈不足问题,展示了解决数学问题的编程方法。
51 6
C#实战 | 求解《九章算术》盈不足之共买物
|
5月前
|
算法 C#
C#实战 | 求解《丘建算经》百鸡问题
【7月更文挑战第9天】《丘建算经》的百鸡问题是一个经典的不定方程问题,用C#解决时,通过三重嵌套循环穷举公鸡、母鸡和小鸡的组合。代码示例中,外层循环分别对应公鸡和母鸡,而小鸡数量由总钱数和已知鸡种计算得出,避免了额外的内层循环。使用`if`判断确保总数量正确。注意,除法运算可能导致整数截断错误,需使用3.0保证浮点数除法的准确性。这种方法虽然效率较低,但能确保找到所有可行解。
55 1
C#实战 | 求解《丘建算经》百鸡问题
|
4月前
|
数据安全/隐私保护 C# UED
利用 Xamarin 开展企业级移动应用开发:从用户登录到客户管理,全面演示C#与Xamarin.Forms构建跨平台CRM应用的实战技巧与代码示例
【8月更文挑战第31天】利用 Xamarin 进行企业级移动应用开发能显著提升效率并确保高质量和高性能。Xamarin 的跨平台特性使得开发者可以通过单一的 C# 代码库构建 iOS、Android 和 Windows 应用,帮助企业快速推出产品并保持一致的用户体验。本文通过一个简单的 CRM 示例应用演示 Xamarin 的使用方法,并提供了具体的代码示例。该应用包括用户登录、客户列表显示和添加新客户等功能。此外,还介绍了如何增强应用的安全性、数据持久化、性能优化及可扩展性,从而构建出功能全面且体验良好的移动应用。
60 0
|
4月前
|
前端开发 开发者 Apache
揭秘Apache Wicket项目结构:如何打造Web应用的钢铁长城,告别混乱代码!
【8月更文挑战第31天】Apache Wicket凭借其组件化设计深受Java Web开发者青睐。本文详细解析了Wicket项目结构,帮助你构建可维护的大型Web应用。通过示例展示了如何使用Maven管理依赖,并组织页面、组件及业务逻辑,确保代码清晰易懂。Wicket提供的页面继承、组件重用等功能进一步增强了项目的可维护性和扩展性。掌握这些技巧,能够显著提升开发效率,构建更稳定的Web应用。
119 0
|
4月前
|
前端开发 程序员 API
从后端到前端的无缝切换:一名C#程序员如何借助Blazor技术实现全栈开发的梦想——深入解析Blazor框架下的Web应用构建之旅,附带实战代码示例与项目配置技巧揭露
【8月更文挑战第31天】本文通过详细步骤和代码示例,介绍了如何利用 Blazor 构建全栈 Web 应用。从创建新的 Blazor WebAssembly 项目开始,逐步演示了前后端分离的服务架构设计,包括 REST API 的设置及 Blazor 组件的数据展示。通过整合前后端逻辑,C# 开发者能够在统一环境中实现高效且一致的全栈开发。Blazor 的引入不仅简化了 Web 应用开发流程,还为习惯于后端开发的程序员提供了进入前端世界的桥梁。
512 0