0

我试图通过将一个已经变得相当复杂的“Web 用户控件”迁移到一个单独的独立“服务器控件”项目中来重构我的代码。此外,该控件内部还有一些javascript逻辑。

所以,我想得到一些建议:

  1. 如何以及在何处放置(迁移)来自 Web 用户控件的现有 javascript 逻辑?
  2. 如何在逻辑上和干净地分离 ASP.net 页面的现有 javascript?任何目录结构建议都将受到高度赞赏。

请耐心等待,因为我是一个非常初学者。

善良的毕业生

4

1 回答 1

1

这个问题的答案很长,很复杂,而且因情况而异。尽管如此,在这样的代码库上工作过,我还是学到了一些东西:

  1. 编写测试:对于任何遗留代码库都是必不可少的。您必须在更改代码之前编写测试。如果它像您说的那样紧密耦合,那么当您的更改的小副作用开始潜入生产时,不编写测试将使您进入项目 2 个月。

  2. 使 javascript 不显眼:将所有 javascript 放入 .js 文件中,远离服务器和结构。这样,您在编写服务器端代码时就不必担心一件事了。

  3. 分而治之:这可能是任何人都可以给你的最好的提示。我曾经参与过一个项目,该项目有 5000 个代码行文件,其中 html、javascript 和 Visual Basic 都混杂在一个丑陋的混乱中。在那里我了解到,通过将这些大型类提取到 100 行的文件中,我可以更好地理解每个块的意图并轻松找到受骗者。

  4. 手边有一个 BA:有时整个网页/类是如此混乱,以至于重写它的一部分是使其恢复到可维护状态的唯一方法。有一个可以解释业务逻辑的人非常重要,尤其是在这种情况下,因为他们可以告诉你一个类应该做什么,为什么这样做,以及哪些部分已经过时。在我谈论的同一个项目中,我们开始重写某些页面。有了 BA 和我们一起,我们可以删除大约 30% 的代码,因为它已经过时了。在 25 万行代码库上完成 30% 的工作确实很有用,尤其是在最后期限迫在眉睫的时候。

  5. 不要使用 web 控件,使用 html / jquery 和处理程序:asp.net web 控件不适合 web 标准。他们不能很好地使用 ajax,也不能很好地使用面向 SPA 的方法。如果您要对此进行重构,请将 Web 控件替换为其 html 输入等效项,然后使用 javascript(jQuery、ext/sencha、dojo 等)添加所需的行为。然后,您可以在服务器上编写可以使用 AJAX 调用的处理程序。

  6. 你不应该独自做这件事:你应该是一个团队的一员,该团队有一个架构师来设置使用的路线图和模式;了解 javascript、html 和一些 .Net 的前端开发人员;一个了解 c# 和 .Net 以及 SQL Server 或数据库技术的后端开发人员和一个了解 html5 和 css 的设计人员,因此他可以提出更好的文档结构方法。

  7. 您可能根本不应该这样做:如果您像您所说的那样是初学者,那么您应该从事正确制作的 Web 项目并学习如何编写正确的代码。我当然不是要侮辱你,但这是一项艰巨的任务,有很多复杂性和大量陷阱。这些项目通常是由 VB6 程序员开发的应用程序,在过去十年之初尽快进入网络潮流,因此将大量程序代码复制并粘贴到多个类和古怪的做事方式中,仿佛编码器对 OOP 知之甚少(让我们面对现实吧,大多数 VB 开发人员至少在 ASP.net 刚出现时不知道或不知道)。负责人应该是经验丰富的 ASP。

于 2013-10-02T17:32:06.603 回答