【问题标题】:Generate simple web site GUI using .net使用 .net 生成简单的网站 GUI
【发布时间】:2011-01-15 03:46:23
【问题描述】:

我有几个超级简单的数据库。基本上它们都由保存跟踪/记录数据等的单个表组成。

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

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

【问题讨论】:

  • 我绝对推荐动态数据。您可以在 5 分钟内启动并运行该网站,因此值得一试。

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


【解决方案1】:

考虑使用 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 获取,例如

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果您不介意强制使用 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 表示能够“根据绑定的数据项的属性自动推断其列”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-18
        • 2021-12-13
        • 2014-06-14
        • 2020-10-30
        • 2011-12-03
        • 2015-08-09
        • 2023-03-03
        • 1970-01-01
        相关资源
        最近更新 更多