代码之家  ›  专栏  ›  技术社区  ›  Cerebrus

代码可重用性-应用程序代码或BIN或用户控件?

  •  2
  • Cerebrus  · 技术社区  · 17 年前

    我最近在另一个论坛上与另一位开发人员进行了讨论,主题是ASP.NET中的代码重用。所述场景是,在服务器正常运行期间,他需要频繁更新生产服务器上的代码,这会导致所有用户重置会话。他避免将共享代码或类放入App_code文件夹,或将预编译的DLL放入Bin文件夹,因为任何更新都会刷新会话。

    注: 使用进程外会话状态目前不是一个选项,他们也无法决定计划的停机时间。此外,由于这是一个正在积极开发的站点,他们似乎还没有使用任何类型的专业部署模型。

    提前谢谢。

    6 回复  |  直到 17 年前
        1
  •  2
  •   ScottS    17 年前

    回答为什么会话会重置编辑。对于进程内会话,所有会话数据都作为应用程序的一部分存储在内存中。对网站的各种更改(例如web.config和其他我不记得的内容)会导致应用程序重新启动,清除应用程序中的所有当前状态。持久化到SQL或进程外会话状态服务器将允许应用程序重置和丢失任何状态,而不会影响会话数据。

        2
  •  2
  •   Joel Coehoorn    17 年前

    听起来主要的问题是他太频繁地更新生产代码。除此之外,UserControls似乎是放置业务逻辑的一个非常合理的地方,特别是如果您对它们有一个良好的命名约定,或者可以将它们放在一个公共文件夹中。

        3
  •  2
  •   baretta    17 年前

    我可以问一下,为什么进程外会话状态不是一个选项,真的?

        4
  •  1
  •   chris    17 年前

    我同意Dennis的观点,从inproc到state server确实没有问题。不确定您的开发/部署平台是什么,但它们应该包括一个会话状态服务——启动它,更改web.config,问题就解决了。

        5
  •  1
  •   BlackTigerX Borut Tomazin    17 年前

    主要问题是该系统的体系结构;需要更新的代码可以放在他的web应用程序之外的其他服务上,他的代码隐藏可以调用这些服务,并且在需要时可以在不影响web应用程序的情况下更新服务

        6
  •  1
  •   BBetances    17 年前

    每个基地都已经被覆盖了,但我真的很讨厌这样的坏习惯。如果这个家伙不能简单地切换到状态服务器来解决他所遇到的问题,那么他就不值得帮助。如果他将类放在项目的根文件夹中并独立编译,会发生什么?不管怎样,我认为这家伙是一个糟糕的开发人员,因为他没有考虑可伸缩性,也没有计划停机时间。我猜他没有可用的开发环境。啧啧啧啧。

    正如其他人所说,作为对您问题的回答,请将代码放在用户控件中,并做好文档记录。

    推荐文章