“ Real-World JavaFX Apps”系列中的第三个应用程序是一种重型数据输入应用程序,由称为HRC-Matic的关系数据库支持。 它是由AISO在日内瓦开发的。 AISO是一家专门开发基于JavaFX的业务应用程序的公司。 他们还在研究我在本系列的第一个博客( 欧洲广播联盟 )中介绍的应用程序。
瑞士当局使用HRC-Matic来注册企业(所有权,法律地位,资金,联系人)。 该应用程序将在安装它的每个州中被大约20个用户使用。 该软件目前正在纳沙泰尔,日内瓦,沃州和弗里堡地区进行最后批准阶段。
下图显示了应用程序呈现给用户的各种形式。 如您所见,这全部与数据输入有关。
该项目面临的最大挑战是表格视图的局限性以及对键盘导航的总体支持。 我被聘为HRC-Matic项目的顾问,并且对使键盘导航顺利进行(尤其是与表格视图结合使用)所做的努力有很多见识。
对于用于快速,大量数据输入的应用程序,用户必须能够高效,快速地输入数据(尽可能少的鼠标交互和键盘敲击),这一点至关重要。 对于表格视图,这意味着用户可以立即开始编辑表格单元,而无需双击它或先按空格键。
用户还应该能够轻松跳转到表的第一行或最后一行。 焦点处理需要是可配置的,以便按下最后一列中的tab键会导致同一行的第一列(如果需要,则显示下一行)以接收焦点。 我被指派自定义标准表视图,并最终成功了,但是要花费大量代码,大量专门知识以及很多摆弄才能达到该目标。
以下是AISO的Jean-Michel Verchere(主任)和ChristopheBédert(信息系统架构师)提供的访谈答案。
一般的问题
您的产品/项目的名称是什么?
产品的名称是HRC-Client,项目的名称是HRC-Matic。 HRC是和“R egistre杜Çommerce”德语和法语分别意为“egisterħandels R” HR和RC的组合。 “ Matic”是指寄存器中的任务自动化活动。
您的用户/客户是谁?
客户是加入该项目的日内瓦,沃州,纳沙泰尔和瑞士弗里堡州的商业登记册。
您的软件的目的是什么? 有什么好处?
HRC的目标是建立一个完整的解决方案,以协助管理瑞士商业登记的全部活动。 该软件用于管理公司注册,修改或注销的请求。 这些请求是由公司代表提出的。 可以通过Web应用程序在Internet上访问公司的公共信息。
该应用程序可以运行吗? 如果是的话,从什么时候开始。 如果不是,您打算什么时候上线?
该产品目前处于预生产阶段,并将于9月底在所有站点投入生产。
您的项目预算多少?
整个项目的总预算为180万美元。 对于HRC JavaFX客户本身,预算为100万美元。
发展历程
您是如何将必要的JavaFX专有技术带入您的团队的? (顾问,内部/外部培训课程)?
JavaFX专业知识是在内部建立的。 AISO已经在Java方面具有很强的技能,尤其是在Swing中。 AISO为Swing的发展开发了自己的内部框架,称为JEntity。 随着JavaFX的到来,设计了一个新的框架:JEntityFX。 Dirk Lemmermann向该框架提供了他的外部视野和出色的框架专业知识。
您是从哪个版本的JavaFX开始的? 一二八
最初,该项目是用Swing编写的。 在开发的开始,发布了JavaFX版本2,并切换到JavaFX。 今天,该应用程序已适应JavaFX 8。
您何时开始开发该应用程序,它花了多长时间?
开发于2012年底开始,历时3年。
有多少开发人员从事此工作? 总体上和在用户界面上。
核心团队由2个开发人员组成。 其他开发人员有时也为UI和其他模块做出了贡献。
应用程序有多大? 代码行,类数。
旧的应用程序大约有210个屏幕。 使用JavaFX,应用程序UI可以响应分组,简化和通用的屏幕。 因此,该应用程序包含约60个屏幕,这些屏幕具有许多主/从关系,并具有数据库中的约110个关联表。
JavaFX客户端有多大? 代码行,类数。
170'000线,3'074班
您为什么选择JavaFX作为前端技术? 非常重要的一点:为什么不选择HTML / Web?
客户需要真正的可持续性(8至12年)。 先前实现的开发始于1992年,并于2007年结束。必须能够提供与先前版本相同的功能和行为。 JavaFX的唯一替代品是Microsoft .Net。
由于以下原因,排除了Web技术:
- 无法保证可持续性。
- 短期技术生命周期。
- 低性能风险。
- 客户使用的各种Web浏览器存在兼容性风险。
- 由于网络技术的变化而导致的升级费用。
说服决策者同意JavaFX难吗?
最初,该项目应该是用Swing编写的。 我们必须说服我们的客户,主要是所涉及的IT部门,他们担心JavaFX对于这种类型的应用程序不够稳定。
您在JavaFX部分面临的最大挑战/问题/问题/错误是什么,您如何解决它们?
键盘导航:在整个应用程序中,键盘导航和实现标准键功能存在很多问题。 这个想法是要有一个使用最少的鼠标就可以使用的应用程序。 若要解决此问题,我们必须用自己的控件来替换受影响的控件EventDispatcher。
可编辑的TableView:我们必须重写标准TableView并重写焦点系统,因为从用户体验的角度来看,标准的可编辑TableView无法正常工作。
您使用了哪些第三方产品/框架/工具(开源和商业),为什么选择它们?
我们内部的JavaFX框架JEntityFX(尚未发布)。
您是否混合了JavaFX和Swing代码?
没有
外表
您会在下一个项目中再次使用JavaFX吗? 请详细说明原因或原因。 您对其他公司/项目的JavaFX有哪些建议?
是。 JavaFX没有限制。 我们已经开发了自己的专业业务应用程序框架,该框架将用于将来的所有富客户端应用程序。
必须有一个框架来结构化和工业化JavaFX开发。
这使我们能够专注于应用程序的功能方面以及对用户具有高附加值的特定组件的开发。
您希望将哪些功能添加到JavaFX?
在可编辑模式下重做TableView。
您打算提供移动版本的应用程序还是移动附件?
不,不是在不久的将来,但是我们正在为将来的项目考虑这一点。
翻译自: https://www.javacodegeeks.com/2015/09/javafx-real-world-apps-aiso-hrc-matic.html