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/ ...
随机推荐
- python学习笔记(5)
第七章 模式匹配和正则表达式 1.不用正则表达式来查找文本模式 #对于这样的一个文本查找:3个数字,一个短横线,3个数字,4个端横线,然后再是4个数字,如:415-555-4242def isPh ...
- Java第三阶段复习
Java第三阶段复习: 1. Spring 1. IOC: 定义:Inverse Of Controller:反转控制,将bean对象的创建和对象之间的关联关系的维护由原来我们自己创建.自己维护反转给 ...
- Spring基础03——Spring IOC和DI概述
1.什么是IOC与DI IOC(Inversion of Control):其思想是反转资源获取方向,传统的资源查找方式要求组件想容器发起请求查找资源,作为回应,容器适时的返回资源,而应用了IOC之后 ...
- 关于tomcat NoClassDefDoundErr异常的记录
在做DRP项目的时候,copy了drp1.3,粘贴重命名成drp1.4,把drp1.4加入到tomcat中,发现drp1.4中新加的jsp可以正常运行,而从1.3那copy来的不能运行,抛出NoCla ...
- Python(1) 整型与浮动型
整型与浮动型 整数/浮动数=浮点型整数/整数 = 浮点型 例如:>>> type(1/1)<class 'float'>>>> type(1/1.0)& ...
- div中放入一个img元素导致div高度会多出几个像素
在写代码的时候经常遇到这样一个问题,如果div里嵌套一个img元素且div的高度是由img的高度来撑开,那么div的高度总会比img的高度多3px.好了,废话不多说,直接给大家上代码. html代码: ...
- vue中的:is
is string | Object (组件的选项对象) <div id="app"> <span>这是:is的案例</span> <co ...
- TinyMCE不可编辑
1. 通过配置在控件初始化时设置 tinyMCE.init({ readonly : 1 }); 2.tinymce.activeEditor.getBody().setAttribute('cont ...
- LeetCode 1143 最长公共子序列
链接:https://leetcode-cn.com/problems/longest-common-subsequence 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序 ...
- maven整合eclise
-Dmaven.multiModuleProjectDirectory=$M2_HOME