摘要:
在第一部分中,我解释了在 Orchard 页面视图模型中我们的需求以及为什么我们认为 dynamic 是这种对象模型的一种非常好的解决方案。现在,我们准备来看一下 Louis’Clay 库,看看怎样利用它创建并使用对象图。在我们开始之前,我想先说明两个问题。1.如果使用动态技术,我们不就失去了智能感知和编译时检查以及所有静态类型语言拥有的一切好处吗?C#是不是变得概念太多了,而想在每一方面都做好,但结果却没有一方面做得好呢?安静,安静,一切都会很好的,放松。现在想想你在.NET里所认识的所有 XML/DOM 方式的AIPs(或者Java里面类似的东西)。除非是在处理代码生成,否则你已经失去了智 阅读全文
摘要:
当我正尝试建立一种合适的数据结构用于在Orchard中承载视图模型(view model)——由许多不同的实体毫无约束地构建而成的时候,很快就变得非常明显必须要用一种动态结构。我们需要的是一分层结构:一个页面可能包涵一个博客文章列表和一些微件(widgets),而每篇博客文章是由许多部件组成的,比如评论,而评论又包涵作者,作者又包涵头像、等级等等。这就带出了第二个需求:多个实体必须在互不知道对方的情况下共同构建那个对象图(视图模型)。我们预先并不知道这个对象图的形状,且对象图的每个节点都很容易受到后来扩展节点的影响。现在的问题是使用C#的静态类型来解决这些需求是非常不爽的。你可以使用类似XML 阅读全文