使每个类成为一个单独的程序集

时间:2011-03-31 11:38:49

标签: c# .net assemblies

我不是一位经验丰富的.Net程序员,因此这个问题。

将每个(主要)类放在一个单独的程序集中是不是一个非常糟糕的主意,因此我选择更改可执行文件的任何类的实现都不需要重新编译?或者我的想法是否意味着由于运行时加载等导致严重的性能问题?

我知道这个问题很模糊,但也许有一些具体的指导方针,关于什么应该放在一个单独的集合中,什么基本上不应该

提前致谢

5 个答案:

答案 0 :(得分:5)

这不是一个好主意。将问题放在一个组件中。但每个组件不是一个单独的类。 如果更改两个类,则需要发送两个程序集而不是一个。你赢了什么?

答案 1 :(得分:4)

您谈论客户端软件。一个体面大小的项目,有几百个类 - >客户端软件不接受几百个DLL,这不常见。

装配只是不用担心它。使用每个类的DLL,您将公开所有代码结构 - MyApp.dll,MyApp.MainForm.dll,MyApp.DatabaseLogic.UserAuthentication.dll -

答案 2 :(得分:4)

这是一个非常糟糕的主意。

  • 它不会为您节省编译时间。
  • 这会花费你的运行时间。
  • 这会使您的开发变得复杂 并且花了你很多时间。
  • 会导致错误。
  • C#编译器中的其他机制负责保存 编译时如果你只改1 文件(顺便说一下每个文件一个类 是标准 - 但也有一些 例外)

如果您打算将它们作为单独的组件重新分发(将它们安装到最终用户),则需要将它们放在单独的程序集中。我敢打赌那不是你的情景。

您可能会拆分到程序集的示例:

  • 两个完全不同的程序 - clock.exefacebookAlbumViewer.exe
  • 3层软件:MyProgramDataModel.dllMyProgramBusinessLogic.dllMyProgramGui.exe 在将来,您将发布一个新的MyProgramDataModel.dll(现在可以使用Oracle而不是MySql),因此您只部署该组件。它只适用于大而复杂的软件。

答案 3 :(得分:2)

您在编译时节省多少时间?你会花多少时间为每个班级添加一个新项目?

不要浪费你的时间,让编译器完成他的工作。你的时间比编译器的价值更高。

答案 4 :(得分:0)

如果您正在谈论的所有这些课程都在做不同的工作,并且可以与他们正在进行的业务分开,那么我认为将它们分开组装是可以接受的。但是你也应该小心这个问题,否则你的应用程序可能变成DLL地狱!