扩展组件的概念在使用 Jmix 框架开发中扮演着非常重要的角色。我们将在本文探索什么是扩展组件以及 Jmix Studio 在扩展组件开发和应用程序模块化方面能给开发者带来什么帮助。
企业在数字化转型的过程中,都面临将现有的业务流程进行“软件化”的过程。然而,在我们的印象中,通常会觉得针对业务系统的软件开发不是特别高效。这背后有很多原因,从开发角度看,有一个主要的原因是软件开发者缺乏趁手的工具。
Jmix 的下一个版本 - 1.1 - 已可下载。 在这个版本中, 我们引入多项重要特性:
- CUBA 项目迁移
- 支持 Kotlin
- 完全支持 Java 17
Jmix Studio 也已同步更新以支持这些新特性。
我们发布了 Jmix 框架的一个稳定版 - 1.0。我们在 bugfix 和代码的稳定性上花了很多工夫,为的是能交付可以用于生产环境的框架。但不止于此。
Jmix 是一个创建以数据库为中心的应用程序的框架。因此,数据模型和数据库访问层在 Jmix 框架中扮演重要角色。 在 Jmix 中我们使用关系型数据库和 JPA 来进行数据访问。
Jmix 0.9 是最新的预发行版,可以认为其 “几乎稳定”。同时我们也发布了最新版的配套开发工具 - Jmix Studio:0.9.1-202。
首先,祝大家新年快乐!也恭喜大家能在 2020 年的 hard 模式生存下来!对全人类来说,今年都是很艰难的,希望 2021 年能带给大家更多的好消息。
CUBA 始于 2008 年,此后经历了几个非常重要的阶段。最初,它是一个内部框架,文档匮乏、只提供很少的 API。只用于 Haulmont 公司内部,使公司能够更快地开发业务应用程序。
多租户是一种软件服务运营模式,在这种模式下,多个或一个应用程序的多个实例在一个共享的环境中运行,实例(租户)之间在逻辑隔离,在物理上是一体的。
软删除是一种在业务应用程序中广泛应用的模式。它允许你将某些记录标记为已删除,而不是真正从数据库中删除。用户将不能选择标记为软删除的记录,同时旧的记录仍可以引用软删除的记录。
首先,祝大家新年快乐!也恭喜大家能在 2020 年的 hard 模式生存下来!对全人类来说,今年都是很艰难的,希望 2021 年能带给大家更多的好消息。
现代框架中代码生成是一个普遍的情况。正如每个技术一样,代码生成也有应用范畴和限制。在本文中,我们来看一下目前 CUBA 框架中代码生成的使用,并且讨论下这项技术将来的发展。
CUBA 始于 2008 年,此后经历了几个非常重要的阶段。最初,它是一个内部框架,文档匮乏、只提供很少的 API。只用于 Haulmont 公司内部,使公司能够更快地开发业务应用程序。
如果你在一个村子远程办公、或者在航程8小时的飞机上、或者公司网络限制不能访问类似 maven central 这样的公共制件仓库,这时你该如何建立框架和依赖库的完整资源栈来保证舒适的开发过程呢?如何获取所有依赖的制件,包括传递依赖呢?又如何更新使用的框架版本?
随着社区的成长,CUBA 逐渐成为了一个流行的开发工具。2016 年,CUBA 平台开启了开源之路,并且经历了一次快速成长。社区的持续发展以及 Java 专家们的肯定凸显出框架具有坚定的未来。
CUBA 框架一直以来定位的目标是业务系统的开发。业务系统的界面通常是给后台员工使用的,看重的是功能实现。多年来,界面外观和样式并不是后台管理系统的主要关注点,界面中的控件也更紧凑,唯一的原因就是:在单一屏幕中摆放尽可能多的控件,以提供足够多的功能。
但是在最近十年里,人们使用了越来越多的小尺寸触控屏设备,游戏规则因此而改变。要有有易于触控点击的控件,它们之间需要有足够的间距,防止被误点击。应用程序的配色也变得偏于使用杂色和对比色。所以,近些年的现代应用程序在设计上更注重样式,其中非功能性需求都占了很大的一部分。
顺应趋势,我们很高兴推出新可视化主题-氦元素(Helium)!与以前的样式主题相比,氦元素更简洁、明亮,视觉噪音也更少。另外很重要的一点:能够以最少的工作量为最终用户和 CUBA 开发人员提供样式定制。
詹姆斯·马丁(James Martin)于1991年正式建立了快速应用程序开发(RAD)模型,它是瀑布式开发过程的一种替代模型。 经典的瀑布方法在建筑领域和其它变化范围小且变化代价高昂的行业中是一种有效的项目管理模型。 比如您开始建造一座桥梁,则不可能在建造了一半时将其改成渡口。
一直以来 Vaadin 是 CUBA 平台所使用的主要前端UI技术 。Vaadin 的最新版本是14, CUBA 目前使用的是 Vaadin 8 。这篇文章就开发人员非常关注的 Vaadin 升级问题做了详细的解释 。
CUBA 的版本 7 是平台的一个式改进。内部架构的提升以及新的 IDE 为将来的更多改进提供了强大的基础。我们也在持续增加新功能,这样我们开发者的工作效率也能更高,生活也更美滋滋。在新的 7.2 版本中,我们增加了很多看上去像重大改进的提升,但是由于版本 7 的灵活性,这些改动其实只是正常的平台演进。
在本文中,我们将讨论CUBA平台中已经存在很长时间的一个功能,但是很多人还不知道,这就是前端SDK生成器,并了解它如何与CUBA的REST API插件一起使用。
本文根据快速应用开发(RAD)平台近 20 年的发展历程,总结了 RAD 平台的基本原理和特性。并讨论了 RAD 和低代码开发平台(LCDP)之间的关系
在 CUBA 项目中,我们会持续不断的评估更符合前端惯例、以前端为中心的 UI 开发技术。这里我们会分享一下前端工具、库以及前端代码生成的最新进展。
几乎任何系统都以某种方式与外部数据存储一起运行。大多数情况下,外部数据存储是一个关系数据库,并且在实现时通常将数据提取任务委托给某些 ORM。 尽管 ORM 包含很多 routine 代码,但是另一方面也提供了一些新的抽象。
有时,作为开发人员会遇到这种情况:没有办法用 new 操作符初始化一个对象,因为对象类的名称保存在某个 XML 配置文件里;又或者需要调用一个方法,但是方法名是在注解中的某个属性...
三年前,我们宣布了 CUBA 框架的第二个公开的主版本。CUBA 6 是改变游戏规则的版本 - 框架的许可从私有化变成了公开的 Apache2.0。那些日子里,我们甚至猜不到这个变化会最终将框架带向何方。随之而来的是,CUBA社区开始呈指数级增长,从中我们学习到许多开发人员可能使用框架的方法(有时甚至是不可能的方法)。现在我们很高兴的宣布 CUBA 7 的发布,通过这个版本,我们希望那些刚刚开始CUBA和Java之旅的社区成员能更加顺利和快乐的成长为熟练的企业级开发人员或者Java专家。
最近(2019年春节前夕)发布的 CUBA 和 Studio 的第7个版本是一个 “major”版本,“major”这个词对于版本 7 是当之无愧的,因为这是过去 3 年中最重要的版本,是基于对论坛、会议和 Java 用户组的社区反馈进行全面分析而推出的新产品。这个版本带来了非常多的变化!
开发人员通常不喜欢改变他们编码的习惯。当我刚开始接触 CUBA 的时候,发现不需要学很多新的东西,创建应用程序的过程也是非常顺利的。但是其中有一样是需要重新学习的,那就是如何使用数据。
我经常看见很多项目没有数据验证的策略和意识。他们的团队在交付日期的重压下,面对不清楚的需求,没有时间去考虑用合适并且统一的方法对数据进行验证。所以在这样的项目中,到处能看见数据验证的代码:在前端JS中,在后端页面控制器中,在业务逻辑的bean中,在数据模型实体中,在数据库的约束和触发器中。这些代码都是一些 if-else 的语句,抛出一些不同的未检查的异常,所以有时会很难找到这些该死的数据到底是在哪里做的验证。因此,一段时间之后,当项目成长到足够大的时候就很难并且需要耗费很多精力来统一这些验证,并且后面的需求也一样模糊不清。
各位关注CUBA平台的朋友,你们好!
距上次发布动态我们又沉默了大概两个月时间,这期间我们一直在翻译CUBA平台的文档。CUBA平台的开发文档相当丰富,所以这需要耗费较多的时间,至少比我们预想的时间要多得多。目前我们大概完成了总体文档的65%,我们会继续努力,尽快完成剩余的部分。
众所周知,在软件开发者的世界,特别是Java开发者,充满着键盘狂人,他们宁愿多敲10-15个字符也不愿点击一下鼠标。CUBA的社区也没有例外,所以经常有人问我们,“怎么可以不用CUBA Studio而开始一个新项目呢?” 或者 “有没有免费轻量级的命令行程序能替代Studio呢?”,有的,这里就有个好消息!
让应用程序在运行时适应客户需求最常用的方法之一就是使用脚本。但是事物总有两面性,无一例外。脚本这种方法并非只有好的一面,我们需要在灵活性和可管理性之间权衡。本文不是在理论上讨论优缺点的文章,而是从实际出发,展示使用脚本的几种不同方式,并介绍了一个Spring库,这个库提供了方便的脚本基础设施和一些其他的有用功能。
企业级软件开发人员通常会面对如下需求组合(至少我经常遇到的是):设计优良的数据存储结构(有时候是已有的旧数据库模型),大量的数据录入表单,非常复杂的业务逻辑、报表功能、与许多公司其他系统(财会、CRM等)集成,数千并发量。对此,你首先考虑的是什么?
做为开发人员肯定听客户说过:“你们的产品还不错,但是还有些细节需要完善”, 然后收到一份有数百个需求的“待完善细节”清单。 做为项目经理肯定也跟团队说过:"公司即将拿到一个大单,但是需要咱们先。。。。。。" ,结果往往变成开发人员头疼不已地去满足客户的各项愿望清单。
CUBA China是CUBA-Platform在中国的合作伙伴,是由多名具有十年以上丰富的行业软件、工具软件开发经验的开发人员组成的团队,同时部分团队成员具有长期的跨国公司工作背景。