[原创]FineUI秘密花园(一) — 为什么选择FineUI?_weixin_33778778的博客-程序员宅基地

技术标签: c#  ViewUI  测试  javascript  

首先来看看FineUI是什么?

FineUI 是一组基于 ExtJS 的专业 ASP.NET 控件库,拥有原生的 AJAX 支持和华丽的 UI 效果。
FineUI 的使命是创建没有 JavaScript,没有 CSS,没有 UpdatePanel,没有 ViewState,没有 WebServices 的网站应用程序。

 

从这段官方描述中,我们看到了三个信息点:

  1. 基于ExtJS。大家都知道ExtJS是一个很绚丽的JavaScript控件库,非常适合进行各种管理系统的开发。但是对于很多开发者而言,写上一堆一堆的JavaScript代码无疑是一个噩梦。
  2. ASP.NET2.0控件库。大家都知道ASP.NET的WebForm开发的最大优点是快速开发,而ViewState则是这种快速开发的基石,使得我们使用C#代码操作页面上控件的任何属性。它的缺点也很明显,在Web2.0的时代每次都是整个页面回发(PostBack)显然过于落伍,并且默认的控件外观过于简陋。由于FineUI是基于ASP.NET2.0的控件库,所以可以自由地应用到 .Net Framework 2.0、3.5、4.0的项目中。
  3. FineUI则是将ExtJS和ASP.NET进行深度整合的产物。大量基于JavaScript和CSS却不需要程序员编写JavaScript和CSS;原生的AJAX支持却不需要依赖ASP.NET AJAX的UpdatePanel;快速的ASP.NET开发模式却不需要ViewState的参与。最终FineUI剩下的只是简单的ASP.NET控件。学习FineUI只需要你有ASP.NET的开发基础,不需要事先学习ExtJS,因为FineUI是一个深度封装的控件库。

 

最终,我们可以给出如下一个简单的公式:

FineUI控件库 = 绚丽的ExtJS界面 + 快速的ASP.NET开发 + 简单的代码编写

FineUI

 

FineUI的设计理念

 

一切为了简单。

FineUI最初的设计目的就是让ASP.NET开发人员在不需要了解JavaScript和ExtJS的情况下快速开发出漂亮的Web2.0应用。因此每个控件的编写都尽量符合ASP.NET的开发习惯,从控件和属性的命名到复杂的AJAX交互,都让传统的ASP.NET开发人员感到很舒服,这也是FineUI经过四年的风雨历程仍然深受广大开发者喜爱的原因。

 

用心实现80%的功能。

FineUI最初是项目驱动的管理系统的开发,因此控件的开发优先级都是服务于项目的需要,对常见的80%的功能进行精雕细琢的设计开发,并独创了很多服务于实际需求的功能,比如原生的AJAX支持、轻量级的数据传输以及基于IFrame的页面框架。因此FineUI不会追求对ExtJS进行完全的封装,但是会在80%的常见功能上进行细致入微的设计和思考。

 

创新所以独一无二。

FineUI能够在高手如林的ASP.NET控件库领域拥有一席之地,靠的不是漂亮的脸蛋或者复杂的功能,而是简单而实用的创新。正如前文提到的那样,原生的AJAX支持使得ASP.NET开发人员根本没有意识到自己开发的程序是Web2.0的无刷新风格,因为编写的代码和传统的ASP.NET代码几乎一样;轻量级的数据传输完全抛弃了不适合AJAX的ViewState,而是自创了XState进行数据传输,从而减少网络流量;基于IFrame的页面框架更是给开发人员一个分而治之的设计模式,弹出窗体不在局限于IFrame框框中。

 

为什么选择FineUI?

 

1. 快速的项目开发

基于您熟悉的C#和ASP.NET 2.0开发模式,不需要JavaScript代码就能完成真正的Web 2.0应用。不仅能够极大的减少开发时间和降低开发成本,而且方面维护升级。

2. 基于现有的ASP.NET知识

虽然FineUI是基于ExtJS组件的,但是不需要你事先了解ExtJS的知识,因为FineUI是完全按照ASP.NET的命名习惯和开发框架完成的,你经常会发现很多控件的命名、属性、方法、事件和原生的ASP.NET控件一模一样。

3. 丰富的控件库

超过50个专业的ASP.NET控件,不仅帮助您快速实现业务逻辑,而且让页面更加生动和华丽。

4. 跨浏览器支持

FineUI使用C#代替传统的JavaScript开发,不仅提高了开发效率,而且确保在所有主流的浏览器下流畅运行。

5. 多主题支持

FineUI不仅内置3种官方主题,而且通过示例提供了4种扩展主题,同时还允许您自定义自己的主题,来满足项目的个性化需求(截图效果)。

6. 页面无刷新

所有的页面回发都不会导致整个页面重新渲染,而只有部分页面得到更新。而这个AJAX过程对开发人员完全透明,您可以向往常一样在服务器端改变控件属性,而这个修改会直接反映更新到前台页面,而不需要任何额外的代码。

7. 轻量级的数据传输

ViewSate是WebForm开发模式的基石,带来便利的同时也增大了数据传输。 FineUI独创的XState实现,不仅保留便利而且极大的减少了数据的传输量。

8. 丰富的示例教程

超过100个示例和丰富的教程让你全面掌握FineUI的各种用法。

9. 全中文支持

官方示例,到BBS论坛,再到API文档,再到QQ交流群,全程中文社区,让你再无语言障碍。

10. 持续的开发维护

FineUI从2008-04发布第一个版本以来,一直坚持不懈的发布了100多个版本,并还将继续一直维护下去。

11. 开源免费

FineUI可以免费应用于任何非商业或者商业性的项目,采用对商业应用友好的Apache License 2.0协议。

 

FineUI与ExtJS,ExtNet,ExtJsExtender的区别?

 

ExtJS 是纯JavaScript的控件库,所以适用于后台为PHP,ASP.NET或者JSP的项目,并且是FineUI和其他库的基础。

 

ExtNet 是国外一家公司开发的基于ExtJS的ASP.NET控件库,从功能上讲比较完善,不过开发模型相对复杂,如果你喜欢ExtNet的开发风格或者需要使用ASP.NET MVC,可以尝试这个控件库。

 

ExtJsExtender 是一个比较早的基于ExtJS的ASP.NET控件库,但是功能过于简陋,长期没有更新,并且对ASP.NET AJAX有依赖。

 

FineUI 是一组基于ExtJS的ASP.NET控件库,也是本系列文章的主角。最大的优点就是简单实用。基于ASP.NET2.0,项目中只需要引用一个FineUI的DLL,没有其他依赖。还要注意FineUI只适合传统的WebForm的项目,不适合ASP.NET MVC的项目。

 

FineUI的许可协议

 

从FineUI v3.1.0开始,FineUI采用对商业应用友好的Apache License 2.0这篇文章阐述了FineUI是如何选择开源协议的。

 

FineUI 完全遵守 ExtJS 对开源软件的要求:

  • FineUI 的 Apache License v2.0 授权协议 与 ExtJS 的 GPL v3 兼容;
  • FineUI 公开全部源代码,没有任何保留;
  • FineUI 不包含 ExtJS 的任何源代码;
  • FineUI 不将 ExtJS 作为整体发布,而是提供获取 ExtJS 的方法;
  • FineUI 公开说明使用了 ExtJS 库,并指出 ExtJS 库是采用 GPL v3 授权协议的;
  • FineUI 是为了将 ExtJS 引入 ASP.NET 领域,而非独立存在的库。

FineUI 使用 Apache License v2.0 授权协议是商业友好的。FineUI 是真正意义上的开源程序,是最好用的开源控件库!

 

注:

  1. 使用 FineUI 的商业程序无需获得 FineUI 的授权!
  2. 使用 FineUI 的商业程序需要购买 ExtJS 的商业授权,因为 ExtJS 是 GPL v3 协议下发布。

 

我们也希望您能通过捐赠作者来支持 FineUI 的发展!

 

 

FineUI社区交流

 

论坛:http://fineui.com/bbs/

示例:http://fineui.com/demo/

文档:http://fineui.com/doc/

下载:http://fineui.codeplex.com/

博客:http://sanshi.cnblogs.com/

 

你也可以从这里中查找FineUI的QQ交流群。

 

 

 

注:《FineUI秘密花园》系列文章由三生石上原创,博客园首发,转载请注明出处。文章目录 官方论坛

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33778778/article/details/85504119

智能推荐

【源码】FOMCON version 1.22.0.0——基于分数阶微积分的系统建模和控制设计工具箱_梅花香——苦寒来的博客-程序员宅基地

FOMCON是一个基于分数阶微积分的系统建模和控制设计工具箱。要求MATLAB R2010a及其以上版本。MATLAB必须安装以下两个工具箱:Control System toolbox;Optimization toolbox。参考文献:A. Tepljakov, E. Petlenkov, and J. Belikov, “Gain and Order Scheduled Frac...

elasticsearch使用优化备忘_夜月行者的博客-程序员宅基地

做过哪些优化官方优化建议1.jvm使用合适的jvm2.增大可以打开的文件数3.增大可以开启的线程数4.增大mmap使用的限制vma5.减少swap,可以开启memory lock,或者禁用swap6.master expecial业务中使用alias来进行全量index的无缝替换new index的时候只有一个replica,完成后在加一个replicaset slow_logadd coordinator node 并使用g1update refresh_intervalno

【Android开发入门教程】一.开发环境的搭建_Liuxin_研鑫的博客-程序员宅基地

Android开发入门教程--1.开发环境的搭建一、所需开发工具:1、Java JDK下载地址下载Java SE 6对应的JDK即可2、Eclipse下载地址下载Eclipse IDE for Java Developers3、ADT4、SDK Tools你的支持,是我们的动力!分享一个安卓Java学习交流群,每天分享免费学习资料!(点击传送门!!!)二、环境搭建:1、安装Java JDK,搭建Android开发环境不需要设置环境变量,安装完成后打开“命令提示符”窗口输入jav...

关系数据库主码、超码、候选码、主码(键)_夏木゜的博客-程序员宅基地_关系的主码

CodeMeaning码一个或多个属性的集合超码一个或多个属性的集合,超码中的这些属性可以在一个实体集唯一标识一个实体候选码极小的超码,任意真子集都不是超码,本身属于超码主码被选中用于在一个关系中区分不同元组的候选码主属性定义:候选码的诸属性称为主属性;非主属性定义:不包含在任何候选码中的属性称为非主属性;实体完整性规则:如果属性(一个或者一组属性)A是基本关系R的主属性,则A不能取空值。自己画的一张图参考:数据库中码、超码、主码、候选码_...

【Spring源码解析】BeanFactoryPostProcessor【相关类】源码解析_响彻天堂丶的博客-程序员宅基地

1 BeanFactoryPostProcessor作用public interface BeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor { /** * 可以修改容器Bean内部的定义信息,全部的bean definitions会加载但是bean没有被实例化 */ void po...

pip与conda的介绍,以及anconda的下载与安装_浅释的思旭的博客-程序员宅基地

介绍pippip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。目前如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具。Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具。condaConda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间...

随便推点

TRADE_SUCCESS和TRADE_FINISHED的区别_choujuechong4238的博客-程序员宅基地

TRADE_SUCCESS 交易成功(或支付成功) TRADE_FINISHED 交易完成 即时到账普通版。 普通版不支持支付完成后的退款操作,即用户充值完成后,该交易就算是完成了,这笔交易就不能再做任何操作了。 即时到账高级版。 这个...

gbk和utf8的区别_selffight的博客-程序员宅基地

原地址:http://jingyan.baidu.com/article/7f41ececf3ca46593c095c56.html我们这里将以最简单最容易理解的方式来描述GBK和UTF8的区别,以及它们分别是什么。GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符“gb2312”,这种字符仅能存储简体中文字符。UTF-8编码:它是一种

它们养活了一票国产软件!这些开源软件你知道吗_民工哥的博客-程序员宅基地

点击上方“民工哥技术之路”,选择“设为星标”回复“1024”获取独家整理的学习资料!现在各种国产软件已经牢牢占据了国内市场,无论是在浏览器、下载软件、压缩软件还是视频播放器等领域,都可以...

SpringSecurity OAuth2.0的学习(JWT令牌)_.树懒.的博客-程序员宅基地

SpringSecurity OAuth2.0的学习首先我们要知道 OAauth(开放授权)是一个开方标准,允许用户授权第三方应用访问他们的微服务应用.OAauth2 包括以下角色1. 客户端: 通常指 需要通过资源拥有者的授权请求资源服务器的资源,比如Android客户端,WEB端等2. 资源拥有者: 通常为用户也可以是应用程序,即该资源的拥有者3. 授权服务器: 用于服务商提供商对资源拥有的身份进行认证,对访问资源惊醒授权。但是授权服务器就允许随便一个客户端就介入到它的授权服务器吗,它会给

24系列EEPROM的应用_月月爱猫粮的博客-程序员宅基地

作为一种非易失性存储器(NVM),24系列EEPROM使用的很普遍,一般作为数据量不太大的数据存储器。下面总结一下其应用的一些要点。从命名上看,24CXX中XX的单位是kbit,如24C08,其存储容量为8k bit,即1k Byte=1024 Byte。一、工作条件1.工作电压(VCC)   24CXX: 4.5V-5.5V   24CXX-W:2.5V-5.5V  

如何更改nrf51822的主服务uuid与特性的uuid不一样_一头小笨驴的博客-程序员宅基地_服务uuid和特征uuid

最近有一个CSDN的好友给我留言,询问如何设置主服务uuid和特性uuid不一样,如下图:我以为这个问题很简单,网上应该一大堆,但是搜索一下,却发现没有这样的文章,于是,把自己的代码给分享出来,供大家学习。废话就少说,这里直接把代码复制下来。大家可以通过对比软件对比一下就行。使用的是SDK11的,串口服务ble_char,uint32_t ble_char_init(ble_char_t * p_char, const ble_char_init_t * p_char_init){ uin

推荐文章

热门文章

相关标签