繁体   English   中英

Struts 1.x 与 Struts 2.x

[英]Struts 1.x vs Struts 2.x

我已经回顾了一些关于 SO 的 Struts 1 vs 2 问题,但似乎没有一个从我正在看待的角度回答这个问题。

我即将开始构建一个新系统,一个非常旧的桌面应用程序的完整重新设计。 目标是使其基于 web,添加更多功能,使其更可用等(通常的重新设计原因)。

将开发该系统的团队主要是 Java 开发人员,并且在过去 5 年中广泛致力于 Struts 1.x。

该系统打算在未来多年使用,因此在 3-5 年内出现更好的框架时再次重新设计的想法是不可行的。 它不打算大量使用 AJAX。

我的问题是,当我的团队对 Struts 1.x 非常有经验时,我为什么还要费心迁移到 Struts 2。 我知道有一些改进,但我担心让团队加快速度所浪费的时间、由于使用不正确而导致的返工等将远远超过我们从 Struts 2 中获得的任何好处。我们喜欢 Struts 1,它做了我们想做的事需要这样做,并且所有的设计模式、标准、最佳实践等都已到位。

Struts 2 中是否有任何杀手级功能或我在 Struts 1 中不知道的严重问题会影响继续使用 Struts 1 的决定。

如果您从头开始构建系统,我肯定会使用 Struts 2.x 版。 对于 Struts 1.x 团队来说,学习曲线不会很好,但您将能够利用最新的 MVC 框架。

对我来说,Struts 2.x 将提高生产力的两个主要特性是:

  • 内置 AJAX 支持
  • 没有更多的 ActionForms - 如果需要,您可以直接绑定到域对象,所以这个中间步骤已经过去了。

如果您正在处理一个大型项目,您可能需要查看一个组件框架,例如 JSF 2 或 Wicket。 如果你决定继续使用基于 Action 的框架,那么我个人认为 Stripes 是一个更高效的框架。

Struts 1.x 是 2000 年的老式技术。 为什么你甚至会考虑在一个全新的应用程序上坚持使用它?

我可以看到的最大缺点是 Struts 将您锁定在基于 JSP 的浏览器 UI 中。 Struts Actions 只能在框架内重用。 如果需要,您将很难将移动设备无缝集成到该系统中。

我会开始考虑 web 服务,最好是基于 REST 的服务和 AJAX。 世界变了。 我会寻找 Struts 的替代品,例如 Spring 或 Play。 选择一个新的 web 框架并不是什么大不了的事,但好处可能是值得的。

那些在过去五年里除了使用过时的框架外什么都没做的员工也会感谢你。 是时候学习新技能了。

更新:如果您已经尝试过,并且不能迟到,并且限制太多,那么我会说您已经知道答案。 来到这里希望得到什么? 我没有看到你没有考虑清楚的论点。

鉴于您的团队在Struts 1.X和您的产品方面也很稳定,因此我看不到迁移到Struts的充分理由2. Ze9713Ae04A02A810D6F33D956F42794Z似乎也同意Z80791B3AE7002CBB88C2C2468C246D9.BBB88C29.DARTRESTRIND。 org/roadmap.html#migrate_s1

我想而不是问“坚持使用 Struts1 还是转移到 Struts2?” 你最好问“坚持使用 Struts1 还是转向基于现代动作的 MVC web 框架?”。 为什么要搬家? 因为 Struts1 很旧而且(坦率地说)很烂。 为什么不能动? 因为我们必须学习一个新的框架。 当然,你知道你的资源,你必须进行评估。 但请记住,现代基于动作的框架(Struts2、SpringMVC、Stripes)非常容易学习,如果您的团队已经了解 Struts1,则更是如此。

我自己,我已经从 Struts 迁移到 Struts2,现在我不想回到 Struts1 编程(那些笨拙的 ActionForms。)。 我认为 Struts2 要好得多,但也必须考虑到 Struts2 也有其弱点。 项目看起来不是很健康,社区看起来也不是很活跃,Struts1 到 Struts2 的跳跃并不大,但不像版本变化那么小(“Struts2”是用词不当),而且可能不会更小即跳转到 SpringMVC。 所以我建议考虑它(或条纹)。

更一般地说,Struts 2.x 分层框架与 Struts 1.x 相比。 例如在数据层,Struts 2.x 在 VO 和 DAO 之间有 DO 层。类似地,下面的链接中提到了其他特性。

http://struts.fromdev.com/2008/08/struts-1-vs-struts-2.html ..

由于您的团队在使用 struts 1.x 方面经验丰富,我认为将您的代码迁移到 struts 2.x 不会花费更多时间。

请具体说明您期望什么样的差异..

在 struts2.0 中有更多的功能和优势,在 struts2.0 中没有表单梁,一个良好而强大的完整验证框架,并且大多数导入到 struts2 中的每个实例都只有一个实例。孔应用的一个实例。

所以选择是你的。 :)

主要原因是迁移到 struts 2.x 来代替 struts 1.x 是 struts 1.x 处于维护阶段,现在没有太多积极的开发。

现在从一个对 struts 1.x 有很好理解的团队开始,他们会很快得到底层系统。但在此之前让我明确一点。 struts1.x 与 struts 2.x 没有相似之处,唯一的相似之处是从父母那里继承的名称。 struts2具有以下优点。

  1. 基于行动的框架
  2. 强大的 Ajax 支持
  3. 拦截器方法(框架的核心) 4 从服务中解耦让 API 这意味着普通 POJO,因此单元测试会容易得多

但我的观点很简单,struts2 和 struts1 仅在名称上相似,但在底层架构方面却大不相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM