重写访问adp / sqlserver到C#.net?

时间:2009-05-17 16:35:21

标签: ms-access

我是一名非技术人员,并且有一家小公司多年来一直支持我公司的软件。该解决方案运行良好,解决方案的排列已经与当前的IT服务提供商合作超过15年。我最近有一家更成熟的IT公司对软件进行一般性审计。当前的解决方案使用access作为前端,sqlserver 2005作为数据库。执行审计的公司提出了一系列错误,其中包括技术已过时,解决方案不可扩展,设计错误,非用户友好界面,表未规范化,表没有参照完整性,未使用正确的编码标准和命名约定,没有应用程序安全性,只有数据库安全性等。进行审计的公司提出必须重新编写解决方案并提供此解决方案。目前的服务提供商了解了一些调查结果,但向我保证,它对我的​​业务造成的风险很小甚至没有。重写应用程序将花费很多钱。我处境艰难,并希望得到一些技术建议。我基本上需要知道我的业务是否有可能在当前技术上运行。在给定时间,我最多有70个并发用户在系统上工作

7 个答案:

答案 0 :(得分:3)

好吧,如果你重视乔尔的word,我会说你确实在这里冒着很大的风险。

重写内容对公司来说是绝对安全的事情。

答案 1 :(得分:2)

在从技术角度查看问题之前,您必须评估应用程序对您的业务的重要程度。听起来好像你有一个正常运行的应用程序。如果它提供一致的行为并且您不需要升级/新开发,您可能希望不管它。我们软件开发人员喜欢抱怨其他人的代码,用“优雅”的解决方案重写其他人的工作。这意味着钱。

但是,您有一项可能需要维护的投资,当您在dis-array中使用底层代码和数据库时,您将承担更多成本,因为该应用程序不适合修改。您需要了解需要支持多少更改。鉴于它已经生产了15年,你已经有了很好的运行,所以你没有太大的风险。

重写会花费你,因为你需要重新创建应用程序的功能,并且由于支持数据库和程序似乎是“非规范化”和非结构化的,因此需要付出很大的努力。拥有一个干净的数据库模型是有好处的,因为它更容易做报告,导出到Excel等。如果你想修改它,开发人员将更容易找出要做的事情。

花钱来获得已有的东西要求你挑战公司,详细说明你将获得的额外好处。这些好处是否超出了您今天所获得的好处,并且该公司是否会兑现其承诺?如果数据库“正常化”但你没有得到比当前应用程序给你的其他好处,你的公司会变得更好吗?在跳转到新平台之前,请记住这些。

答案 2 :(得分:2)

简而言之,请问自己这些问题:

  1. 您目前是否遇到过软件问题?用户是否抱怨用户界面,或者新用户在使用时是否特别难以拿起软件?数据是否在任何阶段丢失或损坏,或者您是否在从数据库中检索报告时遇到问题?

  2. 您目前或将来是否需要修改?如果您的软件写得不好,修改将会更加昂贵,并且更有可能破坏应用程序并导致一般的停机。

  3. 如果两个问题的答案都是否定,那么您可能不需要重写软件。你必须记住,优秀的软件开发人员看到编写得很糟糕的软件,并且想要正确地重新编写软件 - 以及这些,他们在开发软件时有钱,所以他们的观点并非完全不偏不倚。

    像其他人所说的那样,重新编写一个系统有其自身的风险 - 很久以前修复的旧错误可能会再次出现问题,可能会引入新的错误,新系统的开发人员可能完全错过这一点并使系统比以前的系统更不可用。

    如果当前系统存在问题,虽然可能值得考虑让有能力的开发人员重新编写系统 - 但是如果您选择这条路线,请务必从当前用户那里获得反馈,尤其是'专家'或'权力'用户,以确保系统满足他们的所有要求。

答案 3 :(得分:2)

修复现有应用中的问题。它会便宜得多,可以逐步完成,如果操作得当,将会产生更易维护的应用程序。

更换ADP前端的建议听起来像对我的纯粹偏见/无知 - 他们不销售Access开发,因此他们想要为您构建一个全新的应用程序。

另一方面,关于后端的建议听起来像你不应该等待解决的事情(虽然它可能需要大量的工作,因为现有的数据可能不适合正确的RI)。

前端和后端问题是两个独立的问题,可以独立处理(虽然应用程序可能需要更新以反映RI的变化 - 如果没有逐案评估,就不可能说出来了。) / p>

我会聘请具有ADP经验的合格Access开发人员来处理该项目。这将比完全重写便宜得多,您不会牺牲任何功能,也不会重新引入已在现有应用程序中解决的错误。它也可以逐步完成(取决于问题是什么以及需要如何解决)。

答案 4 :(得分:1)

“更成熟的IT公司”提供的建议在访问/ sql server项目中非常常见。该建议几乎总是将它们重新编写为Web应用程序。

我去年自己做了这个 - 拿了一个MS Access前端/ SQL Server后端应用程序,并将访问部分重写为C#/ ASP.Net网站。由于切换,我们享受到了更好的性能和更大的灵活性,但是旧的前端已经存在了足够长的时间,以至于我们从未在重写之前获得我们曾经拥有的所有功能。

如果您实际上看到70个并发用户,并且没有一个用户遇到性能问题,并且您的公司网络足够安全,那么通过重写应用程序可能会损失更多,至少在功能方面。另一方面,这可能是评估“什么有用”和“什么可以更好地工作”的好机会 - 并且可以增强工作流程。

优秀的编码标准使用并不一定能转化为优秀的应用。

答案 5 :(得分:1)

是什么促使审核?他们的解决方案是否解决了这个问题?

我们来做数学: 人:70 平均。小时使用软件/日:2(保守) 薪水/小时:8.00美元(真正保守) 营业日/年:250(周末和假期/病假)

使用申请的劳动力成本:70 * 2 * 8 * 250 = $ 280,000 /年(可能超过500K)

你能获得多少改善? 5%,10%,25% 新申请需要多少钱? 50K,100K,200K

如果您能够节省这段时间,您的用户是否可以获得创收活动,或者他们是否有更多时间在网上冲浪?您可能想要创建一些工作效率因子:90%,75%

答案 6 :(得分:0)

简单回答...使用SQL服务器作为后端,可以克服使用Access的大多数“风险”。你已经说过你当前的解决方案了。

所以归结为你未来的计划。如果您现有的应用程序没有遗漏任何无法通过访问提供的功能,我会坚持使用您拥有的功能。 如果您需要新功能,我会考虑一些事情。

  1. Access是无法提供或做得好(例如:面向Internet的解决方案)?
  2. 拥有新功能可获得哪些潜在好处?
  3. 拥有新功能会产生什么潜在成本?
  4. 你能把1美元的数字放在1& 2?
  5. 在Access中开发解决方案的程度是多少?
  6. 在C#中开发解决方案的费用
  7. 换句话说,总是做CBA :)更好的是,你是否拥有CBA,然后要求两家公司为你提供一个,并进行比较以获得乐趣。在最糟糕的情况下,您可能会让现有公司降低价格以保留您作为客户的利益。

相关问题