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

到目前为止,我已经拥有用于调整图像大小、将数据网格导出到 Excel、发送电子邮件和替换标记化消息的实用程序。

如果您正在构建/使用 .NET 实用程序类库,您认为什么类型的进程有帮助?您会设想什么名称空间/组?

更新

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

有帮助吗?

解决方案

  1. 我不会写一个名为“Common”或“Utilities”或“Misc”或......的库你明白了。相反,我有一个名为“Lib”的目录,并将每个功能区域放在该目录下的单独库中。例如,我可能有用于 C++ 项目的 Lib/Trace、Lib/UI、Lib/Net、Lib/Web。对于 C#,我有 Lib/Acme.Trace、Lib/Acme.Windows.Forms、Lib/Acme.Net 等。(假设您的顶级命名空间/公司名为“Acme”)。
  2. 亚格尼。不要去编写你想要的代码 可能 需要。
  3. 在两个或多个项目中使用过的东西之前,不要将它们放入共享库中。

其他提示

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

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

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

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

当我需要更多东西时,就会添加类库。

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

无论如何,如果它没有域,那么您可能没有完全理解它,这意味着您应该首先重新评估您正在做的事情并试图完成的事情。

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

虽然我自己只是一个初出茅庐的开发人员,但我发现 RegEx 函数和 SQL 过滤器非常有用。我还拥有 MSSQL 的合并复制功能,到目前为止这对我来说非常方便。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top