架构问题:GWT 还是 Vaadin 创建桌面应用程序?

2024-04-23

我们计划创建一个提要阅读器 as a Windows 桌面和 iPad 应用程序。正如我们希望能够显示网站 AND 运行(我们自己的)JavaScript在此应用程序中,我们考虑将应用程序作为 HTML/CSS/JavaScript 交付,仅由一些 .NET 控件或 Cocoa Touch Web 浏览器组件封装。因此,当前的任务是找出使用哪个框架来创建要嵌入到应用程序中的 HTML/CSS/JS 文件。

对于 HTML/CSS/JavaScript 的开发,我们很乐意使用 Vaadin、GWT 或其他一些框架,因为我们使用 Java 比使用 JS 好得多。经过短暂的集思广益后,我们倾向于 Vaadin,因为 UI 组件非常好,但我担心大部分繁重的工作将在服务器上而不是在客户端上(这不会太好)。我们也想要 GWT,但是 Java 到 JS 的编译需要大量时间和额外步骤,并且过去使用它时会减慢开发时间。

问题是:您会选择哪个开发框架(假设您想实现这个项目并且到目前为止您主要使用 Java)以及为什么?如果有更好的框架选择(富客户端框架列表 https://secure.wikimedia.org/wikipedia/en/wiki/List_of_rich_internet_application_frameworks), 请告诉我。

编辑:应用程序需要不时与我们的服务器对话(例如同步已读取的内容),但主要应该获取 xml feed 本身。因此,我希望大部分生成的代码可以嵌入到应用程序中,并且不需要我们的服务器进行繁重的活动。

Edit2:我们(实际上,即使你怀疑)预计至少有 10000 个用户。


根据我在 Vaadin 的经验,我会这样做,但您的要求在某种程度上偏向于纯 GWT。

  • Vaadin 需要服务器和服务器连接。如果主要构建离线桌面应用程序,则可以使用嵌入式 Jetty 等来解决此问题。 (仅在需要时与在线服务同步),但对于 iPad,您需要立即连接在线才能启动 Vaadin 应用程序。
  • GWT 完全在客户端运行,您可以构建一个仅在需要时连接的 JavaScript 浏览器应用程序。

由于 Vaadin 的开发速度要快得多,因此您可以先构建一个小型 Vaadin 版本,然后看看这在 iPad 上是否确实存在问题。

另一方面,如果您可以假设立即上网,则可以完全跳过本地服务器安装。只需在线运行应用程序并使用操作系统默认浏览器控件(即您建议的 .NET 控件)实现桌面版本。那么瓦丁就更容易了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

架构问题:GWT 还是 Vaadin 创建桌面应用程序? 的相关文章

  • GWT CellTable 以编程方式选择 CheckBoxCell

    我有一个带有 CheckBoxCell 列的 cellTable 我想做的是在单元格表之外有一组按钮 让用户自动检查 取消检查一组不同的元素 例如检查所有 取消检查所有 但我想要更复杂的规则 我不明白的是如何访问该元素 我想通过行 列值 并
  • 如何在 Vaadin Flow 的 FormLayout 中添加空格?

    例如 如果我有 2 列和 2 行的表单 但希望将第一个第一列中的第二列保留为空 如何在不添加空值 空跨度 的情况下执行此操作 field empty field field 现在我正在做 formLayout add new TextFie
  • 在 Silverlight 中使用 .NET RIA 服务有哪些陷阱?

    Silverlight可以使用WCF Web服务 基于REST的服务 NET RIA服务 但似乎Silverlight和 NET RIA服务是最受欢迎的 我想知道您在使用 NET RIA 服务实际实施 SL 时是否遇到过任何常见问题 如果继
  • 当互联网连接或断开时收到通知

    我有一个在 Net 4 0 客户端下开发的 WPF 和 C 桌面应用程序 必须根据 PC 上的互联网是否可用来显示或隐藏某些数据的框架 这意味着我必须能够尽快检测到互联网是否断开或连接 以便做出反应 例如 断开无线网络或拔掉网络电缆 当我进
  • 如何通过过滤计算 Vaadin 8 网格页脚中的总计

    我知道我必须使用grid getDataProvider 得到ListDataProvider 假设我发送了List to grid setItems 在其他计算页脚总数中我这样做 Collection myItems ListDataPr
  • 通过代码更改 Vaadin 7 中的主题

    我正在 Vaadin 7 中做一个项目 我需要更改页面的主题 在 Vaadin 6 中 有一个名为 setTheme 的函数 这样我就可以在代码中的任何位置使用该函数更改主题 但是 在 Vaadin 7 中 我找不到类似的东西 我知道会有办
  • 如何在c#中访问面板中的控件

    我在 c winforms 中使用面板 并使用循环用图片框的编号填充面板 例如面板名称为panal foreach string s in fileNames PictureBox pbox new new PictureBox pBox
  • 架构问题:GWT 还是 Vaadin 创建桌面应用程序?

    我们计划创建一个提要阅读器 as a Windows 桌面和 iPad 应用程序 正如我们希望能够显示网站 AND 运行 我们自己的 JavaScript在此应用程序中 我们考虑将应用程序作为 HTML CSS JavaScript 交付
  • 从输入跳到 CellTable 中的输入

    我有一个 CellTable 其中包含一堆渲染到的单元格
  • Wicket、页面堆栈和内存使用情况

    Wicket 应用程序序列化并缓存所有页面以支持有状态组件 以及支持后退按钮 以及其他可能的原因 我有一个使用 setResponsePage 在屏幕之间导航的应用程序 在很短的时间内 会话就会变得相当大 因为所有先前的页面都存储在会话中
  • 在Spring+Wicket中上传文件

    要使 Java Web 应用程序 使用 Spring Wicket 开发 接受客户端文件上传到服务器上的特定目录 需要执行哪些步骤 在谷歌搜索这个问题的答案时 我看到建议 WEB INF some directory 应该用作上传位置 这是
  • 如何在 Vaadin 7 表中实现滚动监听器

    在 Vaadin 中 当您在表格中向下或向上滚动时 com vaadin ui Table 不会触发任何事件来告诉您用户正在滚动 为什么我们需要在表格中滚动事件 我们先来看看 Vaadin 这个例子 仪表板演示 http demo vaad
  • 如何使用 Ant 配置惰性或增量构建?

    Java编译器提供增量构建 所以javac蚂蚁任务也是如此 但大多数其他进程则不然 考虑到构建过程 它们将一组文件 源 转换为另一组文件 目标 我在这里可以区分两种情况 变压器cannot获取源文件的子集 仅获取整个集合 这里我们只能做懒惰
  • 如何响应 vaadin 中表格行的点击

    我有以下代码 public Button getBtnSubmit com vaadin ui Button ClickListener l if null l btnSubmit addListener l return btnSubmi
  • 测试 GWT 代码的最佳方法是什么[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 Windows 中将 Electron 应用程序部署为可执行文件或可安装文件?

    我想生成一个独特的 exe文件来执行应用程序或 msi安装应用程序 怎么做 您可以使用以下方式打包您的程序电子包装机 https github com maxogden electron packager然后使用以下命令构建单个安装 EXE
  • gwt 谷歌应用引擎 HTTP 错误 404

    我在 Eclipse 中使用 google 应用程序引擎创建了一个新的 gwt 项目 但是当我运行该项目时 在浏览器中我收到以下消息 HTTP 错误 404 访问 Test html 时出现问题 原因 NOT FOUND 由码头提供动力 现
  • GWT 和 Guava 的问题

    我很难让 GWT 与 Guava 一起工作 我添加了guava r09 gwt jar到我的类路径 并且
  • 如何从传统的java web应用程序(带有web.xml)迁移到spring boot?

    我想将我的项目切换到基于弹簧的产品 我的第一步是将我的 java web 应用程序从生成的 WAR 文件转换为由 spring boot 提供支持的独立可执行 jar 让我们从 github 中获取一个开源 Web 应用程序示例 Vaadi
  • GWT:将自定义小部件添加到单元格丢失自定义小部件的事件

    我们的要求是使用以下命令制作一个可编辑的网格CellTable在其单元格中包含自定义小部件 自定义小部件具有文本框和与文本框关联的搜索按钮 要将自定义小部件添加为单元格 请创建以下子类AbstractEditableCell类 由 GWT

随机推荐

  • 使对象不可调用

    在 JavaScript 中 函数是可调用的 我可以从函数中删除此属性 只留下普通对象吗 var foo function foo callable false pseudocode foo foo is not a function 我可
  • Spring Integration 将路径变量和帖子主体结合到有效负载表达式中

    使用 http 入站网关 我可以使用 SPEL 指定有效负载表达式 该表达式将访问 header requestParams 和 pathVariables 如何同时包含 POST 中的正文 我目前拥有的一个例子是
  • 将 tar.gz 转换为 zip

    我的 Ubuntu 网络服务器上有大量 gzip 压缩档案 我需要将它们转换为 zip 我认为这可以通过脚本来完成 但是我应该使用什么语言 以及如何解压缩和重新压缩文件 我会用一个bash 1 单行 for f in tar gz do r
  • 任务编辑文档预览组件Alfresco

    第一个问题 我想以工作流程任务编辑的形式实现文档预览 我该怎么做 我尝试去适应document details xml and document details ftl to workflow details xml and workflo
  • R 中按值传递

    当尝试调用 grid arrange 将多个图放在同一个 ggplot2 图上时 我首先构建一个我想要的图的列表 然后我构建相应的参数列表来调用 grid arrange 如所解释的在上一个问题中 https stackoverflow c
  • 使用登录名签出 svn+ssh

    我想从存储库中签出一些内容 但是我输入 svn co svn ssh URL 我被要求输入密码 我想他使用的用户名来自我的控制台 但两者不一样 那么我如何使用不同的登录名使用 svn ssh 签出某些内容呢 SSH 允许您在连接 URL 中
  • 通过python从netCDF中提取特定位置的数据

    我是 Python 的新手 也是 NetCDF 的新手 如果我不清楚 请道歉 我有一个包含多个变量的 nc 文件 我需要以新的顺序从这些 nc 文件中提取数据 我的 nc 文件有 8 个变量 经度 纬度 时间 u10 v10 swh mwd
  • 如何“安装”Action Bar Sherlock?

    我正在尝试使用 Action Bar Sherlock 构建示例项目 Action Bar Styled 我在这里下载包含 ABS 的 zip 文件http actionbarsherlock com http actionbarsherl
  • ReactJS onclick 添加或删除类到另一个元素

    我正在努力将我的普通 jQuery 代码转换为 React JS 我是 React 新手 我有以下代码 add click function nav addClass show remove click function nav remov
  • 如何将单个部分中的 Sphinx 章节分成不同的文件?

    我正在使用出色的 Sphinx 工具来创建一些文档 并且我试图通过将同一部分的章节分成单独的文件来保持代码库的模块化形式 请参阅此处了解 章节 和 部分 的定义 http www sphinx doc org en stable rest
  • Homestead 给出 404 Not Found

    我正在尝试启动并运行 Homestead 2 0 以用于 Laravel 的本地开发 我跟着Laracast https laracasts com lessons say hello to laravel homestead two 但我
  • 画布已被跨源数据本地图像污染

    这个问题已经被问了很多次 但我只是不明白为什么这种情况会发生在我身上 基本上 我有一个画布和一个图像 当我尝试这样做时 var canvas document getElementById somecanvas var ctx canvas
  • 使用 NodeJS 和 Restify 重定向客户端

    我正在使用 NodeJS Restify 和 PassportJS 为 SPA 构建 REST 后端以进行身份 验证 除了最后一步之外 一切正常 即将客户端从后端 login facebook callback 重定向到应用程序的主页 我在
  • Ninject + ASP.NET MVC + InRequestScope

    我的 Ninject 有问题 我的绑定规则 this Bind
  • 从搜索中排除文件夹,但不从项目列表中排除

    我有几个不同的项目具有相同的core 我需要的只是将所有非当前项目标记为excluded以避免搜索它们 简单搜索 shift cmd n 等 换句话说 我想获得以下搜索结果core current project 有什么办法吗close一些
  • Angular:如何以法语格式显示日期

    我是 Angular 初学者 我阅读了 Angular 的文档 对于这样一个基本的事情来说很难 我希望我的应用程序中的日期和其他内容具有法语区域设置 而不是默认的 en US 我开始阅读这篇 Angular文档 https angular
  • 在 showModalBottomSheet 外部单击时,如何控制传递给 Navigator.pop() 的内容?

    我启动一个模态底部工作表 然后使用返回的数据作为其未来 var modalFuture showModalBottomSheet modalFuture then data Use data 我通过以下方式从模态小部件返回数据 Naviga
  • 为什么不允许 constexpr 局部变量作为默认函数参数?

    我想我明白为什么 C 不允许local变量作为默认函数参数 int main auto local 1024 auto lambda auto arg1 local illegal use of local variable as defa
  • 如何获取通知下拉背景颜色,并在启用夜间模式时确定最佳文本颜色?

    最近 我的用户向我发送了以下屏幕截图 当时启用了 Android 9 0 Pie 与 Android 操作系统夜间模式 正如您所看到的 股票名称不可见 因为股票名称采用了黑色 在正常的白色主题中 它应该如下所示 这是我用来突出显示文本颜色的
  • 架构问题:GWT 还是 Vaadin 创建桌面应用程序?

    我们计划创建一个提要阅读器 as a Windows 桌面和 iPad 应用程序 正如我们希望能够显示网站 AND 运行 我们自己的 JavaScript在此应用程序中 我们考虑将应用程序作为 HTML CSS JavaScript 交付