CUBA平台–用于快速应用程序开发的开源Java框架

传统上,自计算时代开始以来,企业软件开发自然面临着一个挑战,当时自然而然地,企业软件开发本应专注于解决实际的业务问题,但与此同时,开发人员必须在技术上花费大量时间和精力。解决方案的一面,例如架构和通用功能实现。

为了解决以技术为中心的编程和面向问题的编程之间的这种不平衡,出现了许多框架,这些框架旨在提高抽象级别并使开发人员脱离低级例程。 另外,为了提高开发效率,多年来开发工具变得越来越聪明。 Borland Delphi是2000年代初期的最好例子之一,它极大地提高了桌面应用程序的开发速度。

在过去的十年中,企业软件得到了很大的发展,从而增加了对新一代高生产率框架和开发工具的需求。 因此,在本文中,我们将介绍CUBA平台 -一种开放源代码框架,该框架结合了坚实的体系结构,任何企业应用程序的“必备”功能和快速的应用程序开发工具,旨在提高开发效率。
鸡尾酒

CUBA平台与其他框架有何不同?

与大多数其他Java框架的主要区别在于CUBA平台是一个高级框架 。 这意味着它将开发人员从基础技术(例如Vaadin,Spring和EclipseLink)中抽象出来,从而使他们可以专注于业务任务,并通过一组丰富的功能和开发工具进行授权。 同时,CUBA并不限制对低级代码的访问,从而使人们确信该框架可以适应项目的需求。

CUBA平台在开发企业应用程序时带来了最大的价值,企业应用程序通常需要复杂的数据模型,数十或数百个屏幕,对运行各种业务流程的支持,强大的安全性要求等。

到底是什么东西?

CUBA应用程序具有标准的三层体系结构。 关系是元数据–应用程序数据模型的知识。 首先,它使所有视觉组件都具有数据感知能力。 因此,例如,一个表知道它正在显示驱动程序实体的某些属性,而标签知道它正在显示日期。 同样,元数据可帮助可视化组件通过ORM与数据层进行对话-定义应上载或更新的对象图。 这同样适用于安全子系统,报告生成器和平台的其他部分。

丰富的网络用户界面具有声明性:您可以在视觉编辑器或XML中定义屏幕布局,可以从70多种视觉组件中进行选择,从各种按钮到Google Maps和动态图表。 然后,在Java控制器中添加初始化和事件处理逻辑。 考虑到数据感知组件,您可以非常快速地创建复杂的UI,并且由于代码和布局之间的清晰区分,它仍将易于维护。 如果可用组件的选择不够,则可以集成外部JavaScript,GWT或Vaadin组件。

屏幕-sb-2

通用过滤器是CUBA用户界面的重要组成部分,该组件使用户可以创建自己的搜索条件。 开发人员只需将组件放到浏览器屏幕(显示实体列表的屏幕)上,然后就不用管它了。 用户或管理员将定义他们要自行搜索的条件。

1个过滤器

所有用户动作均由安全子系统控制。 基于角色的模型控制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平台开发应用程序所需的全部是Java SE,XML和JPQL,这使您的应用程序代码更加统一且易于维护。 这也使您的开发团队更加灵活-您实际上不需要Web开发人员或Java EE专家团队。

图片1

您可以在自己选择的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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#与mongoDB初始环境搭建

mongoDB官网https://www.mongodb.com/ mongoDB默认安装路径(Windows x64平台) C:\Program Files\MongoDB\Server\3.4\bin mongoDB环境变量配置 启动mongoDB服务 > mongod -dbpath D:\mongodb > mongo Visual Studio引用mongoDB PM> install-package M…

java ee 的使用方法_改善Java EE生产支持技能的8种方法

java ee 的使用方法参与Java EE生产支持的每个人都知道这项工作可能很困难。 7/24寻呼机支持,多个事件和错误修复(要定期处理),来自客户和管理团队的压力,要求它们尽快解决生产问题并防止再次发生。 在日常工作中&…

Tp3.1 文件上传到七牛云

TP3.1 中不支持Composer 就无法用composer 安装 下载历史的SDK https://github.com/qiniu/php-sdk/releases/tag/v7.0.8 下载下来放到 Think 目录下的Vendor下 进入代码 HTML的代码 <form id"upload" methodpost action"file" enctype"multipart/f…

转帖 IBM要推POWER9,来了解一下POWER处理器的前世今生

https://blog.csdn.net/kwame211/article/details/76669555 先来说一下最新的POWER 9 在Hot Chips会议上首次提到的IBM Power 9 处理器有可能成为劲爆芯片&#xff0c;Power 9预计有助新 OEM 和加速器合作伙伴的发展&#xff0c;并可为大蓝色IBM叫板主要竞争对手英特尔的高端服…

asp.net core 自定义401和异常显示内容(JWT认证、Cookie Base认证失败显示内容)

asp.net core 2.0使用JWT认证园子里已经有挺多帖子了&#xff0c;但开发中发现认证未授权情况下返回的401状态码是没有任何信息的&#xff0c;业务中可能有需要返回一串错误的Json信息。在这里我分享一个自定义错误页面内容信息的方法&#xff0c;使用该扩展方法还可以捕获异常…

面向 NLP 任务的大模型 Prompt 设计

很久之前&#xff0c;我们介绍到&#xff0c;prompt是影响下游任务的关键所在&#xff0c;当我们在应用chatgpt进行nlp任务落地时&#xff0c;如何选择合适的prompt&#xff0c;对于SFT以及推理环节尤为重要。 不过&#xff0c;硬想不是办法&#xff0c;我们可以充分参考开源的…

生产Java应用程序中的十大异常类型-基于1B事件

Pareto记录原理&#xff1a;97&#xff05;的记录错误语句是由3&#xff05;的唯一错误引起的 在最新的数据整理帖子之后&#xff0c;我们收到了很多反馈和问题&#xff0c;在该文章中&#xff0c;我们显示97&#xff05;的记录错误是由10个唯一错误引起的 。 根据普遍的需求&…

教你制作QQ空间超高连通率背景音乐链接。

1.进入【搜搜音乐】http://music.soso.com/index.html 搜索你想要的歌曲名字。。。如下图&#xff1a; 2、 3.此链接地址并不能做背景链接&#xff0c;因为腾讯加密了&#xff0c;你只需将链接地址里的qq改成%71%71就可以作为背景音乐链接了。如图&#xff1a;

Java EE 8,当前状态是什么:自2015年底以来已完成工作的案例研究

对于那些密切关注Java EE的人来说&#xff0c;在过去的六个月中已经很清楚&#xff0c;活动有所减少&#xff0c;尤其是在Oracle保持领先的JSR中。 这是怎么回事&#xff1f; 最近&#xff0c;在这方面&#xff0c;Java EE社区进行了很多讨论&#xff0c;我认为给开发人员社区一…

Lombok,一种编译时Java注释预处理器,可最大程度地减少代码大小

在本文中&#xff0c;我们将看到如何在常规Java代码中使用lombok来最小化代码长度和冗余。 什么是Lombok&#xff1f; Lombok&#xff0c;一个编译时注释预处理器&#xff0c;有助于在编译时注入一些代码。 在详细介绍之前&#xff0c;我要求您应该从他们的网站上观看视频。 …

css3实现雷达图

效果图&#xff1a;gif图&#xff1a;代码&#xff1a;<!DOCTYPE html> <html > <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible" content"IEEdge,chrome1"/> <meta name"viewpor…

STL set

STL set 百科名片 STL 对这个序列可以进行查找&#xff0c;插入删除序列中的任意一个元素&#xff0c;而完成这些操作的时间同这个序列中元素个数的对数成比例关系&#xff0c;并且当游标指向一个已删除的元素时&#xff0c;删除操作无效。而一个经过更正的和更加实际的定义应该…

一、Objective-C之Runtime的概念

前一篇关于NSProxy代理涉及到的关于消息转发&#xff0c;把以前写的runtime文章从github上转移过来。一共三篇&#xff0c;似乎自己也忘记了一些runtime的细节&#xff0c;需要温故一下。 一、什么是Objc的Runtime&#xff1f; Runtime是Objc语言的磐石&#xff0c;Objc语言得以…

jsf服务_使用JSF的面向服务的UI

jsf服务在大型软件开发项目中&#xff0c;面向服务的体系结构非常常见&#xff0c;因为它提供了可供不同团队或部门使用的功能接口。 创建用户界面时&#xff0c;应应用相同的原理。 对于具有开票部门和客户管理部门等的大型公司&#xff0c;组织结构图可能如下所示&#xff1a…

ANTLR和Jetbrains MPS:解析文件并以树符号显示AST

Itemis再次这样做&#xff1a;他们刚刚为Jetbrains MPS发布了一个非常酷的新插件。 这允许定义新的树编辑器。 他们看起来像这样&#xff1a; 在这篇文章中&#xff0c;我们将看到&#xff1a; 如何在MPS中使用ANTLR解析器 如何使用树符号表示已解析的AST 特别是&#xf…

KMP字符串模式匹配详解

刚看到位兄弟也贴了份KMP算法说明&#xff0c;但本人觉得说的不是很详细&#xff0c;当初我在看这个算法的时候也看的头晕昏昏的&#xff0c;我贴的这份也是网上找的。且听详细分解&#xff1a;KMP字符串模式匹配详解 来自CSDN A_B_C_ABC 网友 KMP字符串模式匹配通俗点说…

ASP.NET Core IdentityServer4 新手上路

OAuth2.0资料 今天看到一篇博主写了该系列文章,贴图和过程都比较详细,俗话说实践是检验真理的唯一标准&#xff08;如果是按照参考文章复制粘贴,应该不会出现踩坑&#xff0c;但是我喜欢自己手动敲一遍&#xff09;&#xff0c;发现几个坑&#xff0c;因而总结下经验&#xff0…

主成分分析和因子分析区别与联系

主成分分析可以简单的总结成一句话&#xff1a;数据的压缩和解释。常被用来寻找判断某种事物或现象的综合指标&#xff0c;并且给综合指标所包含的信息以适当的解释。在实际的应用过程中&#xff0c;主成分分析常被用作达到目的的中间手段&#xff0c;而非完全的一种分析方法。…

luogu P1519 穿越栅栏 Overfencing

题目描述 描述 农夫John在外面的田野上搭建了一个巨大的用栅栏围成的迷宫。幸运的是&#xff0c;他在迷宫的边界上留出了两段栅栏作为迷宫的出口。更幸运的是&#xff0c;他所建造的迷宫是一个“完美的”迷宫&#xff1a;即你能从迷宫中的任意一点找到一条走出迷宫的路。给定迷…