使用Web Toolkit快速开发Web应用程序

时间:2009-08-03 13:15:31

标签: rad toolkit backend

我花了很多时间(实际上是太多时间)开发后台应用程序,其主要目的是内容管理和Web应用程序配置。以下是我如何描述这些应用程序:

- Made with PHP
- Using a MySQL or Postgres or SQLite database
- Made of a lot of pages and features
- Very simple features, mostly data CRUD (create+read+update+delete into the database)
- Mostly made of forms
- UIs are usually quite simple (html + css + very basic javascript)

这些应用程序中的所有数据访问代码都依赖于我多年前开发的库,并且每次都可以重用。这部分并不费时。

UI部分耗费时间,主要是设计数据列表和表单。使用WYSIWYG编辑器在这里会有很多意义,除了我尝试过的那些(Dreamweaver,Frontpage,Expression,Eclipse,...)并没有真正使它快得多,因为生成的代码通常很臃肿,而且这些工具可以不依赖于自定义库,例如我制作和使用的库。

我认为使用Web Tookit可能是花费更少时间开发这些工具的另一种方式。因此,在我花太多时间寻找完美的工具包之前,我将非常感谢您对此类问题的看法和经验。

免责声明:我不是在寻找关于如何使用MVC以及如何使用CodeIgniter / Zend / WhatEver的建议。我的问题不是我应该构建应用程序的框架或设计模式。我的问题是使用正确的工具更快地开发简单的Web应用程序,并且他们的代码更易于重复使用。

我不知道有一个很棒的网络应用程序RAD工具吗?

您使用哪种工具包来处理简单但重量级的Web应用程序?

是否有用PHP编写的优秀,轻便,不膨胀,可靠的工具包?

提前致谢!


编辑:到目前为止没有得到太多反馈:/我知道我的问题非常广泛,但我确信很多人都在处理我正在讨论的同类项目,并且使用GWTWicket等工具包提高了工作效率。请告诉我,请:)


9月28日编辑:感谢大家的有趣答案。在过去几个月我可以尝试的任何框架都没有涵盖我正在寻找的内容。 PHP可能不是用于我的RAD愿景的最佳语言,但因为它是我非常了解的语言,因为我不想花太多时间学习Python以及我知道PHP(目前) ,我决定自己做。每当我对窗口小部件有特定需求时,我都会以最可重用的方式对其进行编码......到目前为止一直很好:)

我可能会在某个时候开源该工具包,并且会让你们知道。

9 个答案:

答案 0 :(得分:1)

过去几年我一直在研究的PHP项目非常类似。表单上很重,服务器端逻辑很重,但很多冗余表单编码。更糟糕的是,它不是所有的形式,有时我们实际上需要做一些奇特的布局(即使只是做一个树控制是一个没有图书馆的痛苦),而且UI的本土特性意味着我将要战斗浏览器从头到尾怪癖。

所以,我开始思考什么是更好的架构。我们需要非常强大的表单控件,丰富的网格,丰富的树,高级布局,我们需要逐步迁移到它。没有一个PHP框架似乎适合。然后我退后一步,意识到它不一定是PHP,它也可能是javascript。我们已经对javascript有了一个要求,所以可以与它保持距离。首先,我查看了较小的库,jquery,prototype,但很明显他们做得不够。所以我查看了Dojo,ExtJS,YUI,所有非常重的javascript工具包,并确定ExtJS具有最佳控件。

我们的UI结构严重依赖于iframe,外部的导航框架,内部的应用程序框架,内部的功能框架等等。我们最终得到的是我们正在从外部迁移那些。它们都变成了ExtJS,并且它们都生活在同一页面中。服务器端代码保持不变,但它已迁移到Web服务中。与此同时,我们集成了zend框架,并将一些你不应该做的东西移植到它身上,比如身份验证和翻译。

最终目标是能够编写业务逻辑而不必弄乱所有样板。现在要知道我的方法是否会成功还为时过早,但我认为我的信息将对您的代码库至关重要,并决定您希望自己编写哪些部分,以及您希望将哪些部分外包给库。

答案 1 :(得分:1)

请尝试http://agiletoolkit.org/。我认为这就是你需要的。最短时间/代码的结果。

答案 2 :(得分:0)

目前,我正在使用一个可靠的表单类来呈现具有客户端和服务器端验证的HTML表单,以及一个用于编写SQL的数据库类。我可以在大约10行代码中获得管理控制台的CRUD部分。我自己写了这些课程,所以我可以在我的所有项目中重复使用它们。希望能给你一些想法吗?

我会亲自远离WYSIWYG工具。

答案 3 :(得分:0)

我正在测试NuBuilder.com,我发现它确实如此 几天之内,起初看起来很有希望。如果你看看 请把你的反馈发给我!

答案 4 :(得分:0)

也许采用或创建像Django这样的基于应用的基础架构?在Django的案例中,社区已经创建了一些强大的基线,如Pinax

答案 5 :(得分:0)

我认为Symfony可能是最佳选择,因为,就像您的应用一样:

  • 用PHP编写
  • 基于Propel / doctrine的ORM(所以你可以使用MySQL,Postgres或SQLite)
  • 使用的架构和模式将帮助您完成复杂的应用程序
  • 您将找到帮助您调试,记录和测试应用程序的工具
  • 表格创建,验证,l10n& i18n,测试,AJAX 简单forms within symfony explained here, check it out
  • 在开发应用程序时对网页进行原型设计很容易

在symfony框架中实施的其他工具/实践将使您的生活变得轻松:

  • 使用YAML语法进行完整配置(易于阅读和理解)
  • 脚手架功能为您生成一个简单的CRUD界面,用于编辑您的数据。
  • 您不必担心编码形式的清理,安全性,缓存,ACL;需要配置,但没有繁重的编码。

唯一的缺点是,你需要阅读一些文档来理解“symfony做事方式”。但是,嘿,一个好的框架是20%的代码和80%的良好实践

我的观点是,即使你不想将Symfony用于你的项目,你应该检查它的功能和内置工具,因为这是你想要的项目工具

答案 6 :(得分:0)

我开始使用Django,它有非常有用的功能,尤其是。内置的管理员(对于一般的CRUD东西)和非常棒的表单处理代码&小部件渲染。我建议看看,即使你不打算使用python,只是为了得到一个想法。

你提到你不想要“使用X框架”的建议,因为这更多是关于RAD& UI /表单比系统架构。但我发现一个好的框架对UI和&形成建筑物的一面。这意味着虽然框架非常适合大型项目,但它们在减少代码冗余方面也非常有用。我开始在PHP中创建自己的辅助函数,我将从app复制到app,它会根据一些参数自动呈现HTML表单。即使经过大量的工作,与Django提供的相比,这也是非常简陋的,基本上我是在编写自己的框架。

我认为你可能正在寻找一种GUI风格的工具来帮助你,但你可能会发现一个好的PHP框架在这种情况下会更有帮助。至少,您是否尝试过创建自己的帮助程序库?我知道那些帮助了我很多。

简单示例:

function renderInput($name, $value="") {
    print "<input type=\"input\" name=\"" . htmlentities($name) . "\" value=\"" . htmlentities($value) . "\" >";
}
function renderRadios($name, $value="", $choices=array()) {
    for ($choices as $cvalue) {
        print "<input type=\"checkbox\" name=\"" . htmlentities($name) . "\" value=\"" . htmlentities($cvalue) . "\" " . ($cvalue == $value ? "checked" : "") . ">";
    }
}

从那里建立起来。像这样的愚蠢的事情往往会使表单创建更快。一个好的框架将把它从水中吹走。而且我确定上面有一些拼写错误,我还没有做过一点点的PHP。

如果这不是你想要的,你还可以在这个问题上添加更多内容吗?我很好奇。

答案 7 :(得分:0)

虽然您要求使用PHP + MySql,但我建议您尝试使用OutSystems Agile Platform。

您可以在不到10分钟内创建一个简单的CRUD应用程序,并在进入更复杂的系统时进行扩展。

www.outsystems.com免费下载社区版。

最佳,

答案 8 :(得分:0)

不确定,但看起来像您正在寻找的Tibco General Interface(http://www.generalinterface.org)。