【问题标题】:Which web framework is the best for a private-cloud web application?哪个 Web 框架最适合私有云 Web 应用程序?
【发布时间】:2009-10-31 07:06:05
【问题描述】:

我们的团队是 Web 应用程序开发的新手。我们一直在使用 Java 开发基于 Windows/Linux 的应用程序。该团队还拥有丰富的 Perl 经验。

新任务是开发内部私有云 Web 应用程序。看看所有的 Web 应用程序开发框架是相当令人困惑的:Ruby on Rail、Drupals、Zend 框架等。它们都是开源框架,都声称是快速 Web 应用程序开发的最佳选择。这些框架的优点和缺点是什么?

对于实时团队协作内容管理 Web 应用程序,哪个框架最好?

由于团队拥有丰富的 OO 应用程序开发经验,因此需要一个具有强大 Web 小部件支持的 OO 框架。有什么推荐吗?

【问题讨论】:

    标签: web-applications frameworks cloud


    【解决方案1】:

    归根结底,没有人能真正告诉你一个框架是 比另一个更好,但我对你的建议是熟悉基础知识 然后再看看你已经看过的评论。

    Drupal(以及 Joomla 和 Wordpress)都是基于 PHP 的内容管理 应用程序。这些是完整的解决方案设置,而不是框架。 您可能会发现其中一个已经适合您的要求, 只需很少的编程,它可能正是您所需要的。 这个应用程序厨房site 例如是使用 WordPress 构建的,这意味着 只需调整代码即可完成哪些工作。

    尽管如此,您可能必须从头开始构建您的应用程序。 我相信这是您开始了解基本知识的最佳方式 Web 开发概念将在您作为 Java 开发人员的情况下开始 使用一个简单的基于 Servlet/JSP 的应用程序。 您将必须学习如何使用 servlet 容器,例如 TomcatJetty,您将应对相对容易的学习曲线。 跳过您在旧教程中可能遇到的所有旧 JDBC/SQL 技术, 并尝试很好地理解 MVC(模型-视图-控制)的概念 在构建 UI 时,您可能会遇到 JSF 这个术语,我建议 也跳过它。这些天的常见做法是构建 UI 在纯 HTML/AJAX/javascript 中。

    说到javascript, JQuery 是各种框架中最流行的,但你可以考虑 Prototype 相反,因为它很好地与 Ruby on Rails 和 CakePHP 集成 (稍后会联系他们) 对于您的第一个应用程序,尝试构建一个简单的请求-响应网络应用程序 (同样,在这个阶段避免使用数据库),同时使用一些 AJAX。

    完成后(2-3 天),您将准备好更好地决定自己 什么框架最适合您的需求。 从这个意义上说,Java 框架在恕我直言太臃肿和过时了, 但如果你有不同的想法,那么Spring 是事实上的 在那个区域。除非您打算建立大型遗留企业 应用程序,完全避免 J2EE/EE5,因为它们被认为已弃用, 至少在我周围。 即使它不是可接受的解决方案,一个非常好的主意是采取 一天学习 Google AppEngine for Java,它基于一个 Eclipse 插件 并且基于 Jetty,在那个级别上,学习它应该毫不费力。 它是一个具有一些附加值的 servlet 容器。 您将了解 ORM 概念(这实际上是您的工作方式 与任何其他现代 Web 框架上的数据库)。 作为奖励,您还将加入云计算的潮流。

    从现在开始,选择您的终极框架将变得更加容易。 此时,您可能更愿意进一步了解 Java, 或挂钩到另一个完善的网络堆栈。 如果您仍然坚持使用 Java,请查看 GWT(Google Web Kit 用于构建 Google Wave)。因为它会强烈地提醒你过去的美好时光 熟悉的 Swing 组件和布局。 作为一个成本/有效的解决方案,我认为这是更好的选择 用于您的实时团队协作内容管理 Web 应用程序。

    但是,如果您想要告别熟悉的 Java 世界, 有些人会坚持认为你应该决定直接跳到 网络巨头目前使用的 PHP 或 Python 框架, Facebook、WordPress (PHP)、Google 和 FriendFeed (Python) 就是其中的一部分。 Ruby on Rails 也可以是一种选择(Twitter),但它的辉煌时代已经结束, 许多框架很快就采用了它的核心概念和想法。 对于 PHP,我推荐 CakePHP(Mozilla 附加组件网站),这将是一个简单的 从 Java 堆栈过渡。 Zend 是个笨蛋,如果你时间紧迫,这不是你的解决方案, codeigniter/symphony 可能对您的要求来说太轻了, 但值得审查。

    对于 Python,请考虑 Facebook 的新顶级框架 (由 FriendFeed 开发),一个自制的易于学习的优秀框架 命名为Tornado。它解决了一些其他框架没有的问题, 这可能正是您所需要的。你可以在5分钟内得到它 他们的homepageTurbo-Gearweb.py 也不错 已建立的设置。

    希望我能帮上忙,祝你好运。

    【讨论】:

      【解决方案2】:

      这是一个相当老的问题,但我想我会分享我的想法,因为这个问题仍然相关,应该进行更多讨论。

      如今,当环境发生变化并且云已成为运行 Web 应用程序的标准环境时,这会影响如何使用框架。您列出的所有内容都不适合“按原样”使用云,因为它们植根于单服务器时代。

      无论框架是什么,最重要的是您如何设计 Web 应用程序。例如,您可能不希望在应用程序中运行任何 Quartz/Cron 任务,因为当您扩大规模时,所有这些工作也会成倍增加。这会导致多次执行相同的工作,而应该只执行一次。

      在为云设计 Web 应用程序时,必须将云环境视为分布式系统,这意味着只有自主子系统才能真正响应需求。可扩展性是为什么你应该在云中的最重要的事情。如果您不需要,请不要为此付费。

      所以要回答你关于哪个框架的问题,我想说首先你必须知道你想要实现什么。如果您有将您推向云的需求,您需要专注于设计,然后选择适合该设计的框架。如果看起来您不需要那么重的东西,那么所有框架都应该可以完成这项工作。

      【讨论】:

        【解决方案3】:

        作为一名 Python 爱好者,我必须推荐一个 Python Web 框架:web2py。它易于使用,可与许多数据库和 GAE 一起使用。查看他们网站上的幻灯片。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-05-25
          • 2011-02-25
          • 1970-01-01
          • 1970-01-01
          • 2020-10-03
          • 1970-01-01
          • 2010-11-29
          • 1970-01-01
          相关资源
          最近更新 更多