NanUI是一个基于ChromiumFX开源项目的.Net Winform界面库,ChromiumFX是Chromium Embedded Framework的.Net实现。众所周知,Chromium Embedded Framework (CEF)是由 Marshall Greenblatt 在2008年创办的开源项目,致力于基于Google Chromium项目开发一个Web控件。可以将Chrome浏览器的功能(页面渲染,JS 执行)嵌入到其他应用程序的框架。CEF 作为嵌入式浏览器框架最适合的应用场景应该是Html页面渲染,所以很多程序都基于CEF来为应用程序提供 HTML 页面渲染的功能,如有道笔记,微信Windows客户端,网易云音乐,Evernote,GitHub Window Client,Q+,Adobe Brackets 等。

在此之前CEF应用大多使用C++来进行开发,对于.Net项目和.Net程序原来说只能是望梅止渴。基于ChromiumFX项目的诞生,.Net项目终于能够与CEF来一次亲密接触,但ChromiumFX项目主要注重于浏览器核心的实现,对Winform界面开发并无太大作用。在此背景下,NanUI孕育而生。

NanUI打破了传统的Winform界面设计方式,通过NanUI你能够使用Html5、CSS3和javascript来构建你的Winform界面。如果你熟悉诸如bootstrap、jQuery、WinJS等各类CSS或JS库的话,你能够根据喜好或客户要求设计出各种漂亮的Winform界面。所以,使用NanUI,你的Winform软件界面将有无限可能。

项目开源协议:MIT

项目地址:https://github.com/NetDimension/NanUI/

0.4.4 更新内容

  • 重写了无边框窗口和窗体阴影的逻辑,剔除了使用DWM来实现满屏窗口的逻辑。现在整个界面都采用重绘NonclientArea的方式来实现。那也就是说,Win7系统环境下偶尔有出现界面绘制出错的情况将不会发生。
  • 删除了CEF框架自动下载和安装的功能,现在需要自行下载CEF运行文件。您需要将对应的x86/x64文件夹以及Resources文件夹放置于与项目exe文件同级的fx文件夹内。
  • 根据之前群友提供的方案,现在默认的嵌入式资源文件默认的Scheme不再采用 embbed,而默认采用 http。
  • 修正了文件加载时,如果内嵌资源在文件夹里,且该文件夹名称含有“-”而不能正确加载的问题。
  • 修改和删除了部分API,但是主要的API没有修改,因此升级0.4.4后之前的项目需要做小幅度的更改。
  • 移除了离屏渲染相关的API和例子,效率实在太差,并没有实际意义。
  • 移除了MarkDown编辑器的例子,因此MarkDown编辑器例子和CodeEditor例子略显重复。
  • 重要: 0.4.4将是支持CEF3.2526.5的最后一个版本,下个版本将直接步进到CEF3.3071.2与ChromiumFX实现同步。那也意味着,此版本NanUI将是最后一个支持Windows XP的版本。0.4.4将来作为单独分支持续修正BUG。

抱歉,距上次更新太长时间,主要原因是工作太忙没时间跟进项目进度。

但是,我有话说:本身作为开源软件的NanUI,并没有达到它作为开源软件应有的待遇:寥寥无几的Issue提交,更别说pull request。可能我国开源环境就这样?

另外,伸手党太多,只想要结果,一言不合就开喷。一个开源项目的发展需要大家的支持,况且就我个人而言维护这个项目既没收线,也没有金主在背后支持,纯属个人爱好持续维护和更新,我还得每年自己掏钱冲会员就为了开个千人群方便大家交流,那请问喷我的人你有什么资格喷我?

然后,我从来没有说过我会对使用这个组件造成的任何后果负责,不会用是个人的事情,我没有义务和责任对每个人都进行培训,文档已经写在那儿,看不懂和不看有本质区别,那请问文档都不看的朋友一加好友就来:“怎么用不了啊?”,“怎么跑不起来啊?”,“怎么编译不通过啊?”,我怎么回答你?真是哭笑不得。

最后,毕竟我自己还有我的工作和生活,维护项目只能用业余时间,所以使用开源项目请抱有良好的和开放的心态。

NanUI 0.4.4发布的更多相关文章

  1. Redis 3.0正式版发布,正式支持Redis集群

    Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...

  2. RDIFramework.NET平台代码生成器V3.0版本全新发布-更新于20160518(提供下载)

    最新版本请转到:RDIFramework.NET平台代码生成器V3.1版本全新发布-更新于2016-10-08(提供下载) RDIFramework.NET代码生成器V3.0版本修改了针对3.0版本的 ...

  3. Bootstrap v4.0.0-alpha.5 发布,大量更新

    Bootstrap v4.0.0-alpha.5 发布了,Bootstrap是快速开发Web应用程序的前端工具包.它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的 ...

  4. Ionic 2.0.0-rc.1 发布,HTML5 移动应用框架

    Ionic 2.0.0-rc.1 发布了,Ionic Framework 是个高级的 HTML5 移动端应用框架,是个很漂亮的使用 HTML5 开发混合移动应用前端框架.本次更新内容如下: Bug 修 ...

  5. MVC4.0中项目发布遇到IE11时session存入URL中,导致记不住密码的问题

    ///MVC4.0中项目发布遇到IE11时session存入URL中,导致记不住密码的问题,在webconfig中配置<system.web><authentication mode ...

  6. log-malloc2 0.2.4 发布

    log-malloc2 0.2.4 发布了,该版本修复了日志格式输出的 bug. og-malloc2 是一个 malloc 日志预加载库,用于检测内存泄漏问题.

  7. TypeScript 0.9.1 发布,新增 typeof 关键字

    TypeScript 0.9.1 发布了,该版本提升了编译器和语言的性能,增加新的语言特性 typeof ,更好的 this 处理等.详细介绍请看发行说明. TypeScript 是微软新推出的一种语 ...

  8. Appium路线图及1.0正式版发布

    Appium更新的速度极快,从我试用时候的0.12到1.0(0.18版本后就是1.0),完全符合移动互联网的节奏. 更新可能会慢,可以多试几次 整理了testerhome上思寒发表的帖子,让我们来看下 ...

  9. Tao 1.2.0图形框架发布

    Tao 1.2.0图形框架发布         Tao图形框架是方便在Mono和.Net环境下进行游戏相关开发的库绑定和实用工具集.目前,对以下库提供支持: Cg - [Cg website] Dev ...

随机推荐

  1. [转载] linux中文件描述符fd和文件指针flip的理解

    转载自http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd只是一个整数,在open时产生.起到一个索引的作用,进程通 ...

  2. RabbitMQ之Helloworld

    RabbitMQ介绍 RabbitMQ是一个消息代理.它的核心原理非常简单:接收和发送消息. 专有名词 生产(Producing)意思就是发送.发送消息的程序就是一个生产者(producer).我们一 ...

  3. VMware下Linux网络配置局域网和外网访问

    要使用Linux系统很重要的一个操作就是使Linux系统能够访问互联网,只有Linux系统能够访问互联网才能够去下载很多自己所需要的资源,如果不能访问互联网那么使用Linux系统往往会卡在这一步,假设 ...

  4. Maven工程下报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

    Maven工程下,webapp下面新建index.jsp文件,报如下错误. 原因很简单,没有安装如下maven依赖包: <dependencies> <!-- JSP相关 --> ...

  5. 《疯狂java讲义》读后感

    <疯狂java讲义·第三版>,全书共851页,18章. 目录如下: 第1章 Java语言概述与开发环境 第2章 理解面向对象 第3章 数据类型和运算符 第4章 流程控制与数组 第5章 面向 ...

  6. PHP yield 分析,以及协程的实现,超详细版(上)

    参考资料 http://www.laruence.com/2015/05/28/3038.html http://php.net/manual/zh/class.generator.php http: ...

  7. 【原创】python基于大数据现实双色球预测

    前提准备:利用sql筛选出每个球出现概率最高的前5个数 原理:先爬出所有的历史数据,然后模拟摇奖机出球的机制并大量模拟计算,直到出现列表中的某一个数后即停 注意事项:由于计算过程数据量很大,需要加入内 ...

  8. 简单了解enum

    enum的性质: 1.枚举类型的实例都是常量 2.要使用enum,需要创建一个该类型的引用,并将其赋值给某个实例 3.常用的方法:  *     toString():某个enum实例的名字  *   ...

  9. leetcode series:Two Sum

    题目: Given an array of integers, find two numbers such that they add up to a specific target number. ...

  10. canvas入门之时钟的实现

    canvas 入门之作: 三步实现一个时钟: 直接上效果:   step 1  : 背景制作首先制作从1-12的数字: var canvas = document.getElementById('ca ...