使用.net生成简单的Web站点GUI

时间:2010-02-10 07:15:13

标签: c# asp.net asp.net-mvc architecture code-generation

我有几个超级简单的数据库。基本上它们都包含单个表,可以保存跟踪/记录数据等。

现在我想列出这些数据,但我想找到一个适用于所有数据库中所有不同表的解决方案。所以基本上我正在寻找某种方式/某种模式,指向数据库的解决方案,生成代码和GUI以及发布网站。这些表可以有大量的行,所以我需要在功能上像分页等,否则一个简单的列表就是我正在寻找的第一步。我一直在看Dynamic Data from MS - 这可行吗?其他选择?我真的很喜欢这些网站给我ASP.NET MVC ...

作为秒步,我还希望能够通过GUI更改/添加和删除行中的数据。

3 个答案:

答案 0 :(得分:2)

考虑使用ASP.NET MVC 2.它具有广泛的脚手架功能,可以为您自动生成视图,但允许进行大量微调

Brad Wilson在这里解释脚手架:http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-1-introduction.html

对于MVC 2,请参阅 http://aspnet.codeplex.com/http://www.asp.net/mvc/download/

不包括分页,但您可以从MVCContrib获取,例如

答案 1 :(得分:1)

您可以使用T4(http://www.olegsych.com/2007/12/how-to-create-a-simple-t4-template/和其他人)推出自己的脚手架并生成实际页面,或者您可以查看单轨(http://www.castleproject.org/monorail/index.html)。

答案 2 :(得分:1)

如果您不介意强制性JavaScript,那么我建议使用jqGrid。枚举表,列并从中生成jqGrid的列(colModel)应该非常简单。你可以看到我如何做similarhere的一个例子 - 它几乎完全符合你所需要的但是对于类,而不是数据库。因此,您不能“按原样”使用解决方案,因为它适用于域类,但它非常接近,您可以将其作为基础并重写JqGridExtensions.JqGridModel来处理db表定义,而不是域类定义。

如果您的网站必须在没有JavaScript的情况下工作,那么带脚手架的MVC v2都可以使用,或者您可以尝试S#arp Architecture,其中还包括自己的开箱即用的脚手架,可生成完整的CRUD模型/控制器/视图/库/等。这样做的好处是您仍然可以使用,而不是数据集。但据我所知,你必须手动为每个实体定义脚手架 - 但由于脚手架非常灵活,我敢肯定你可以编写Uber-Scaffolding类来枚举你的数据库并吐出子脚手架文件或只是马上打电话给他们。一个quote

  

以编程方式创建对象   称为EntityScaffoldingDetails   保存实体名称等详细信息,   命名空间,以及属性   详细信息,如属性名称,   类型,域签名包含,   属性,默认测试值和   SQL生成细节。

但是,我更喜欢jqGrid方式,因为从数据库模式生成jqGrid模型定义非常容易,数据库模式通常包含所有元数据。当然,可以集成S#arp脚手架和jqGrid,以便第一个产生后者。脚手架的好处是你可以完全控制代码,你可以接受并调整它。因为,您不能指望它是100%自动的 - 生成器无法决定HasMany或ManyToMany,控件类型,隐藏字段等。当然,您可以使用SQL元数据(可能属性)为您的脚手架生成器提供提示。

现在,如果你需要一个现成的开箱即用的解决方案,我认为除了可能的商业工具之外还有一个。以上只允许你自己组装一个。至于商业工具,例如,Telerik Grid表示能够“根据它所绑定的数据项的属性自动推断其列”。