在服务器控件中分离 Javascript

Separating Javascript in Server Control

本文关键字:Javascript 分离 服务器控件      更新时间:2023-09-26

我正在尝试通过将变得非常复杂的"Web 用户控件"迁移到一个单独的独立"服务器控件"项目中来重构我的代码。此外,该控件内部还包含一些JavaScript逻辑。

所以,我想得到一些关于以下方面的建议:

  1. 如何以及在何处放置(迁移(来自 Web 用户控件的现有 JavaScript 逻辑?
  2. 如何在逻辑上干净地分离 ASP.net 页面的现有JavaScript?任何目录结构建议将不胜感激。

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

善良的毕业生

这个问题的答案很长,很复杂,并且因情况而异。尽管如此,在处理过这样的代码库之后,我学到了一些东西:

  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程序员开发的应用程序,在过去十年开始时尽快加入Web潮流,因此将许多过程代码复制并粘贴到多个类和古怪的做事方式中,就好像编码人员对OOP知之甚少(让我们面对现实吧, 大多数 VB 开发人员没有或没有,至少在 ASP.net 第一次出现时(。负责人应是一位经验丰富的 ASP.Net 开发人员,对现代 Web 技术有深入的了解,并且在使遗留项目与最新的行业标准保持同步方面具有可取的经验。