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

时间:2009-01-02 19:06:59

标签: .net code-reuse utilities common-tasks

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

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

如果您正在构建/使用.NET实用程序类库,那么您认为哪些类型的进程有用?你会想到什么命名空间/组?

更新

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

5 个答案:

答案 0 :(得分: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. YAGNI。不要编写可能所需的代码。
  3. 在两个或多个项目中使用它们之前,不要将内容放入共享库中。

答案 1 :(得分:1)

就个人而言,我会将一些功能放入不同的库中,因为“效用”是一个相当主观的术语,一个人发现有用的东西对另一个人没那么有用。

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

答案 2 :(得分:1)

我的班级图书馆里有很多东西,我在项目之间分享:

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

当我需要更多内容时,会添加类库。

答案 3 :(得分:1)

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

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

另外,请记住,在一个或两个项目中有用的内容可能最终仅在一个或两个项目中有用。添加超过必要的类只会导致维护问题。

答案 4 :(得分:0)

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