处理应用程序重新设计

时间:2008-12-12 18:12:00

标签: c# asp.net database-design

我正在开发一个重新设计/重做应用程序的项目。问题是旧的应用程序是用ASP.net 1.0编写的,数据库相当大,超过100个表和300多个视图。数据库以非常粗暴的方式处理角色和成员资格。它也涉及一个简单的工作流程。该应用程序在维护方面很痛苦。我有大约3-4个月的时间来重做软件。

数据库设计不是我喜欢的,但是看时间框架迁移数据和数据库重新设计可能会使项目偏离轨道。

之前有人遇到过这种情况吗?任何人都有关于如何进行这个项目的任何指示?

我很想通过.NET 3.5快速使用该软件。如果不考虑数据库,我不确定App重新设计是否有意义

系统问题:1。维护和可扩展性问题。 2.特别是在用户管理的情况下,数据库设计不佳,应用程序在很大程度上取决于用户和角色等。

6 个答案:

答案 0 :(得分:2)

数据库重新设计是一项巨大的努力。如果您或您团队中的某个人不是数据库设计和ETL的专家,那么最终可能会比现在更糟糕。

但是,是否有可能只修复数据库中的一个或两个最差部分,从而实现整体改进?查看性能最差的查询,看看哪些是真正的错误(不仅仅是从你个人的角度看你不喜欢什么,而是现在真的不好用)。也许少于完全重新设计的东西可以为你带来重大的性能提升。

如果您不喜欢数据库的原因是它不是真正的关系,那么您可能会通过使用新名称放入关系表,移动数据并删除旧表以及使用旧表名创建视图来妥协结构类似于当前设计。 (不要先没有当前的数据库备份!!!!)这样你可以开始将代码更改为新的更有效的设计,但是你不会改变的东西仍然有效,直到你到达它。

答案 1 :(得分:1)

您是否需要重新设计数据库或整个应用程序?您是单独执行任务还是获得了相当多的帮助?贵公司是否采用任何方法标准(SDLC流程),或者您是一个特立独行的IT部门?

四个月听起来很激进。您需要记录需求,计划,设计,构建和测试每个功能组件,将数据从旧系统转换到新系统,并可能为所有这些方案设置新环境。

最重要的是:花费大量时间来估算完成整个过程所需的工作。如果是四个月,很棒。我怀疑它会是什么。一旦您对所涉及的工作进行了详细的记录估计,请将其交给您的老板并向他解释四个月的时间框架到底有多极端。

如果您主要关注的是是否要重做数据库,请考虑一个旧的习语,即链条只有最薄弱的链接那么强大。新的应用程序将用.NET编写,但是如果坐在设计糟糕的数据库上真的有意义吗?

花时间计划您的项目,您将花费更少的时间进行您遇到的实际开发,测试和重新工作。

希望这有帮助。

答案 2 :(得分:1)

有点古老的说法, 智能数据结构和哑逻辑每次都反过来 。参见unix philosophy article中的规则5。当它归结为它时,我所经历的每个项目,我不得不用代码修复破坏的数据结构,这是一个痛苦。

简答:如果可以,请重新执行数据。

长答案:务实。如果你只是重新做一部分数据库就可以省去一些头痛,那就去做吧。在应用程序逻辑中处理它比在数据库级处理它会更痛苦。

希望有所帮助!

答案 3 :(得分:0)

如果您不想重新设计数据库,则可以随时重新构建用户体验(UI)。如果你选择使用webforms,那么使用一个好的模式然后我的建议是使用模型视图Presenter模式,或者如果你知道很多javascript和html,你不喜欢webforms模型使用新的ASP.NET MVC。 / p>

但是在您要重新构建应用程序之前,您必须了解您选择的设计模式。

我希望你能用这些信息做点什么。

答案 4 :(得分:0)

我真的不知道项目的范围。但重新设计一个系统的时间是4个月,因为100个表似乎不切实际。如果您非常了解该域名,则可能除外。

我的0.02美元

答案 5 :(得分:0)

要添加我的0.02美元,首先要明确你为什么要重新设计,当前软件有什么问题,性能,可维护性,扩展产品的基础等等。然后明确说明你的新产品的目标(即改进用户体验,性能目标,框架等)可能会让您更好地了解需要重新设计和有效的方法。