2009-06-09 68 views
0

我正在设计一个仪表板来显示企业指标(目前在C#中使用ASP.net 3.5),并寻找设计建议。我不太习惯于Web应用程序中的OOP。多态性与数据库查询

在多对多关系中,不同用户可能会看到许多不同的指标。我将用户存储在本地SQL数据库中,并且为每个“度量标准”存储元数据也是有意义的。这也为每个人提供了一种访问控制列表。每个度量可以有几个不同的图表,它们具有不同的设计(酒吧,列,饼,线,或不同系列在不同Y轴上的组合等)。

这些图表可以通过编程设计,然后在运行时添加到ASP.net页面。有一个空白图的超类的继承结构以及扩展它的不同图表类型会很好。

页面将选择给定用户有权查看并生成这些图表的图表。尽管如此,我仍然看到某种大开关语句作为粗略查找表,以便根据数据库中选择的信息实例化相应的子类。

有没有更具艺术性的方式来做到这一点?不知何故在运行时提供类型声明?我是否应该将所有关于图表的样式信息移动到数据库中,并为系列,数据点,颜色等添加其他表和列,其中单个图表类会执行所有必要的查询并生成图表?谢谢。

回答

1

我意识到我在找什么可以用动态类加载来解决。 有一个来自Michael Clarke的C#here动态类加载的很好的例子。

基本上我可以根据来自查询的字符串文件名加载一个类。

0

您可以将该类的强名称存储在数据库中,然后只需创建该类的一个实例。

所以不是排序,它可能会存储像

YourNamespace.UI.Charts.Bar 

条形图个人而言,我不会太害怕的只是存储图表类型,虽然,因为它为您提供了一个抽象层可能会有所帮助。