我想要使用Silverlight 4,业务应用程序模板,WCF RIA Services和Entity Framework 4设计CRUD商业应用程序的建议。该应用程序跟踪对材料样本执行的实验室测试结果。它取代了一个(难以维护)现有的Web应用程序。实验室测试结果存储在由数百个字段组成的两个“SampleData”表中。这些表格具有一对一的关系。我使用实体框架的Table Per Type Inheritance将这两个表合并成一个表,我很满意。注意:我决定不更改数据库设计以避免破坏现有的应用程序,but it was considered.如何划分一个实体与数百个字段?
我的两难困境是如何分解这个巨大的表。每条记录代表一个被测试的材料样本。字段的逻辑分组是通过实验室测试。我想象我的UI有多个标签或单独的页面 - 每个测试一个。现在的问题是,我吸入所有的字段,但只在分页的DataGrid中显示一些字段,并且有明显的延迟。不是一个巨大的实体,它可能是很好的,有几个“实验室测试”实体(每个都代表一种测试类型),它们是我的一个巨型TPT继承表的子集。我将如何做到这一点?基本SampleData表/实体包含标题字段以及多个子测试结果字段。第二个派生表/实体包含更多通过SampleID链接到基础的测试结果字段。如果分裂,我需要维护每个实验室测试实体的标题信息。
我愿意用一个巨大的表/实体坚持(尽管有轻微的性能损失)。不过,我想知道用这个实体创建我的UI的最佳方式。 DataForm可以选项卡吗?如果我制作带有实验室测试链接的仪表板,我应该如何将标题信息与每个测试页面保持同步?
我知道这是一个广泛的问题。我希望能够获得有关良好设计路径的建议,这将允许我在添加新实验室测试(制作更大的实体)时增加应用程序。我希望找到一条能够简化维护并利用微软正在推广的RAD体验的途径。
提前致谢!
如果你不介意我问,你为什么觉得web应用程序是很难维持的?我在Silverlight的/ RIA服务切换到ASP.NET MVC,因为我已经找到了相反的过程:SL/RIA难以维持和发展缓慢的进展。我发现这一切都非常重量级和不灵活。 – 2010-12-17 00:10:12
应用程序的一半是在Asp 1.1中使用古树视图和选项卡控件。其中一个标签有一个框架,其中包含一个完整的Asp 2.0应用程序。需要进行严重的重构(并且我已经开始)。多维数组包含数据库字段名称和由幻数索引号标识的相应文本框对象。数据库调用主要是循环来填充数组或执行CRUD。被遗弃的代码丢弃了应用程序。变量是3或4个字母的首字母缩略词,因为谁知道什么。通常,应用程序将无法编译,并且会丢失时间。原来的开发人员离开了公司,我这个新人不得不应对这个泥潭。 – DeveloperDan 2010-12-17 13:25:22