Apache Wicket( http://wicket.apache.org/ )和Apache Tapestry( http://wicket.apache.org/ )都是面向组件的web框架 ,与Apache基金会的Stripes等基于动作的框架相反。 两者都允许您从Java组件构build应用程序。 他们两个看起来都很像我 这两个框架有什么区别? 有两个人都有经验吗? 特别: 他们的performance怎么样,状态处理可以定制多less, 可以使用无状态吗? 他们的组件模型有什么不同? 你会select哪个应用程序? 他们如何整合Guice,Spring,JSR 299? 编辑 :我已经阅读了两个文件,我已经使用两个。 这些问题不能从阅读文档中充分回答,而是从使用这些文档一段时间的经验,例如如何将Wicket用于高性能站点的无状态模式。 谢谢。
我以前用java的play2。 这感觉有点像样板,特别是如果你用java与akka。 但这不是框架的错误。 昨天我读“斯卡拉不耐烦”,我真的很喜欢这种语言。 现在我看了两个框架Lift 2.5和Play 2.0.3。 我认为电梯有更高的学习曲线,我不能只是做一些事情。 这不适合我。 从我看到的,Lift有一个非常漂亮和干净的devise。 但对我而言,很难说出主要的差异。 我认为这两个框架都很棒。 视图优先的方法不允许你在你的模板中编码,而是你必须在代码片段。 我很喜欢这个,因为它看起来更有组织性。 它也让你使用一个正常的HTML编辑器。 (我没有太多的经验,这只是我的第一印象) 为了安全起见,我不认为这是框架的工作。 无状态/有状态:很难区分主要区别在哪里。 我只知道如果你使用networking套接字,游戏也有一个状态。 按F5后,这两个框架都能够编译。 我非常喜欢这个function。 这两个框架都使用sbt 电梯来与授权,但我认为有一个play2斯卡拉插件,做同样的事情 Lift有一个用于mongoDB的ORM映射器。 因为我想使用noSQL,这对我来说看起来更清洁。 (再次没有太多的经验) 编辑有一个scala mongodb在play2的ORM映射器https://github.com/leon/play-salat asynchronous – 播放2使用Akka。 不知道电梯使用什么,但他们也有类似的东西。 Lift提供CSRF支持。 Play2有一个CSRF模块,但是这样会为您的代码添加样板。 无状态身份validation似乎有一些安全漏洞。 这两个框架都有状态validation。 (play2有状态/无状态,电梯有状态) 每个框架的优点是什么?
我太累了,不得不每隔一天学习另一个Java Web框架。 JSP,Struts,Wicket,JSF,JBoss Seam,Spring MVC等等,这些无数的框架都试图解决相同的问题。 但是,他们中没有一个真正解决了根本问题 – 这就是为什么一直都会有越来越多的新问题出现。 大多数人对第一印象看起来非常明亮和shiny,因为他们简化了简单的事情。 但是一旦实现了真实世界的用例,就会遇到问题。 通常,框架不提供任何帮助,而是根据框架本身的逻辑和环境来阻碍和限制select。 总之,使用框架时我看到以下缺点: 大多数情况下是一个陡峭的学习曲线,在开始之前,您首先需要了解一些相当学术的概念,并了解一堆configuration文件的含义和位置。 文档通常或多或less是可怕的,或者缺less公共可访问的在线参考,无奈过时,将不同的不兼容版本或所有这些混在一起,并且通常不提供任何有用的示例。 这个框架由数以万计的类组成,这使得仅通过浏览源来理解预期的用途几乎是不可能的。 因此,您需要购买一些“21天内虚拟用户的XYZ”types的用户界面不佳的书籍,因为他们缺less全文searchfunction,而且随身携带。 要真正使用这个框架,你需要通过记住足够的类和方法名称,直到你的头上充满了愚蠢和无用的信息,而不能用于其他任何东西。 有一个很大的开销,放慢你的应用程序的性能,让你的大脑感到麻木,试图了解真正发生的事情。 在现实世界中,由于生产力的压力,通常没有时间去熟悉新事物。 作为这种边做边学的结果,人们总是只看最快的方式来完成下一个任务,而不是真正理解新的工具和可能性。 遵循一个标准的观点将允许一个新项目的人快速入门在我看来是无效的,因为即使在同一个公司内,每个项目都使用不同的框架(至less在我的情况下)。 在我看来,爱因斯坦以下的引用很适合这里: “我们不能用创造它们时使用的同样的思维来解决问题。” 回到我过去很好的PHP编程时代,编码仍然很有趣,也很有成效,我曾经为大多数事情编写自己的框架,只是从一个项目复制粘贴到下一个项目。 这种方法付出了很多,导致了快速开发,没有任何开销和框架,实际上比大多数Java框架,但只有几百行代码在单个文件加上一些简单的mod_rewrite规则。 这当然不是解决networking开发的所有问题,但是简单,快速和直截了当。 在完全适应当前项目的要求的同时,它也很容易扩展,并且由于零开销而具有非常高的性能。 那么为什么所有这些使用这个框架的麻烦,为什么不把它们全部扔掉,并回到根源呢? 当我们明天开始下一个新的框架项目时,我应该对老板说些什么? 还是有可能真的有所作为的框架? 还是我忽略了一些隐藏的优势?
我几乎尝试过每一个存在的Python Web框架,花了很长时间才意识到没有一个银弹子框架,每个框架都有自己的优点和缺点。 我从Snakelets开始,衷心享受能够控制几乎所有的低层次的事情,但是之后我发现了TurboGears ,从那以后我一直使用它(1.x)。 Catwalk和Web控制台等工具对我来说是非常宝贵的。 但是随着TurboGears 2出现在WSGI的支持下,在阅读Django和WSGI阵营之间的宗教辩论之后,我真的在“做正确的方式” ,例如学习WSGI,花费宝贵的时间编写function已经存在于Django和其他全栈框架中,而不是使用Django或者一些高级框架来为我做所有事情。 后面我看到的缺点是非常明显的: 我在这个过程中没有学到任何东西 如果我需要做更低层次的事情,那将是一件痛苦的事情 只是使用身份validation的基本站点所需的开销是疯狂的。 (IMO) 所以,我想我的问题是,这是更好的select,还是只是一个意见的问题,我应该吸了它,并使用Django,如果它达到我想要的最小的大惊小怪(我想authentication和CRUD接口我的数据库)? 我尝试过Werkzeug,Glashammer和朋友,但是AuthKit和Repoze吓跑了我,以及设置基本身份validation的步骤数。 我看了一下Pylons,但文档看起来很缺乏,当引用诸如身份validation或CRUD界面之类的简单function时,各种维基页面和文档似乎相互矛盾,对版本等进行了不同的修改。 感谢S. Lott指出我并不清楚。 我的问题是:从长远来看,下列哪一项是值得的,但在短期内不是痛苦的(例如,某种中间立场,任何人?) – 学习WSGI,还是坚持一个“电池供电”的框架? 如果是后者,那么我想知道是否应该再次尝试Django,坚持使用TurboGears 1.x,还是冒险进入其他框架。 此外,我已经尝试过CherryPy,但似乎无法find一个足够好的CRUD应用程序,我可以立即使用和使用。
Python和Ruby通常被认为是亲密的表亲(虽然历史包袱颇为不同),performance力和力量相似。 但有些人认为,Rails框架的巨大成功与它所build立的语言确实有很大的关系:Ruby本身。 那么为什么Ruby比Python更适合这样的框架呢?
我只是试图玩Vaadin框架 ,在我看来很容易使用。 另外我喜欢他的框架是它build立在Google Web Toolkit(GWT)之上。 你怎么看,我应该继续使用这个框架,还是坚持使用GWT?
我们正在将一个基于自定义开发的mvc框架构build的大型网站迁移到一个基于java的web框架,该框架提供了对ajax,富媒体内容,混搭,基于模板的布局,validation,最大html / java代码分离。 Grails看起来是一个不错的select,但是,我们不想使用脚本语言。 我们要继续使用java。 基于模板的布局是一个主要的关注点,因为我们打算将这个Web应用程序与具有相似function但外观和感觉完全不同的多个网站一起使用。 基于门户的解决scheme是否适合这个问题? 任何有关使用“Spring Roo”或“Play”的见解都将非常有帮助。 我的确发现了类似的post,但已经有一年多了。 事情一定会改变的! 编辑1:谢谢你的伟大的答案! 这个网站正在成为壕沟程序员信息的最佳单一来源。 不过,我期待更多关于使用portal-cms二重奏的信息。 Jahia看货物。 任何类似的东西?
最近新闻中的两个Haskell Web框架是Yesod (0.8)和Snap (0.4)。 很显然,Yesod目前比Snap支持更多的function。 但是,我受不了Yesod使用HTML,CSS和Javascript的语法。 所以,我想了解一下,如果我使用Snap而不使用Snap,我会错过什么。 例如,看起来不像数据库支持那里。 会话如何? 其他特性?
我正在考虑使用Java创build自己的网站,并试图决定使用什么框架。 但是,快速searchJava框架返回50多个可供select! 我的网站一开始就是为了自己的兴趣而build立起来的,但是如果它变得stream行的话,它有一定的可扩展性,或者至less可以重新devise。 更stream行的框架之间的主要区别是什么? 是否有一个显着胜过其他的情况? 例如,高stream量的企业应用程序与低stream量的小应用程序。 我也想知道是否有人比其他人更容易学习和使用。 有没有人有这些框架的经验,并可以提出build议? 纯粹的select数量是否只是作为一种早期预警,尽可能避免基于Java的Web开发?