TINY FRAMEWORK

基于组件化的J2EE开发框架,from:http://www.tinygroup.org/

 

名字

Tiny名称的来历

取名Tiny是取其微不足道,微小之意。

Tiny的构建者认为,一个J2EE开发框架是非常复杂的,只有把框架分解成非常细小、可控的部分,并且对每个细小、可控的部分都有一个最优解或相对最优解, 那么整个方案也就可以非常不错的落地。

策略

Tiny框架的构建策略

Think big, start small, scale fast.

想法要宏伟,但是要从小的开始,同时可以快速的进行扩展。

Tiny框架的构建者认为:如果想法不够宏伟,那么就会局限于细节;如果一开始就铺非常大的摊子,将会失去控制;如果不能快速扩展,就无法满足应用需要。

定位

Tiny框架的应用定位

基于WEB的展现平台

主要包括展现层及控制层,可以让开发人员方便快速的实现WEB层的开发,同时要避免现有方案的缺点,同时要有自己非常突出的优点。

基于SOA的服务开发平台

可以方便的开发平台无关的服务,同时有水平扩展,应用集群方面要有良好的支持,可以满足7*24的运维要求。

目标

Tiny框架的目标定位

Tiny框架的构建者认为再好的框架也有过时的时候,再优秀的架构师也有视野盲区,再NB的写手也无法实现所有的部分。

所以Tiny框架的构建者认为:只有建立一个良好的生态圈,让广大开发者使用者都在生态圈在找到自己的位置,才是有生命的模式。

UI示例:

在线演示地址:http://www.tinygroup.org/tinyadmin/

 
以下是来自OSChina的推荐文章,摘自:http://www.oschina.net/news/57443/tinyframework-1-2-0

TinyFramework 1.2.0 预览版正式发布,更新内容如下:

Tiny框架

  • 虽然整体体量比较大,但是它的每个模块都分得非常小,因此非常容易掌握

  • 它的各种组件都可以方便的进行扩展,通过扩展可以不断的提升系统的处理能力

  • 它的工具已经非常强大,而且它还是变得更加强大。

  • 不管是管理台还是过滤器、Servlet,不管是流程组件还是UI组件,还是UI组件包等等都是可以自组装的

  • 在Tiny的世界中Web工程只是个集合,除了配置文件和Pom依赖,不应该有其它东西

  • 支持水平扩展,同时可以支持7*24小时运行

  • 开始团队由金字塔向哑铃型转变,高低水平者各司其职

  • 绝大多数情况下,要做的只是依赖,而不需进行配置

  • "众里寻他千百度,蓦然回首,那人却在,灯火阑珊处”,这一点是我们永远追求的目标

使用Tiny的理由

  • 架构者十几年平台架构经验,避免了N多已经走过的坑

  • 工程结构细化使得一切都可以非常容易理解及掌握

  • 高内聚、低耦合、高质量的代码

  • 与第三方平台的良好集成能力,想用什么就用什么,有非常低的侵入性

  • 核心、前台、后台、UI、工具一应俱全

  • 可以提供一站式应用开发支持,大多数的情况下都已足够

  • 专职的团队,可以保持项目持续不断的前进

  • 基于架构者设计的开发框架及Tiny上的产品的销售额累计有5个亿左右的销售额

  • 正在构建的Tiny生态圈,上百个UI组件及流程组件已经足够你日常使用,还会有更多被不断加入

Tiny框架适用对象

  • 在校学生,经常会做毕业论文啥的,如果需要搞点有深度的,到Tiny框架中挖挖,可以有不少猛料

  • SOHO一族,整合SSH/I之类框架来做做应用一般是够的,但是Tiny框架依然可以给你不一样的选择

  • 个体或小型企业,很明确,光是SSH/I已经不足让你的方案看起来高大上,也不足以支持业务数据量比较大的时候的应用场景,也不足以支撑居高不下的软件开发实施成本。

  • 中型企业,个体或小型企业碰到的问题你都会碰到,尤其还要考虑是的多系统集成、体系化规范建设、人员复用、资产复用等等诸多问题,自己创建团队需要解决合适的人、巨大的成本,巨大的风险。

质疑的声音

我相信,肯定也会有诸多质疑的声音,这是非常正确的,不过在质疑之前是,请先考虑一下如下事实:

  • Tiny构建了远超过Velocity性能和功能的模板引擎

  • Tiny构建了基于JDBC Driver的数据库分区分表引擎

  • Tiny构建了高性能的XmlParser、HtmlParser

  • Tiny构建了网络爬虫

  • Tiny构建了高效、强大的中文分词引擎

  • Tiny构建了虚拟文件系统,简单、高效、且不存在内存泄露(Apache VFS中存在)

  • Tiny解决了模板化问题,可以把一切资源放入Jar包,甚至JSP

  • Tiny解决了前端UI组件化问题,所有js,css,img都可以打入jar包,而让程序员避免关心UI组件的依赖关系

  • Tiny解决了每次升级的数据库脚本升级问题,程序员可以告别编写升级脚本的生活

  • Tiny解决了缓冲从业务代码中完全剥离的难题

  • Tiny解决了服务的一次开发到处使用难题,WebService,JSON,XML,etc统统不是问题

  • Tiny解决了流程编排全自动排列问题(此项已申请专利)

  • Tiny解决了业务单元热部署的难题

  • Tiny解决了业务对象自动构建

  • Tiny解决了还有许多的技术难题

常用连接

当然,这里总结的比较粗,详细的介绍请查阅Tiny框架介绍PPT,如果有任何问题,请回贴提问。

Tiny官网

Tiny源码Git仓库

TinyAdmin在线演示网站

Tiny的博客里有许多精彩的文章,不一样的内容,一样的精彩,欢迎前来观看,保证不会让您失望。

当然,也可以看看下面的快速入门文档,了解一下Tiny的开发模式。

Tiny快速入门手册

Tiny快速入门之服务开发

Tiny快速入门之Web界面快速开发实践

Tiny快速入门之控制层开发

推荐使用Tiny Framework web开发UI组件的更多相关文章

  1. 工作流,WEB框架,UI组件网络收集整理

    工作流,WEB框架,UI组件网络收集整理 在博客园上逛了好多年,随手收录了一些工作流,WEB开发框架,UI组件,现在整理一下与大家分享. 由于个人能力与精力有限,望各位园友在评论中补充,我将全部整理到 ...

  2. 038——VUE中组件之WEB开发中组件使用场景与定义组件的方式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Web 前端 UI 组件库文档自动化方案 All In One

    Web 前端 UI 组件库文档自动化方案 All In One 需求 自动化 动态 好用 markdown element-ui 中示例和说明按照一定规则写在md文件中,调用md-loader将md文 ...

  4. 微信小程序开发UI组件

    第一  view和input和button组件 1.UI组件的通用属性 (1)id       唯一标识 (2)class  设置组件的样式类 (3)style 设置组件的内联样式 (4)hidden ...

  5. [deviceone开发]-UI组件的动画示例

    一.简介 自定义组件模版(头部,按钮,加减数量,加载,底部弹出,开关(文字/无文字),选项卡(2-4), radio)全部带自定义动画效果,需从组件商店中添加:do_Animator组件 二.效果图 ...

  6. Play Framework Web开发教程(33): 结构化页面-组合使用模板

    和你编写代码相似,你编写的页面也能够由多个小的片段组合而成,这些小的片段本身也能够由更小的片段构成.这些小片段一般是能够在其他页面反复使用的:有些部分能够用在全部页面,而有些部分是某些页面特定的.本篇 ...

  7. 挂号平台首页开发(UI组件部分)

    JQ插件模式开发UI组件 JQ插件开发方法: 1.$.extend() 扩展JQ(比较简单,功能略显不足) $.extend({ sayHello:function(){ console.log(&q ...

  8. 转Web开发的发展史---Web开发技术的演变

    转自:http://blog.csdn.net/zzzkk2009/article/details/9849431 在接下来的几个月时间里,我打算写一系列关于完整web开发的文章.这第一篇文章虽然有所 ...

  9. Web 开发中很实用的10个效果【附源码下载】

    在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...

随机推荐

  1. [置顶] SPL讲解(7)--Query高级篇

    SmartPersistenceLayer 2.0 之Query高级查询篇 总述 在看了前面的功能后,大家都会考虑到多表之间的查询怎么办.在这里,我想先讲一下查询在应用系统中的复杂性/重要性/可行性. ...

  2. SVN:冲突解决 合并别人的修改

    在项目中,基本不可避免多个人同时参与一个项目,因此就可能会出现多个人同时修改一个文件的情况,就不可避免的会出现冲突.svn已经很聪明了,如 果你和别人对于同一个文件的修改之间不存在重叠(比如你在文件最 ...

  3. IOS Xmpp 创建固定房间

    XMPPRoom *room; // 初始化房间 XMPPRoomCoreDataStorage *rosterstorage = [[XMPPRoomCoreDataStorage alloc] i ...

  4. Hide a file in a picture

    有时候.假设你想在电脑上隐藏关键的文件而不想让其它人看见.你会怎么做呢?找一个专业的工具?为目录设置password?更改文件属性?这些方法可行.但它们可能不太方便和安全.这里,我给大家共享一个在图片 ...

  5. DWZ主从结构计算

    最终效果图: 首先我们需要修改一下主从结构的源码dwz.database.js,如下: function tdHtml(field){ var html='',suffix=''; if(field. ...

  6. java学习之数据库

    第一部分:DB2基础知识 一.复习 jre jdk jvm path classpath 二.数据库基础-DB2 1.访问172.22.602.24/ temp 123 2.安装检查 db2cmd d ...

  7. CSS3实现图片鼠标悬浮放大效果

    .excerpt .focus a img{ -webkit-transition: all ease .3s; transition: all ease .3s }.excerpt .focus a ...

  8. django配置

    安装python环境后,安装pip工具 通过pip下载安装django pip install django   django在web中的应用主要由两部分构成,工程与App 工程即相当于一下门户框架 ...

  9. 什么时候会刷新备库控制文件refresh the standby database control file?

    通过合理的设置,对于Primary的绝大数操作,都是可以传递到Physical Standby,datafile的操作是通过STANDBY_FILE_MANAGEMENT参数来控制的,但是即使STAN ...

  10. 在Vim中查看文件编码

    :set fileencoding 即可显示文件编码格式. 如果你只是想查看其它编码格式的文件或者想解决 用Vim查看文件乱码的问题,那么在 ~/.vimrc 文件中添加以下内容: set encod ...