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/ ...
随机推荐
- Vue的渐进式理解(笔记)
在我看来,渐进式代表的含义是:主张最少. 每个框架都不可避免会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式. 比如说,Angu ...
- python 快速排序实现
# -*- coding: utf-8 -*- def quicksort(array): # 基线条件:为空或只包含一个元素的数组是"有序"的 if len(array) < ...
- .net Core——SqlSugar使用
一.DbContext配置 public class DbContext { public DbContext() { Db = new SqlSugarClient(new ConnectionCo ...
- Asc函数与Chr函数
返回值: Integer 返回字符串中第一个字符的字符代码. 提示: Chr函数可以将一个Ascii码转换为相对应的字符 语法: Asc(string) string,必须参数,字符串 ...
- 2019长安大学ACM校赛网络同步赛 M LCM (数论)
链接:https://ac.nowcoder.com/acm/contest/897/M来源:牛客网 LCM 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65 ...
- python模块与包的详解
一模块 1.什么是模块? 常见场景:一个模块包含python定义和声明的文件,文件名就是模块名字加上.py的后缀 2.为何要是用模块 如果你退出python解释器然后重新进入,那么你之前定义的函数或者 ...
- SpringBoot整合MyBatis-Plus代码自动生成类
在springboot的test测试类下创建 MpGenerator.java 配置 MpGenerator.java public class MpGenerator { @Test publ ...
- nodejs第一天
按下node进入交互模式 ,按两次ctrl + c 退出 或者输.exit退出
- Oracle RAC数据泵导出问题处理
1. 设置导出文件路径 sqlplus / as sysdba SQL> alter session set container=spdb1pdb; SQL> create directo ...
- Day_03-函数和模块的使用
使用函数求阶乘 使用while循环的代码: m = float(input('m = ')) n = float(input('n = ')) mn = m - n fm = 1 while m != ...