[原创]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

智能推荐

LCT动态树【史上最精简易懂的LCT讲解】_aiweiluan5095的博客-程序员宅基地

Link Cut Tree(动态树,LCT)介绍首先简单介绍一下Link Cut Tree,将一棵树分成轻边和重链,类似于树链剖分,但是树剖是静态的。LCT可以用于动态的加点和删点,甚至还可以换根。也就是LCT维护了一个动态的树。LCT中的每棵Splay都维护了一条重链(实际上是实链,这里统一讲重链)上的答案。多颗Splay连成一棵树...

pip install时报错ReadTimeoutError_ayiya_Oese的博客-程序员宅基地

pip install时报错ReadTimeoutErrorRead timed out解决方案设置timeout:更改镜像源:通过下载.whl文件安装:Read timed outpip install 安装依赖包的时候出现以下错误:raise ReadTimeoutError(self._pool, None, "Read timed out.")pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='

5G新标准将延迟3个月发布,但5G“新战场”已经明确_人工智能学家的博客-程序员宅基地

来源:雷锋网2019年,5G开启商用元年。2020年开年,5G智能手机的发布就迎来了一个发布高峰,2月份至今,国内就有10多款5G手机发布。5G手机的数量和销量也迅速增长,根据工信部副...

用python函数画德国国旗代码_用Python的turtle模块画国旗_weixin_39522312的博客-程序员宅基地

最近在学Python,发现Python的海龟绘图非常有趣,就分享一下!话不多说,先来Python turtle的官方文档链接: Python turtle。这里面有turtle的各类指令。turtle画国旗主要用到两个函数:draw_rentangle和draw_star。import timeimport turtleimport osdef draw_rectangle(start_x,sta...

eclipse的myeclipse插件下载安装方法_weixin_34240520的博客-程序员宅基地

1,第一种方法直接通过网站更新。 MyEclipse 10.0 (Update Site) To install using an Eclipse update site: Install Eclipse Classic 3.7. 使用的eclipse是3.7 classic的 Edit the eclipse.ini file in the eclipse folder and chang...

随便推点

STM32中printf重定向(串口输出)_早睡早期的旭酱的博客-程序员宅基地_stm32printf重定向

一、理解:什么是重定向?重定向是指将fputc里面的输出指向目标设备。因printf函数调用了fputc,而fputc输出有默认指向的目标,且不同库中的fputc输出指向不同,所以需要重写fputc相同的东西换不同的出口,就像电脑,同样的内容,可以通过显示器显示出来,也可以通过投影仪显示出来具体怎么实现没关心过, 只知道怎么用 重定向就和名字一样, 就是把你要printf的东西选择一个通道print出去,可能是UART0,UART1,或者DEBUG里那个虚拟的UART在STM32测试串口的时候经常需

Web应用,wsgiref_i0208的博客-程序员宅基地_wsgiref

Web应用组成Web应用程序是基于B/S架构的,其中B指的是浏览器,负责向S端发送请求信息,而S端会根据接收到的请求信息返回相应的数据给浏览器,需要强调的一点是:S端由server和application两大部分构成开发Web应用我们无需开发浏览器(本质即套接字客户端),只需要开发S端即可,S端的本质就是用套接字实现的server端import socketdef ma...

域中的组策略(Group Policy)_Jietewang的博客-程序员宅基地_域控组策略

目录1.组策略1.1 组策略容器GPC1.2 组策略模板GPT2.组策略管理2.1.新建组策略对象GPO2.2.编辑组策略对象2.3.应用组策略对象1.组策略 组策略是Windows环境下用户管理对象的一种手段。组策略分为本地组策略和组策略。本地组策略适合于管理独立的未加入域的工作组的机器。而组策略则是用于管理域环境中的对象;本文主要讲解域环境中的组策略。关于本地组策略,传送门: 域环境中通过配置组策略可以对域中的用户、用户组、计...

google test简介_阿波321的博客-程序员宅基地_googletest

本博客http://blog.csdn.net/livelylittlefish 贴出作者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正! 1. Introduction   Google C++ Testing Framework: Google C++测试框架   Feature(1) Google's framework for writing C++ tests on a variety of platformsLinuxMac OS XWindowsCygwinWi

webkit内核浏览器滚动条默认样式修改_zpp979的博客-程序员宅基地

这个 ::-webkit-scrollbar CSS伪类选择器影响了一个元素的滚动条的样式::-webkit-scrollbar 仅仅在支持WebKit的浏览器 (例如, 谷歌Chrome, 苹果Safari)可以使用.::-webkit-scrollbar — 整个滚动条.::-webkit-scrollbar-button — 滚动条上的按钮 (上下箭头).::-webkit-scrollbar-thumb — 滚动条上的滚动滑块.::-webkit-scrollbar-track — 滚动条

SpringBoot自定义参数解析器HandlerMethodArgumentResolver应用详解_Fly丶X的博客-程序员宅基地_handlermethodargumentresolver

前言在Spring三大框架Controller层中,经常可以看到@RequestParam,@PathVariable,@RequestBody等注解实现自动封装入参,这些都是通过Spring MVC框架提供的参数解析器HandlerMethodArgumentResolver接口实现的,本篇文章将会介绍参数解析器HandlerMethodArgumentResolver的应用HandlerMethodArgumentResolver解析我们来看看HandlerMethodArgumentResol