有没有其他的脚手架框架可以替代Asp.Net Dynamic Data?

8
我一直在使用动态数据玩耍,但我发现它的过滤和导航方面对于复杂场景几乎没有用处,即使在预览4版中也是如此。我特别想处理包含自引用的层次结构表格,在编辑数据时要能够处理这种情况。
有人知道类似的开源项目/或廉价替代框架吗?以获得类似开箱即用的功能?
更新: 通过将global.aspx设置为使用上下文,动态数据允许您轻松地连接L2S或EF类,如果您正在使用L2S,则可以链接您数据库中的任何表格来获得基本动态导航和筛选以及crud功能。我想将其用作后端管理工具。
4个回答

4

Castle MonoRails :) 是最接近asp.net动态数据功能的工具/框架,或者我应该说反过来,因为MonoRail比DD先出现。

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

MonoRail受Ruby on Rails的启发,而DD则是从MonoRail受到启发。

编辑:

我也搜索了一下,除了使用ActiveRecord的MonoRail之外,我不知道还有哪些其他支持L2S / EF的类似DD的解决方案。实际上,我没有找到任何其他类似DD的解决方案,除了MonoRail与ActiveRecord。

Castle MonoRail使用ActiveRecord,它使用NHibernate。虽然NHibernate不是L2S或EF,但在大多数人(也许全部)的意见中,它更加成熟。据我所读,Active Record的实现会为您完成大部分繁重的工作,因此它将为您提供与DD类似的最佳替代方案。

我认为如果您不想使用DD,那么这就是目前最接近DD的解决方案。


你是说我可以像DD一样获得开箱即用的功能吗?看起来更像是Asp.Net MVC框架,而不是DD,这是两个不同的东西吧? - Breadtruck
它基于MVC而不是Web表单,但它使用路由(在MVC和Web表单DD中)和模板来编辑/列出基于生成的数据层的数据,您可以影响/装饰以操纵发生的事情。DD中的L2S或L2Entities和MonoRail中的Active Record。我不能说DD和MonoRail有多接近,因为我没有直接使用MR。我已经阅读了相关资料,并听取了其他使用过它的人的意见,他们认为MR更加灵活/成熟。 - Kevin LaBranche
公平地说,DD并非基于Web Forms或MVC。仅在其当前状态的3.5 SP1版本中,它使用Web Forms作为模板引擎。有一些示例显示如何将DD引擎与asp.net MVC一起使用,我认为4.0版本也会包含它与MVC一起使用。 - Kevin LaBranche
恰当运用MVC和DD。我的观点是DD并不基于Web表单或MVC。它们只是DD所使用的“技术”。Monorail在这方面与DD相似。两者都受到Ruby on Rails的启发。问题是如何“搭建”应用以实现更快速的工作。MVC和Web表单只是展示引擎,而搭建引擎则利用它们来显示自己。MonoRail使用Active Record,就像L2S和L2E。 - Kevin LaBranche
我看到了你在另一篇帖子中提供的一些链接,但我肯定会查看Shoemaker的博客。所以,为了澄清你所说的一个评论,“还有其他人有自己的学习曲线”,我们是在谈论非.Net,还是你认为Monorail比DD更值得追求,知道我想要什么? - Breadtruck
显示剩余9条评论

1

无论如何,树状自引用表都很难处理。如果有图形,例如一个节点可以有多个父节点,那么情况会更糟。然后你必须考虑是否可能存在循环。

因此,我认为您需要一个FieldTemplatesPageTemplates自定义解决方案。

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

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


@ian:基本上,我只是好奇是否有比DD更成熟的东西存在,这样我就不必进行大量修改了。我真的没有时间去处理DD的所有小细节和问题,比如http://forums.asp.net/t/1455367.aspx。 - Breadtruck
@ian:我也觉得有趣的是,在某些方面,DD在生成的网格中正确处理了自引用表,只是没有处理过滤。请参阅此处以获取更多信息 http://forums.asp.net/t/1455375.aspx - Breadtruck

0

无论如何,类似树形自引用表的处理都很困难。

如果你正在寻找ORM,我强烈推荐LLBLGen。如果你正在寻找一个“框架”,我会告诉你:ASP.NET 就是 一个框架 :) 适当地使用它,生活会变得非常美好。


动态数据是一种独特的存在,不是吗?我的意思是,我可以创建一个L2S dbml,将global.aspx设置为使用该上下文,然后我就可以获得基本的导航和crud功能。我想将其用作后端管理工具。 - Breadtruck
啊,好的,我承认我从来没有用过它。也许其他帖子的评论更有用。 - Noon Silk

0

SubSonic 3.0针对ASP.NET提供了脚手架支持,但是我不确定它在过滤和排序方面的范围。


Subsonic更多地是用于搭建/模板化数据库,但并没有真正具备动态插入、更新和删除的界面,不是吗? - Breadtruck
看起来是这样。更深入的挖掘让我找到了这篇文章:http://blog.wekeroad.com/subsonic/subsonic-mvc-scaffold-addin/,Rob Connery在SubSonic中添加了一个用于MVC脚手架的插件。 - Nicolas De Irisarri
那么你同意我所说的吗? - Breadtruck
我继续调查,并找到了这篇旧文章(2007年),作者在其中使用一个脚手架控件为Subsonic项目添加简单的编辑功能。而且这个控件似乎已经集成到Subsonic中。它不像RoR Scaffolding那样生成代码,但它可以为你的项目提供基本的编辑功能。换句话说,是的,它可以做脚手架,但据我所知非常有限。请查看位于http://dotnetslackers.com/articles/aspnet/IntroductionToSubSonic.aspx的文章,附近的第5张图。 - Nicolas De Irisarri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接