Chromely
Chromely
Chromely is a lightweight alternative to Electron.NET, Electron for .NET/.NET Core developers.
Chromely is a .NET/.NET Core HTML5 Chromium desktop framework. It is focused on building apps based on Xilium.CefGlue, CefSharp implementations of embedded Chromium (CEF) without WinForms or WPF. Chromely uses Windows and Linux native GUI API as "thin" chromium hosts. It can be extended to use WinForms or WPF.
With Chromely you can build Single Page Application (SPA) HTML5 desktop apps with or without Node/npm. Building SPA apps using javascript frameworks like Angular, React, Vue or similar is easy. You can use Visual Studio Code or any IDE you are familiar with as long as Chromely knows the entry html file from the compiled/bundled files. For more info please see - Chromely-Apps.
Options of communicating (IPC) with rendering process are via:
- .NET/Javascript integration (CefSharp) - more info @ Expose .NET class to JavaScript.
- Generic Message Routing (Xilium.CefGlue) - more info @ Generic Message Routing.
- Ajax HTTP/XHR (Xilium.CefGlue, CefSharp) - more info @ Custom Scheme Handling.
- Real-time with Websocket (ws) (Xilium.CefGlue) - more info @ Real-time with Websocket.
Roadmap & Help Wanted
If you like Chromely, please give it a star - it helps!
Have a quick question? Wanna chat? Connect on
Have an app/project/tool using Chromely - please share!
Platforms
Cross-platform - Windows, Linux. Built on CefGlue, CefSharp, NET Standard 2.0, .NET Core 2.0, .NET Framework 4.61 and above.
| Platform | CefGlue.Winapi | CefGlue.Gtk | CefSharp.Winapi |
|---|---|---|---|
| Windows(1) 32-bit | net461, netstandard2.0 | net461, netstandard2.0 | net461 |
| Windows(1) 64-bit | net461, netstandard2.0 | --- | --- |
| Linux(2) 32-bit | --- | netstandard2.0 | --- |
| Linux(2) 64-bit | --- | netstandard2.0 | --- |
| MacOSX(3) 64-bit | --- | --- | --- |
| Linux ARM(4) | --- | netstandard2.0 | --- |
(1) Windows 7, Service Pack 1 and newer
(2) Ubuntu 16.04 and newer
(Mono currently not working, window resizing not working)
(3) Work in progress...
(4) i.e. Raspberry Pi 3+
(manual download of CEF builds for ARM available on http://chromely.org/cefbuilds/index.html)
For more info/documentation, please check Chromely wiki.
Demo Code
Get started with the demos.
Creating a Simple App (Using CefGlue with Winapi host)
For more info see - Getting Started
Notes on Upgrade to CefGlue version 70 and CefSharp version 71 (Chromely v4) - Please see.
class Program
{
static int Main(string[] args)
{
var startUrl = "https://google.com"; var config = ChromelyConfiguration
.Create()
.WithHostMode(WindowState.Normal, true)
.WithHostTitle("chromely")
.WithHostIconFile("chromely.ico")
.WithAppArgs(args)
.WithHostBounds(1000, 600)
.WithStartUrl(startUrl); using (var window = ChromelyWindow.Create(config))
{
return window.Run(args);
}
}
}
Run Starter Template (Using dotnet core cli). For more info, please see - dotnet cli demo template install
dotnet new -i "Chromely.CefGlue.Win.Template::*"
dotnet new chromelywin
dotnet restore
dotnet chromelycef.dll download v70 --cpu=x64 --dest="bin\Debug\netcoreapp2.1"
dotnet build
dotnet run
Chromely Demos
For more info on demos - Demos 
References
- WinApi - https://github.com/prasannavl/WinApi
- Cef - https://bitbucket.org/chromiumembedded/cef
- Xilium.CefGlue - https://gitlab.com/xiliumhq/chromiumembedded/cefglue
- CefSharp - https://github.com/cefsharp/CefSharp
- Json Serializer - https://github.com/lbv/litjson
- Caliburn.Light Container - https://github.com/tibel/Caliburn.Light/blob/master/src/Caliburn.Core/IoC/SimpleContainer.cs
Contributing
Contributions are always welcome, via PRs, issues raised, or any other means. To become a dedicated contributor, please contact the Chromely team or raise an issue mentioning your intent.
License
Chromely is MIT licensed. For dependency licenses please see.
Credits
Thanks to JetBrains for the OSS license of Resharper Ultimate.
Improved and optimized using:
Chromely的更多相关文章
- 一系列令人敬畏的.NET核心库,工具,框架和软件
内容 一般 框架,库和工具 API 应用框架 应用模板 身份验证和授权 Blockchain 博特 构建自动化 捆绑和缩小 高速缓存 CMS 代码分析和指标 压缩 编译器,管道工和语言 加密 数据库 ...
- NanUI | NanUI 0.7 正式发布
2020年2月10日 NanUI 0.7版正式发布. 回顾过去的一年,浑浑噩噩.生活上.工作上太多的压力和变数让我身心疲惫,目睹亲人被病痛的摧残的痛苦,无法释怀的生死别离令我沉沦许久:公司业务的变动, ...
- Github上优秀的.NET Core项目
Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:htt ...
- 【转载】Github上优秀的.NET Core项目
Github上优秀的.NET Core项目 Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志. ...
- [Asp.Net Core] Blazor Server Side 扩展用途 - 配合CEF来制作客户端浏览器软件
前言 大家用过微信PC端吧? 这是用浏览器做的. 用过Visual Studio Code吧? 也是用浏览器做的. 听说, 暴雪客户端也包含浏览器核心?? 在客户端启动一个浏览器, 并不是什么难事了. ...
- Github上优秀的.NET Core开源项目的集合
内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:https://github.com/jasonhua95/ ...
随机推荐
- 【React 7/100 】 虚拟DOM和Diff算法
虚拟DOM和Diff算法 React更新视图的思想是:只要state变化就重新渲染视图 特点:思路非常清晰 问题:组件中只有一个DOM元素需要更新时,也得把整个组件的内容重新渲染吗? 不是这样的 理想 ...
- 什么情况下会出现undefined
1.函数定义形参不传值,2.预解释,只声明不定义时输出变量3.对象取属性值,属性值不存在
- Maven 添加其他Maven组件配置问题
在父工程的pom文件里,添加如下配置 <project> <!--其它配置--> <modules> <module>A项目文件夹</module ...
- mysql远程连接只显示部分数据库问题
项目变更了环境,数据库换了环境,所以用navicat连接数据库,结果只能看到部分数据库. 看下高级设置,就只有两个库. 表示很奇怪,难道我的ip被禁止了吗,进入服务器查看连接用户权限 1. 首先查看服 ...
- Floyd Cycle Detection
Floyd判圈算法能在O(n)时间复杂度内判断迭代函数或链表中是否有环,并求出环的长度与起点 判断环存在 通常采用快慢指针的方式来判断环是否存在 从绿色起点G开始,快指针每次走2步,慢指针每次走1步, ...
- aidl 详解
aidl 是 android interface define language 的缩写,主要是作为进程间通讯的一个接口规范,这种通讯是一种普通的 client-server 的模式,对于 clien ...
- qt04 中文显示问题
sockettools识别GB2312,接收qt server 数据时 QByteArray ba = str.toLocal8Bit(); char *ss = ba.data(); obj-> ...
- [编译原理]用BDD方式开发lisp解释器(编译器)|开发语言java|Groovy|Spock
lisp是一门简单又强大的语言,其语法极其简单: (+ 1 2 ) 上面的意思 是:+是方法或函数,1 ,2 是参数,fn=1+2,即对1,2进行相加求值,结果是:3 双括号用来提醒解释器开始和结束. ...
- 高并发-原子性-AtomicInteger
线程不安全: //请求总次数private static int totalCount = 10000;//最大并发数private static int totalCurrency = 100;// ...
- zookeeper之四 Curator客户端的使用
Curator是一个开源的zookeeper客户端,解决了很多zookeeper原生客户端非常底层的细节开发工作,如连接重试.反复注册watcher等. public class CuratorOpe ...