Errai体验:用户界面、通信、依赖注入

9
我在GWT、GIN和GWTP-dispatch方面有丰富的经验,但我对Errai没有任何经验,所以我想问一下,把Errai作为基础来构建整个单页面富Web应用程序是否真的是一个好选择。 如果您对Errai有广泛的经验,那么听到您的意见将会很棒。
我正在构建一个视频流Web应用程序。假设它是另一个类似于YouTube的网站(包括布局、操作和流程等),但具备更强大的功能(这些不相关)。
我已经阅读了Errai的全部文档,以下是我关注的问题/疑问。
  1. Errai JAX-RS - 我对 Errai 最著名的消息传递方式,如服务器->客户端、客户端->客户端、广播和会话等,并不感兴趣。我只想通过 RS 进行简单的 AJAX 调用。显然关注点是通信性能,避免冗余调用,只有单个 HTTP 请求和响应?
    这里提到的限制(How do you integrate GWT with a JAX-RS/RESTEasy server using Errai?)如今是否仍然存在,并且我必须考虑一些 Errai 的限制来实现 REST 服务?

  2. Errai IoC/CDI - 对我来说,GIN 更成熟,绝对更受欢迎(具有所有优点)。但看起来它们可以完美共存,还是我应该选择其中之一?可以通过一个注解注入许多 Errai bean(如 Caller),这很好。从我的理解来看,我不需要 CDI。如果我在项目中使用 Errai IOC,那我会获得哪些额外的功能与 CDI 一起?我是否必须将其添加到类路径中,以便 ioc 容器实例化所有内容?
    我是否理解正确:IoC 可以实现简单的连接,而 CDI 是我可以配置和实例化将被注入的 bean 的地方?例如,@Produces 在 CDI 中,而不是在 IOC 中。您能否解释在纯 DI 的上下文中 Errai IOC 和 CDI 之间的区别是什么?我知道其中一个是另一个的超集,但我仍然不太明白。

  3. Errai 数据绑定:非常好的功能,但它扭曲了 MVP 模式。我目前使用基本的 MVP(没有 MVP 框架,也没有 Model 和 View 之间的交互)。我能否从 Presenter 控制 @Model 上的数据绑定,而不是从 View 上进行控制(这将利用带有 Errai UI 的 HTML 模板)?

  4. Errai UI - 在数据绑定和将 View 类与模板连接起来的情况下,如 GWT 中现有的小部件(例如 CellTable)如何处理?
    一般来说,当使用 Errai 编写更复杂的小部件时(例如图像库和分页器),您采用什么方法?您会利用现有的 GWT 小部件(如 CellTable)——单个重量级小部件——还是在 html 模板中布局所有内容,并仅将某些 div 连接到 View 类中对应的数据字段——更轻量级的小部件?我遇到了 Errai UI 的一位作者的观点:
    Errai UI 的好处是,您只需将此模板文件放入项目中,然后说“好吧,这个模板片段属于此组件”或“这个模板片段属于另一个组件”。然后您就可以将它们连接在一起,您的模板就会在浏览器中栩栩如生。
    那么,假设我有整个图像库的 HTML 布局。显然,我不想使用 CellTable 重新创建它,而是利用该布局,因此我必须能够:创建整个图像库作为 Composite,它本身必须与布局中最外层的元素进行连接,并将每个数据字段与我的 Composite 类中对应的属性连接起来。这可能吗?

    服务器应该与GWT/Errai无关: 在服务器端,我希望尽可能少地使用Errai(因为我不需要任何花哨的通信功能,如我所说),并使用Spring在Jetty或Tomcat中维护应用程序。

    通过添加一个新技术作为基础,即在其上构建整个应用程序,总会存在一定的风险,即它可能不够灵活,这意味着需要一些hack来克服不可预见的障碍,或者在某些可怕的情况下,整个技术将不得不被放弃。

    最后一个简单的问题:Errai的在线javadoc在哪里?


也许你可以在Errai用户论坛上得到一个合适的答案。 - Gilberto Torrezan
@piotrb86 目前也面临同样的问题。你找到任何回答你问题的资源了吗? - ilya
你使用了什么技术? - masterdany88
1个回答

1
简短回答,使用GWT构建应用程序在Errai的支持下变得更加简单和有结构。基于HTML的模板允许您使用标准Web技术构建Web应用程序,无需处理UiBinder或特定领域语言。页面驱动方法使您可以逐页处理应用程序域问题,这对于任何Web应用程序来说更加自然,毕竟我们是逐页浏览网页的。JBoss Errai框架还有许多其他值得您喜欢的功能。希望这回答了您长期以来的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接