4

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

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

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

更新

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

4

5 回答 5

5
  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. 在您在两个或更多项目中使用它们之前,不要将它们放入共享库中。
于 2009-01-02T19:12:41.597 回答
1

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

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

于 2009-01-02T19:09:27.627 回答
1

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

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

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

于 2009-01-02T19:15:52.090 回答
1

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

不管它是否没有域,那么您可能并不完全理解它,这意味着您应该重新评估您正在做的事情并首先尝试完成。

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

于 2009-01-02T19:57:26.780 回答
0

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

于 2009-01-02T19:13:48.100 回答