寻找关于设计应用程序的最佳方式的建议,链接,设计模式等,其中实体和相关屏幕可以通过元数据/无需重新编译进行额外的属性/相关查找,最好是最终用户。我在想与Dynamics CRM 4.0如何使用扩展表/动态属性非常相似的东西。该应用程序将使用C#.NET 3.5
构建谢谢!
答案 0 :(得分:1)
您可以通过编写自己的PropertyDescriptor
实现,以及实现ICustomTypeDescriptor
(向实例添加属性)或使用{{{{}}来实现此类操作。 1}}(可以为整个类型添加属性)。
这是实现可扩展/动态属性包实现的常用方法,并且TypeDescriptionProvider
之类的内容用于揭示虚拟属性(在DataTable
等上)。
然而;这是很多工作。我已经完成了几次,但这并不好玩。我想知道你是否应该只使用一个罐装解决方案?虽然我通常会避免使用DataRowView
,但这可能是真正有用的场合之一......只需添加列,然后完成工作。
答案 1 :(得分:0)
我参与了两个项目,一个是电信内容管理系统门户,另一个是身份管理系统。
两者都是产品的定制,并且都支持您所描述的实体扩展。并且都将数据存储为XML字符串! (其中1个在数据库中,另一个在SVN中)。
对于搜索,其中一个使用Lucene,另一个使用名称/值对的表进行搜索,优化用户定义的一些更常用的“字段”,与XML存储在同一行中串..
实体架构都由XML配置文件驱动。
作为一种产品,我几乎认为它们是好主意,允许实体定制以适应不同的场景。但是当我对它们进行定制时,它只是简单而刺激。
我认为最好从最终用户客户的角度来看待这一点。
另外,考虑一下: 你真的需要一个RDBMS,或像CouchDB这样面向文档的存储吗? IMO面向文档的存储似乎是可扩展实体的理想选择。但我没有与他们合作,也没有关于他们是否有用的必要数据。
价值2美分。希望它有所帮助。