使用脚手架构建Ajax RIA框架的技术选择

使用脚手架构建Ajax RIA框架的技术选择,ajax,frameworks,dojo,smartgwt,Ajax,Frameworks,Dojo,Smartgwt,构建像样的RIA数据密集型crud应用程序仍然很困难。尽管存在大量的框架 我将为此类应用程序构建自己的框架。关键需求之一是脚手架(从模型生成UI)。另一个是.NET服务器端。 我知道asp.net动态数据、oracle ADF、fornax/sculptor等(是的,这两个版本是针对Java的)。 有许多服务器端框架,如Django(基于python)、Grails(基于Groovy)、RubyonRails。它们通常包含一些ORM和脚手架。但对我来说,主要的问题是它们不包含客户端框架。它们确实

构建像样的RIA数据密集型crud应用程序仍然很困难。尽管存在大量的框架

我将为此类应用程序构建自己的框架。关键需求之一是脚手架(从模型生成UI)。另一个是.NET服务器端。 我知道asp.net动态数据、oracle ADF、fornax/sculptor等(是的,这两个版本是针对Java的)。 有许多服务器端框架,如Django(基于python)、Grails(基于Groovy)、RubyonRails。它们通常包含一些ORM和脚手架。但对我来说,主要的问题是它们不包含客户端框架。它们确实会生成脚手架式UI代码,但不能在手工编写的代码中重用。 我也不喜欢asp.NETWebForms使用“服务器控件”的方法。即使生成了所有服务器标记(类似或类似JSF/JSP)

另一方面,还有(甚至更多)客户端框架。他们通常不知道服务器技术。这里有Dojo、ExtJS、SmartClient、QooxDoo等,它们都提供我们编写JS代码和做一些css/html设计。这还不错,但是JS代码(因为它是一个脚本代码)非常容易出错

因此,我最初的设想是采用asp.NETMVC作为服务器端,并采用一些不错的客户端框架。问题是选择哪一个

我的第一个决定是使用DojoToolkit。它是一个对JS有很多好处的框架(mixin、pub/sub、connections、Defered、modules、Json解析器、Dijit的模板、数据抽象),并且它有许多WidJet。而且是免费的

但我看到的是ExtJS。我还没开始学呢。但是他们的演示非常好。在我看来,GUI的质量要比Dojo的widjets好得多。但ExtJS在商业上的使用是要花钱的。但是花钱买一个好的框架并不是什么大问题。
然后我看了看SmartClient。特别是在。我必须说,每个选择Ajax框架/库的人都必须看到这一点。真是太棒了。 它是一个整合到GWT中的客户端库(SmartClient)。因此,我们可以用Java创建一个令人惊讶的Ajax应用程序。有编译语言,没有脚本语言!伟大的 但他们有更多——SmartGWT EE。它将客户端代码(由Java生成)与服务器Java对象无缝集成,在数据模型(与服务器连接)和GUI控件之间提供双向数据绑定。
这正是我需要的,但我需要为.NET提供这样的东西。是的,我知道脚本。但它非常有限(c#1.0)。还有。它可以工作,甚至可以去毛刺。但它离GWT+SmartGWT的设施很远

因此,在看到这样一个优点之后,用asp.NETMVC+dojo构建一个框架似乎是不可能的 再也不是个好主意了

我相信你们中的许多人都面临着类似的问题:如何在数据密集型crud(通常是企业/内部网)应用程序(而不是网站)中有效地连接Ajax RIA客户端和服务器端。那么,什么样的接近/技术是有意义的考虑?


p、 我甚至在考虑使用GWT。但我必须使用两个IDE:一个用于客户端代码(java),另一个用于服务器代码(asp.NETMVC)。但这并不是梦想的边缘。

如果可重复使用的脚手架是一个关键问题,这是SmartGWT/SmartClient的最强项之一。在这里,您可以看到完全运行CRUD屏幕所需的代码是多么少:

请注意,您可以对模型生成的UI进行非常细粒度的覆盖,同时仍然可以避免重复:

诚然,没有针对.NET的SmartGWT EE,但是使用RESTDataSource与.NET的集成非常简单:

从现有对象/表派生数据源的一个选项是使用SmartGWT读取XML模式的能力:

您可以将其与数据源继承结合使用,例如,您可以声明配置为与服务器对话的数据源从自动从XML模式派生的数据源继承其字段定义:


谢谢你的回答。关于SmartGWT,有一件事我有点困惑:将网格和编辑器绑定到同一个数据源。但编辑通常需要更全面的设施。例如,我们通常使用子编辑器编辑嵌套对象,并在一个事务中保存所有内容。那么SM的数据源在多大程度上支持嵌套对象呢?我猜你来自同构,对吧?如果是这样的话,我想指出的是,如果您与.net平台进行一些集成,那将是一件了不起的事情。这里还被问及:主详细信息也是高度自动化的:注意,如果您在.NET上,您需要在这里使用RestDataSource,而不是Java服务器可用的预构建Hibernate连接器。然后,您将获得一个嵌套的JSON或XML文档,并将其发布到您的服务器,然后您可以将其保存到SQL或任何存储系统中。