.net 实用程序库中要包含的内容

.net 实用程序库中要包含的内容,.net,code-reuse,utilities,common-tasks,.net,Code Reuse,Utilities,Common Tasks,随着越来越多的项目在我的控制之下,我发现我经常在项目之间、客户之间重复许多常见的任务。因此,我开始组装一个“实用程序”库,它是这些常见元素的集合,这些元素经常在项目之间重复 到目前为止,我有一些工具可以调整图像大小、将数据网格导出到excel、发送电子邮件和替换标记化消息 如果您正在构建/使用.NET实用工具类库,您认为哪些类型的进程有用?您会设想哪些名称空间/组 更新 我说的是一个实际的类库,它被分成名称空间来对公共元素进行分组。就我个人而言,我会将一些功能放入单独的库中,因为“实用性”是一个

随着越来越多的项目在我的控制之下,我发现我经常在项目之间、客户之间重复许多常见的任务。因此,我开始组装一个“实用程序”库,它是这些常见元素的集合,这些元素经常在项目之间重复

到目前为止,我有一些工具可以调整图像大小、将数据网格导出到excel、发送电子邮件和替换标记化消息

如果您正在构建/使用.NET实用工具类库,您认为哪些类型的进程有用?您会设想哪些名称空间/组

更新


我说的是一个实际的类库,它被分成名称空间来对公共元素进行分组。

就我个人而言,我会将一些功能放入单独的库中,因为“实用性”是一个相当主观的术语,一个人觉得有用的东西对另一个人没有那么大的帮助

如果在库中它被分解为描述性名称空间,那么我会说这更好(例如,调整图像大小将在某种.Drawing名称空间中,或者在.Drawing.dll中)

  • 我不会写一个名为“公共”或“实用程序”或“杂项”或。。。你明白了。相反,我将有一个名为“Lib”的目录,并将每个功能区域放在该目录下的单独库中。例如,我可能有一个C++项目的LIB/跟踪、LIB/UI、LIB/NET、LIB/Web。对于C#,我将使用Lib/Acme.Trace、Lib/Acme.Windows.Forms、Lib/Acme.Net等(假设您的顶级名称空间/公司名为“Acme”)
  • 雅格尼。不要去写你可能需要的代码
  • 在两个或多个项目中使用它们之前,不要将它们扔进共享库

  • 虽然我自己只是一个新手,但我发现正则表达式函数和SQL过滤器非常有用。我还有MSSQL的合并复制功能,到目前为止对我来说非常方便。

    我的类库中有很多东西,我可以在项目之间共享:

    • IoC容器和依赖注入框架
    • 一个完整的控制器/观察者框架,允许我将UI代码与后台逻辑代码分离
    • 用于执行SQL的一组合理的独立于数据库的类,负责处理一些语法差异,主要是函数名
    • 许多用于处理数据的其他助手类和实用方法
    • 一些标准化的内部存储类,如
      Tuple
    • 一些自定义集合,如
      Set
      Heap
      ,以及许多用于处理各种类型集合的实用方法

    当我需要更多的东西时,类库会被添加到中。

    我建议不要使用“实用程序”库,而是创建特定于域的(图形、身份验证、验证等)库,并且只在需要的地方包含它们。当然,关键在于具体到什么程度。特异性越强通常越好

    如果它没有领域,那么你可能不完全理解它,这意味着你应该重新评估你正在做什么,并试图首先完成什么


    此外,请记住,在一个或两个项目中有用的东西最终可能只在一个或两个项目中有用。添加过多的类只会导致维护问题。

    Oops,我在帖子中遗漏了一些重要内容,我说的是库而不是类。我已经将项目分为不同的名称空间/类,以便将类似的项目分组在一起。我非常同意第3点。最近我在某个地方读到,直到它被使用一次,并且被重复使用两次(总共3次)之后,它才可重用。罗杰,这一点很好。你对命名有什么建议。到目前为止,我所包含的项目中,有10-20个已经被重复使用。