【问题标题】:Separating Javascript in Server Control在服务器控件中分离 Javascript
【发布时间】:2013-10-02 16:59:42
【问题描述】:

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

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

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

请多多包涵,因为我是个初学者。

亲切的退学

【问题讨论】:

  • 这真的取决于你的javascript,所以向我们展示你的代码。

标签: c# javascript asp.net .net-4.0 custom-server-controls


【解决方案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.Net 开发人员,对现代 Web 技术有深入的了解,并且在使遗留项目跟上最新的行业标准方面具有良好的经验。

【讨论】:

    猜你喜欢
    • 2020-08-04
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2015-08-18
    • 2012-03-31
    • 1970-01-01
    相关资源
    最近更新 更多