使用现有数据库时选择哪个web应用框架?

3 投票
3 回答
1420 浏览
提问于 2025-04-17 00:10

我的公司想开始开发移动网页应用,作为我们自己ERP软件的一个补充。我们对这方面没有任何专业知识,所以我需要研究一下我们将使用哪些工具、框架和语言。

我们已经有一个现成的数据库,想快速建立一个简单的网页应用,为我们的客户提供一些方便的移动功能。比如,我们想先把我们软件中的日程安排功能做成可以在手机或平板上使用。

我们希望设置成以下方式:

  • 我们在内部托管这个网页应用
  • 这个网页应用可以远程访问客户的数据库(Advantage Database Server,可以通过JSON远程查询),而且可能会有多个客户的数据库

我们用Delphi开发桌面软件,因此对网页开发不太熟悉。我们希望选择的框架能满足以下需求:

  • 有可用的开发环境,也许还有其他一些方便的工具
  • 最好学习曲线比较平缓
  • 有良好的文档和支持
  • 适合移动网页开发
  • 适合简单小型的网页应用,不需要开发功能复杂的网页应用(大概只需要能完成两三项任务)

我们会为未来几年做出一个方向选择,所以如果能保证这个框架会持续一段时间也是不错的。

到目前为止,我了解到我们很可能不需要ORM,因为我们绝对不会改变我们的数据库结构来适应网页应用。

所以我的问题是:我应该重点关注哪些框架,哪些可以直接排除掉?

顺便说一下:我不想要设计师框架,比如Sencha Touch、JQueryMobile等。

提前谢谢你们!

3 个回答

0

可以看看 web2py,因为它可能是最简单的设置、学习和使用的框架之一。你可以用任何开发工具或编辑器来使用它,但它也自带一个基于网页的开发环境和管理界面,方便你管理应用和进行基本编辑(可以查看 演示)。它有很棒的 文档,而且如果你需要帮助,还有一个非常活跃的 邮件列表可以咨询。

它不是使用ORM(对象关系映射),而是包含一个 数据库抽象层(DAL),这个层次和SQL更接近,能提供更多的灵活性(它还包括一些脚本,可以自动生成现有 MySQLPostgreSQL 数据库表的web2py DAL模型)。它 包含jQuery,还有一个 jQuery Mobile插件

web2py已经存在大约四年了,仍然在积极开发中,每个月都有新版本发布(而且自始至今,它一直保持着文档中API的向后兼容性,并将继续这样做)。

InfoWorld最近发布了一篇关于六个Python网页框架的评测,其中包括web2py:

1

我对很多PHP框架都有经验,比如Zend、CakePHP、Kohana、CodeIgniter、Akelos,还有两个内部开发的解决方案。同时,我也对Python的Django框架有一些了解,对PHP的Yii框架更是有很多经验。我可以毫不犹豫地推荐Yii。虽然每个强大的框架都有一定的学习曲线,但我觉得Yii是最容易上手的,使用它开发时我感到非常愉快。

  • 它是一个基于PHP 5的框架,支持事件驱动,能够使用回调闭包和其他PHP 5.3的特性。
  • 文档写得特别好,容易理解。
  • 速度非常快,因为它是基于组件的,你只需要用到几个基本组件,而且它不像Zend那样有成百上千的抽象概念,所以你不会在对象引用中迷失。
  • 社区非常友好,只要我把问题说清楚,通常都会有人回答我。
  • 你可以使用Active Record ORM模型,但这完全是你的选择。你也可以用它的DAO(基本上是PDO的封装)来写普通的SQL。我很少这么做。在大多数情况下,使用AR可以省去很多工作,而且在Yii中,它对表的结构没有太多限制。所以除了复杂查询外,我看不出不使用AR的理由。
  • 它支持主题定制,无论是简单的视图还是小部件/模块。我惊讶于只需创建一个新主题就能轻松制作出网站的移动版本。
  • 它对国际化(i18n)支持很好,如果你需要多语言的网页应用,做起来很简单。
  • Eclipse PDT和Netbeans 7都是很棒的网页开发工具,对Yii有一些额外的支持(即使在它们支持Yii之前,开发这样的网页应用也很简单)。
  • 它的核心小部件使用jQuery,但你可以自由选择任何你喜欢的JS框架(而且你可能根本不会在移动端使用大多数核心小部件)。

还有更多想说的,但你可以去它的网站看看: http://www.yiiframework.com/

无论你选择哪个框架,成功开发一个移动网页应用的大部分工作还是得靠你自己。

2

我们开发桌面软件用的是Delphi,所以我们对网页开发不太熟悉。

在这种情况下,我觉得你们可能在解决错误的问题:

找一个团队负责人来带队吧(即使只是为第一个或两个项目做合同工也行)。你需要一个了解所有相关技术的人(比如HTML、JavaScript、CSS、HTTP、SSL),并且知道怎么安全、正确地使用这些技术。

让他们来决定团队使用哪些工具——因为他们需要支持团队学习如何使用这些工具。

(如果要推荐一个框架的话,我会推荐Dancer,因为它满足你们大部分的需求)

撰写回答