【问题标题】:Are there any alternative scaffolding frameworks to Asp.Net Dynamic Data?是否有任何替代 Asp.Net 动态数据的脚手架框架?
【发布时间】:2013-12-10 23:23:10
【问题描述】:

我一直在玩动态数据,但我发现过滤和导航方面对于最简单的场景基本上没用,即使在预览版 4 中也是如此。我特别希望能够在编辑数据时处理分层自引用表。

有没有人知道一个开源项目/或便宜的替代框架来获得类似的开箱即用功能?

更新: 通过将 global.aspx 设置为使用该上下文,动态数据允许您非常轻松地连接 L2S 或 EF 类。如果您使用 L2S,您将获得基本的动态导航和过滤功能,用于您在 DBML 中链接的任何表。我想把它用作后端管理工具。

【问题讨论】:

    标签: c# asp.net dynamic-data


    【解决方案1】:

    Castle MonoRails :) 对于最接近的 asp.net 动态数据功能,如工具/框架,或者我应该说这是相反的方式,因为 MonoRail 在 DD 之前就已经出现了。

    http://www.castleproject.org/monorail/

    MonoRail 的灵感来自于 Ruby on Rails,而这正是 DD 的灵感来源。

    编辑:

    我也进行了搜索,但我不知道有任何其他类似 DD 的解决方案也支持 L2S / EF。事实上,除了带有 ActiveRecord 的 MonoRail 之外,我没有找到任何其他类似 DD 的解决方案。

    Castle MonoRail 使用使用 NHibernate 的 ActiveRecord。虽然 NHibernate 不是 L2S 或 EF,但它是一个 ORM,并且在大多数人看来(也许是所有人),它在这一点上更加成熟。 Active Record 的实现为您完成了我阅读的大部分繁重工作,因此它将为您提供类似于 DD 的解决方案的最佳替代方案。

    如果您不想使用 DD,我认为这是您目前最接近的方法。

    【讨论】:

    • 你是说我像DD那样开箱即用的功能吗?看起来它更像是 Asp.Net MVC 框架而不是 DD,这是两个不同的东西?
    • 它基于 MVC 而不是 Web 表单,但它使用 MVC 中的路由和 Webforms DD 以及基于生成的数据层编辑/列出数据的模板,您可以影响/装饰以操纵什么发生。 DD 中的 L2S 或 L2Entities 以及 MonoRail 中的 Active Record。我不能说 DD 和 MonoRail 有多接近,因为我没有直接使用 MR。我已经阅读了它,并从其他使用过它的人那里听说过,他们认为 MR 更加灵活/成熟。
    • 平心而论,DD 不是基于 Web 表单或 MVC。就在当前状态 3.5 SP1 中,它使用 Web 表单作为模板引擎。有一些示例展示了如何将 DD 引擎与 asp.net MVC 一起使用,我认为 4.0 也会将它包含在 MVC 中?
    • @klabrache:我之前想说的是,DD 本身并没有真正转化为单轨铁路,它本身就是我在下面指出的野兽。我已经使用了来自csharpbits.notaclue.net 的许多 sn-ps 来使 DD 变得更好,但某些事情正在扼杀我。我只是认为可能会有更好或更成熟的东西基本上做同样的事情。
    • 所以也许我需要澄清一下,Monorail 更像 asp.net MVC 还是更像 DD?我认为您无法将 MVC 与 DD 进行比较。 (除了你说的动态路由)功能上,DD 正在采用数据库映射(L2S 或 L2E)并将该上下文连接到您的应用程序,并开箱即用地导航和数据库的 crud 功能。单轨铁路能做到吗?
    【解决方案2】:

    无论如何,树状自引用表都难以处理。当您可以拥有图表时,它甚至更有价值,例如一个节点可以有多个父节点。然后你必须考虑是否可以有周期。

    因此,我认为您需要自定义FieldTemplates,或自定义PageTemplates

    因此,您可以为类似树的自引用关系使用自定义控件,但使用标准动态数据为所有简单字段生成表单。或者有一个“手写”页面来编辑树,然后链接到动态数据来编辑每个节点上的简单字段。

    抱歉,我认为您不会有“现成的解决方案”解决方案,因为您需要的 UI 非常依赖于您的应用程序域。

    【讨论】:

    • @ian: 基本上我只是好奇那里有没有比 DD 更成熟的东西,所以我不需要做一堆修改。我只是没有时间去解决 DD 喜欢的所有细微差别和棘手的事情forums.asp.net/t/1455367.aspx
    • @ian:我还发现有趣的是,在某些方面 DD 在生成的网格中正确处理了自引用表,而不是过滤。有关我的意思的更多信息,请参见 forums.asp.net/t/1455375.aspx
    【解决方案3】:

    树状的自引用表无论如何都难以处理。

    如果您正在寻找 ORM,我强烈推荐 LLBLGen。如果您正在寻找“框架”,我会告诉您:ASP.NET 一个框架 :) 适当使用它,生活会很美好。

    【讨论】:

    • 动态数据本身就是一种野兽,不是吗?我的意思是我可以创建一个 L2S dbml,将 global.aspx 设置为使用该上下文,然后我可以获得基本的导航和 crud 功能。我想把它用作后端管理工具。
    • 啊;好吧,我承认我从未真正使用过它。也许其他发帖人的评论更有用。
    【解决方案4】:

    SubSonic 3.0 具有适用于 ASP.Net 的 Scaffolding,但我不确定它在过滤和排序方面的范围...

    【讨论】:

    • 亚音速不是更多地为您的数据库搭建脚手架/模板,但实际上并没有用于插入、更新和删除的动态界面吗?
    • 看来是这样。更多挖掘使我看到了这篇文章:blog.wekeroad.com/subsonic/subsonic-mvc-scaffold-addin Rob Connery 在其中为 SubSonic 添加了一个用于 MVC 脚手架的插件
    • 那么你同意我说的话吗?
    • 我继续调查,并找到了这篇旧文章 (2007),作者使用脚手架控件为 s8ubsonic 项目添加了简单的编辑功能。并且控件似乎集成在 Subsnic 上。它不会像 RoR Scaffolding 那样生成代码,但它会给你的项目提供基本的喂养功能。换句话说,是的,它可以做脚手架,但 AFAIK 非常有限。查看dotnetslackers.com/articles/aspnet/IntroductionToSubSonic.aspx的文章,靠近图5
    猜你喜欢
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多