java cuba
传统上,自计算时代开始以来,企业软件开发自然面临着一个挑战,当时自然而然地,企业软件开发本应专注于解决实际的业务问题,但与此同时,开发人员必须在技术上花费大量时间和精力。解决方案的一面,例如架构和通用功能实现。
为了解决以技术为中心的编程与面向问题的编程之间的这种不平衡,出现了许多框架,这些框架旨在提高抽象级别并使开发人员脱离低级例程。 而且,为了提高开发效率,多年来开发工具变得越来越聪明。 Borland Delphi是2000年代初最好的例子之一,它极大地提高了桌面应用程序的开发速度。
在过去的十年中,企业软件得到了很大的发展,从而增加了对新一代高生产率框架和开发工具的需求。 因此,在本文中,我们将介绍CUBA平台 -一种开放源代码框架,该框架结合了坚实的体系结构,任何企业应用程序的“必备”功能和快速的应用程序开发工具,旨在提高开发效率。
CUBA平台与其他框架有何不同?
与大多数其他Java框架的主要区别在于CUBA Platform是一个高级框架 。 这意味着它将开发人员从基础技术(例如Vaadin,Spring和EclipseLink)中抽象出来,从而使他们可以专注于业务任务,并通过一系列丰富的功能和开发工具来实现。 同时,CUBA并不限制对低级代码的访问,从而使人们确信该框架可以适应项目的需求。
CUBA平台在开发企业应用程序时带来最大的价值,企业应用程序通常需要复杂的数据模型,数十个或数百个屏幕,对运行各种业务流程的支持,强大的安全性要求等。
到底是什么东西?
CUBA应用程序具有标准的三层体系结构。 关系是元数据–应用程序数据模型的知识。 首先,它使所有视觉组件都具有数据感知能力。 因此,例如,一个表知道它正在显示驱动程序实体的某些属性,而标签知道它正在显示日期。 同样,元数据可帮助可视化组件通过ORM与数据层进行对话-定义应上载或更新的对象图。 这同样适用于安全子系统,报告生成器和平台的其他部分。
丰富的网络用户界面具有声明性:您可以在视觉编辑器或XML中定义屏幕布局,可以从70多种视觉组件中进行选择,从各种按钮到Google Maps和动态图表。 然后,在Java控制器中添加初始化和事件处理逻辑。 考虑到数据感知组件,您可以非常快速地创建复杂的UI,并且由于代码和布局之间的明确分隔,它仍将易于维护。 如果可用组件的选择还不够,则可以集成外部JavaScript,GWT或Vaadin组件。
通用过滤器是CUBA用户界面的重要组成部分,该组件使用户可以创建自己的搜索条件。 开发人员只需将组件放到浏览器屏幕(显示实体列表的屏幕)上,然后就不必理会它了。 用户或管理员将定义他们要自行搜索的条件。
所有用户动作均由安全子系统控制。 基于角色的模型控制CRUD访问实体属性,甚至可以在代码中使用的某些屏幕组件或自定义令牌。 行级安全性有助于控制对某些数据记录的访问-例如,来自区域部门的用户将仅看到该部门创建的文档。 安全设置是在运行时在应用程序的UI中配置的,因此所有更改都可以由系统管理员即时进行。 最后,所有对数据的更改都将被记录下来,因此您将看到谁更改了内容以及更改的时间–在出现问题时方便进行汇报!
除上述功能外,CUBA还提供了许多现成的功能,包括:
- 用户管理和管理工具
- 报告管理
- 集成可视化设计师进行业务流程管理
- 多语言界面和多个时区支持
- 全文搜索
- 通用REST API
我可以在哪里部署我的应用程序?
关于部署阶段和环境选项,您在这里有很多自由。 CUBA应用程序可以部署为各种配置,从运行所有内容的单个服务器开始,到具有单独的中间件和Web群集的高可用性配置。 该平台开箱即用地支持PostgreSQL,Oracle数据库,Microsoft SQL Server,MySQL和HSQL(通常用于原型设计),并且随着项目的发展,您可以从一个切换到另一个。 同样重要的是,CUBA应用程序可以部署到任何Java EE Web Profile服务器,例如Jetty,Tomcat,Glassfish或Websphere。 当然,您可以将应用程序封装在Docker中和/或在流行的PaaS云中运行,例如CloudFoundry,OpenShift或Jelastic。
听起来不错,那么如何开发CUBA应用程序?
使用CUBA Platform开发应用程序所需的全部是Java SE,XML和JPQL,这使您的应用程序代码更加统一且易于维护。 这也使您的开发团队更加灵活-您实际上不需要Web开发人员或Java EE专家团队。
您可以在自己选择的IDE(例如IntelliJ IDEA或Eclipse)中创建业务逻辑,但是CUBA还具有Studio –一个补充的可视化工具,可自动执行整个CUBA特定任务的范围:
- 建立项目基础设施
- 进行UI和数据模型的可视化设计
- 脚手架CRUD屏幕具有多个布局选项
- 通过自动生成和运行更新脚本来使数据库保持最新
- 为处理程序,服务等生成存根。
Studio和IDE之间的所有更改都是同步的,因此您可以自由选择在何处进行更改。 为了进一步提高开发人员的性能,Studio会自动热部署您的所有代码(数据模型除外)。 因此,Studio消除了许多常规工作和样板代码,而不会限制您用来编写代码的工具。
如果您想将旧系统升级到现代堆栈,那么CUBA也可以提供解决方案。 Studio包含一个迁移工具,该工具会将旧版数据库转换为CUBA兼容,并根据数据库架构自动生成屏幕。 因此,您只需要添加自定义屏幕并迁移业务逻辑。
好的,我几乎说服了……许可呢?
如标题所述,核心框架是开源的,在Apache 2.0下获得许可,其源代码可在GitHub上获得。 这意味着您在CUBA上开发的软件没有许可证限制。 CUBA Studio提供免费和商业版本。 免费版CUBA Studio具有完整功能,但限制了应用程序数据模型的大小。 引导项目并探索平台功能是理想的选择。 可以完全免费使用Java IDE继续免费进行进一步开发,也可以购买商业许可订阅,其中还包括访问Premium Add-on的能力 :报告,图表和地图,全文本搜索和BPM。 每年每位开发人员订阅的价格仅为311美元起
希望本概述使您对CUBA平台是个好主意,并且很容易尝试。 如果是这样,只需访问网站, 下载免费的Studio ,通过快速入门 ,即可在几分钟之内运行您的第一个CUBA应用程序!
翻译自: https://www.javacodegeeks.com/2016/06/cuba-platform-open-source-java-framework-rapid-application-development.html
java cuba