网站备案增加域名解析,企业网站推广的方法有哪些,株洲论坛网,小米发布会直播在线我们很自豪地宣布新版本的CUBA平台和Studio全面上市#xff01; 也许这是有史以来功能最丰富的平台版本之一–在各个级别都有重要的变化#xff1a;体系结构#xff0c;可扩展性#xff0c;API可用性和性能。 本文介绍了该平台的主要增强功能。 发行说明中提供了完整的更… 我们很自豪地宣布新版本的CUBA平台和Studio全面上市 也许这是有史以来功能最丰富的平台版本之一–在各个级别都有重要的变化体系结构可扩展性API可用性和性能。 本文介绍了该平台的主要增强功能。 发行说明中提供了完整的更改列表 Platform 6.3发行说明 Studio 6.3发行说明 应用组件 如您所知平台始终具有功能分解的机制一方面平台本身被拆分为核心和附加组件另一方面具有创建扩展项目的能力。 扩展机制受到限制因为它只能在垂直方向上工作–您可以为一个基础项目创建许多扩展但不能创建类似于CUBA Reporting或BPM的加载项与其他加载项组合在最终应用程序中使用并在其他项目中重复使用。 现在通过引入应用程序组件的概念解决了该问题。 使用应用程序组件您可以将大型应用程序分解为一组功能模块并将它们开发为单独的项目。 此外这些模块可以重复使用–您可以将它们包含在不同的应用程序中就像使用CUBA高级附加组件一样。 例如在出租车管理应用程序中组件的结构可以如下 在这里CUBA报告和全文搜索是平台提供的组件。 信用卡付款和定价是可重用的组件可在不同的应用程序中使用 驱动程序工资包含仅提供给某些客户的可选功能。 这种可选的依赖性意味着您不仅可以在开发中而且可以在部署阶段将应用程序组件包括在应用程序中。 实际上一个应用程序组件或应用程序组件只是一个公开一些有关其自身信息的应用程序。 有关模块配置属性和组件工件的信息包含在一个特殊文件中app-component.xml; 特殊的JAR清单条目用于自动发现类路径中的组件。 应用程序组件也可以看作是全栈库它们提供所有级别的功能包括实体数据库DDL脚本中间件服务UI屏幕甚至CSS主题。 如果要使其成为组件Studio会为当前项目自动生成app-component.xml。 只需使用“项目属性”选项卡上的链接。 为了在应用程序中使用组件请编辑项目属性然后将该组件添加到“自定义组件”列表中。 您可以在文档中看到创建和使用应用程序组件的示例。 支持多个数据存储 到目前为止平台机制只能与为应用程序选择的单个数据库一起使用。 您可以直接通过JDBC或其他连接使用其他数据源但是它太复杂了无法在标准UI组件中显示和编辑此类“外部”数据。 CUBA 6.3中实现的数据存储概念旨在解决使用相同的标准平台机制例如数据感知可视组件在单个应用程序中处理来自不同来源的数据的问题。 数据存储实际上是具有几种用于加载和保存实体的方法的接口。 该平台当前包含此接口的一种实现允许通过ORM层处理关系数据库。 您可以在项目中创建自己的数据存储实现例如与NoSQL数据库内存网格或与其他应用程序集成。 当您在应用程序中使用多个数据存储时其数据模型将包含映射到来自不同位置的数据的实体。 如果数据存储区是RDBMS则实体将被注释为JPA持久类。 否则实体将是非持久性的自定义数据存储实现负责将实体映射到数据。 一个应用程序将始终具有一个连接到RDMS的“主”数据存储区以存储平台实体例如用户角色过滤器等。应用程序实体可以分散在任意数量的不同存储区中。 例如下图表示应用程序的数据存储结构该应用程序在数据库级别与ERP系统集成在一起使用MongoDB作为文档存储并使用REST API连接到远程信息系统。 CUBA的本机零件以绿色显示自定义零件以黄色显示。 混合数据模型和定制数据存储为创建微服务或更具体地说 自包含系统 开辟了道路。 假设您有一个Sales应用程序其中包含用于管理客户和产品的功能。 您可以将应用程序分为三个独立的项目SalesCustomers和Products每个项目都有自己的数据库和UI。 在“销售”应用程序中您将创建两个其他数据存储库以与其他应用程序集成。 在最简单的情况下数据存储可以是内置的RdbmsStore因此Sales应用程序将仅连接到其他数据库。 为了实现更宽松的耦合您可以使用REST API创建自定义数据存储并将远程数据映射到Sales数据模型的非持久实体。 因此您将拥有三个相对较小的独立应用程序客户和产品可以独立工作销售包含基于标准CUBA机制但使用远程系统数据的业务逻辑和UI。 现在来自不同数据存储的实体不能具有直接关系。 这意味着如果您要创建来自不同商店的实体的引用则必须为“外国”实体的ID创建一个持久属性为该实体本身创建一个非持久属性并处理其加载和保存以编程方式。 在将来的平台版本中我们将提供在应用程序级别上链接实体的简单声明方式。 使用Studio您可以在“项目”属性页面的“高级”选项卡上快速配置其他数据存储RDBMS或自定义。 有关数据存储配置的详细信息请参见文档 。 基础实体类 我们重构了实体的基类 以使它们更加轻巧。 现在最小实体只能具有一个必需的系统属性-id并且可以将其映射到几乎任何数据库类型包括IDENTITY。 此外还支持复合键。 这意味着现在您可以为几乎所有现有数据库创建CUBA实体而无需修改其架构。 因此例如您的新CUBA应用程序可以与旧版数据库以及旧版系统同时使用。 它还允许您通过连接第三方数据库作为其他数据存储来与第三方系统集成。 单点登录 CUBA应用程序的单点登录SSO允许用户通过在浏览器会话中输入一次登录名和密码来登录到多个正在运行的应用程序。 在使用多个系统时此功能对于无缝的用户体验至关重要。 当不使用LDAP集成时它还可以帮助管理员在一处管理用户密码。 由于任何CUBA应用程序都可以是身份提供者IDP它是SSO基础结构的核心元素因此CUBA SSO只需很少的设置即可。 所有配置都可以在部署阶段完成因此在开发应用程序时不必担心。 该图显示了具有两个应用程序的SSO系统。 应用程序1同时是身份提供者和服务提供者即只是提供某些功能的应用程序。 它包含一个特殊的登录表单显示给SSO系统的所有用户。 App 2是服务提供商它将用户重定向到App 1 IDP进行登录。 用户密码仅由IDP检查但用户角色和权限是完全分开的。 请参阅文档中有关单点登录的更多信息。 匿名用法 现在您可以创建具有可用的UI屏幕的应用程序而无需登录。 该平台包含一个预定义的“匿名”用户因此代表该用户执行登录之前运行的所有应用程序代码。 默认情况下匿名用户具有所有权限因此在允许匿名访问之前请不要忘记创建仅具有必需权限的角色。 工作原理应用程序中有两个顶级窗口登录窗口和主窗口。 前者适用于匿名用户后者适用于经过身份验证的用户。 默认情况下登录窗口仅包含登录表单但是您可以向其中添加任何可视组件和数据源甚至可以添加主窗口元素例如用于打开其他屏幕的WorkArea。 为了创建您自己的用于匿名访问的登录窗口请转到Studio中的“屏幕”部分然后单击“创建登录窗口”。 新的REST API 平台上已包含很长时间的通用REST API的第一个版本并不是完全RESTful的-它实际上是一个Web API可通过HTTP提供CRUD和查询执行。 在平台版本6.3中我们引入了一个全新的REST API v2 该API符合REST的体系结构样式URI和HTTP动词的使用OAuth2身份验证。 与改进的JSON序列化一起新的REST API大大简化了Web和移动客户端应用程序的创建。 除了使用实体进行CRUD操作之外REST API v2还允许您执行预定义的JPQL查询并调用服务方法。 方法必须由开发人员明确允许并且可以接受和返回简单类型实体和POJO以及这些类型的集合。 这种灵活的服务处理方式使您不必创建仅用于将Java类型转换为JSON的Spring MVC控制器-这种转换通常可以自动完成。 因此您只需在中间件上创建常规服务然后在rest-services.xml中注册公开的方法。 之后您可以从客户端传递参数并以JSON接收结果来调用这些服务方法。 新的REST API还提供了用于获取当前用户详细信息和权限关于应用程序数据模型的信息以及有关REST API本身的机器可读文档的端点。 屏幕代理 在新的平台版本中有一种机制可让您将UI屏幕调整为适用于不同的设备台式机平板电脑电话。 您只需为每个受支持的设备创建多个版本的屏幕布局并为其指定相同的ID但使用不同的屏幕代理值。 然后在运行时平台将根据用户从中访问应用程序的当前设备选择适当的屏幕版本。 这种简单的方法并不是真正的响应方式因为例如当用户更改设备方向时屏幕将不会变形。 如果您不介意通过媒体查询编写CSS请使用CssLayout容器获取完全响应的屏幕。 查询缓存 毫无疑问使用数据库时缓存是最有效的性能优化。 现在除了实体缓存之外您还具有带有非常简单的API的查询缓存 。 这意味着您可以为ORM查询的LoadContext Query设置数据源的可缓存属性下次您使用相同参数执行查询时该查询的结果将被缓存并重用。 当然当您更新或删除查询中使用的类型的实体时查询会自动从缓存中退出。 不要忘记为查询缓存中涉及的实体设置实体缓存-这两个缓存应该一起工作。 摘要 在结束本文时我想指出大多数改进是针对来自CUBA社区的真实用户请求而做出的。 非常欢迎您在我们的支持论坛上分享有关如何改善平台的想法。 翻译自: https://www.javacodegeeks.com/2016/10/whats-new-cuba-platform-6-3.html