首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Apache与Apache的区别

Apache与Apache的区别
EN

Stack Overflow用户
提问于 2009-03-18 08:23:47
回答 8查看 18.9K关注 0票数 47

Apache ( http://wicket.apache.org/ )和Apache ( http://wicket.apache.org/ )都是,它们都是面向组件的web框架--这与Apache基于操作的框架(如Stripe)相反。这两种方法都允许您使用Java组件构建应用程序。他们俩看起来都很像我。

这两个框架之间有什么不同?有人在这两方面都有经验吗?具体地说:

  • 它们的性能如何,状态处理可以定制多少,是否可以无状态地使用?
  • 它们的组件模型有什么不同?
  • 你会为哪种申请选择什么?
  • 他们如何与Guice,Spring,JSR 299集成?

编辑:我已经阅读了两者的文档,并且两者都使用过。这些问题不能从阅读文档中得到足够的回答,而是从一段时间使用这些文档的经验中得到的,例如,如何在无状态模式下为高性能站点使用Wicket。谢谢。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-08-13 18:18:55

在我看来,有一些相关的差异:

  • Tapestry使用半静态页面结构,您可以使用条件和循环来实现动态行为。Wicket是完全动态的;您可以动态加载组件,在运行时替换它们等等。这样做的结果是Tapestry更容易优化,Wicket在使用上更灵活。
  • 这两种框架的执行效率大致相同,但Wicket依赖服务器端存储(默认情况下,会话中的当前页面和“二级缓存”中的过去页面是文件系统中默认的临时文件)。如果这让您感到困扰,请考虑您期望在高峰时间有多少并发会话,并计算每个会话大约100 on (这可能是偏高的)。这意味着您可以大致支持2GB的20k并发会话。比如说15k,因为你也需要其他东西的记忆。当然,存储状态的一个缺点是它只能很好地处理会话关联,所以这是使用Wicket时的一个限制。该框架为您提供了实现无状态页的方法,但是如果您正在开发完全无状态的应用程序,您可能会考虑使用不同的框架。
  • Wicket的目标是在最大程度上支持静态类型,而Tapestry更多的是保存代码行。因此,使用Tapestry,您的代码库可能更小,这有利于维护;使用Wicket,您可以使用静态类型进行很多操作,这使得使用IDE导航和使用编译器进行检查变得更容易,这也有利于维护。两个人都有话要说。

我已经读过几次了,人们认为Wicket是通过继承来工作的。我想强调,你有选择的余地。有一个组件的层次结构,但是Wicket也支持通过像IBehavior这样的构造(例如Wicket的Ajax支持构建在上面)来支持组合。最重要的是,您可以使用一些阶段侦听器Wicket提供的转换器和验证器,将它们添加到组件中,或者甚至作为横切关注点添加到组件中。

票数 41
EN

Stack Overflow用户

发布于 2009-03-18 13:06:21

在研究Tapestry 5之后修订了

Wicket的目标是试图使web开发类似于桌面GUI。他们以牺牲内存使用( HTTPSession )为代价,成功地做到了这一点。

Tapestry 5的目标是使非常优化(用于CPU和内存)面向组件的web框架。

对我来说最大的缺点是响应"Wicket支持无状态组件!“关于"Wicket是内存饥饿“的论点。虽然Wicket确实支持无状态组件,但它们并不是“Wicket开发的焦点”。例如,StatelessForm中的一个bug在很长一段时间内没有得到修复--参见StatelessForm -验证失败后参数的问题

  • 使用Wicket的IMHO有点eaiser,直到您要优化/微调web应用程序参数为止。
  • 如果您已经编写了web应用程序,并且想从请求处理的角度考虑,则IMHO Wicket就更难学习了。
  • Tapestry 5一旦更改组件类,就会自动重新加载组件类。这两个框架都重新加载组件标记。
  • Wicket强制标记/代码分离(),Tapestry 5只是给了您这种能力。您也可以在Tapestry 5中使用较少的详细语法。与往常一样,这种自由需要采取更多的谨慎措施。
  • Wicket的核心更易于调试:用户组件基于继承,Tapestry 5用户组件基于注释。对于Tapestry和Wicket来说,这可以使转换到未来版本变得更容易。

不幸的是,挂毯5教程没有强调Tapestry代码示例,比如t:循环source=“1..10”.‘可能是个坏习惯。因此,如果您的团队不是很小,那么应该在编写Tapestry使用约定/良好实践方面做出一些努力。

我的建议

  • 当页面结构非常动态时使用Wicket,并且每个用户可以花费10-200 Kbs的HttpSession内存(这些是粗略的数字)。
  • 在需要更有效地使用资源时使用Tapestry 5
票数 36
EN

Stack Overflow用户

发布于 2009-08-06 16:43:34

下面是IBM开发人员工作的比较。

http://www.ibm.com/developerworks/java/library/os-tapestrywicket/index.html?ca=drs

更新:链接已死,但您可以在http://web.archive.org/web/20131011174338/http://www.ibm.com/developerworks/java/library/os-tapestrywicket/index.html?ca=drs上找到该页面

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/657352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档