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. python进阶------进程线程(五)

    Python中的IO模型 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别 ...

  2. Python之os.fork

    [参考资料] http://www.01happy.com/python-fork-create-process/ http://www.python-course.eu/forking.php ht ...

  3. Python之文件与目录

    file 通常建议使用open()打开文件,file用于类型判断 如果要把数据写到磁盘上,除调用flush()外,还得用sync(),以确保数据从系统缓冲区同步到磁盘.close()总是会调用这两个方 ...

  4. ELK 快速指南

    ELK 快速指南 概念 ELK 是什么 ELK 是 elastic 公司旗下三款产品 ElasticSearch .Logstash .Kibana 的首字母组合. ElasticSearch 是一个 ...

  5. ORACLE 错误代码提示归集

    有时数据库出现问题,不是每次都有网络可查,所以把所有的ora系列的错误整理出来, 在最没有办法的时候,需要自己来解决,有了这些根据,问题会好办的.虽说对于数据库方面, DBA很强大,他们在遇到错误时, ...

  6. 《Maven实战》 第7章 生命周期与插件

    7.1什么是生命周期 软件开发人员每天都在对项目进行清理.编译.测试及部署,Maven生命周期是对所有构建过程进行抽象和统一,含项目的清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等几 ...

  7. jQuery操作input改变value属性值

    今天写了一个表单元素,在用户点击的时候会清空input中的内容,当鼠标点击其他地方的时候会把输入的值保存为input的value值 类似于这样的效果 当用户点击的时候文字消失. html代码 < ...

  8. 【Mysql知识补充】

    一.子查询 1.定义 子查询是将一个查询语句嵌套在另一个查询语句中.内层查询语句的查询结果,可以为外层查询语句提供查询条件.子查询中可以包含:IN.NOT IN.ANY.ALL.EXISTS 和 NO ...

  9. Python入门 - 面向对象

    python很好的支持面向对象编程,本节主讲类的定义,类的构造方法,类的继承与方法重写,类的多继承. 一.类的定义 class Myclass() : def prt(self, str) : pri ...

  10. deepin 常用设置

    1 不开特效和动画,开启透明无黑边 #!/bin/bash #开启 metacity 窗管合成,取代正在运行的窗管 deepin-metacity --composite --replace #关闭 ...