将个人库存储为控制台应用程序是个坏主意吗?
Is storing personal libraries as console applications a bad idea?
我已经开始将我的默认库类型设为控制台应用程序。直接的好处是我可以轻松地在主应用程序中实施集成测试。
不将我的库作为标准 DLL 有缺点吗?到目前为止一切似乎都运行良好。
我将始终能够访问这些库的源代码,并且我将始终将它们作为项目引用,而不是作为二进制文件引用,如果这有所不同的话。
编辑:
我主要好奇的是 DLL 与 EXE 的功能是否存在差异。我并不十分担心会发送几千字节的额外数据。
额外编辑:
就功能而言,事实证明 Razor 无法引用另一个未设置为构建为库的项目,因此除了组织之外至少有一个原因不这样做。
The immediate benefit is that I can easily implement integration tests within the main application.
你为什么要这样做?我根本不认为这是一个好处。为什么要在部署生产代码时部署测试?为什么在你的二进制文件中进行测试会使它成为控制台应用程序,除非你正在编写自己的临时测试?
我强烈建议只使用普通 class 库 - 并有一个单独的普通 class 库用于测试,使用许多标准测试库之一 - NUnit、xUnit 等。您当前的这种方法听起来更容易引起混乱,而不是什么好东西。
我已经开始将我的默认库类型设为控制台应用程序。直接的好处是我可以轻松地在主应用程序中实施集成测试。
不将我的库作为标准 DLL 有缺点吗?到目前为止一切似乎都运行良好。
我将始终能够访问这些库的源代码,并且我将始终将它们作为项目引用,而不是作为二进制文件引用,如果这有所不同的话。
编辑:
我主要好奇的是 DLL 与 EXE 的功能是否存在差异。我并不十分担心会发送几千字节的额外数据。
额外编辑:
就功能而言,事实证明 Razor 无法引用另一个未设置为构建为库的项目,因此除了组织之外至少有一个原因不这样做。
The immediate benefit is that I can easily implement integration tests within the main application.
你为什么要这样做?我根本不认为这是一个好处。为什么要在部署生产代码时部署测试?为什么在你的二进制文件中进行测试会使它成为控制台应用程序,除非你正在编写自己的临时测试?
我强烈建议只使用普通 class 库 - 并有一个单独的普通 class 库用于测试,使用许多标准测试库之一 - NUnit、xUnit 等。您当前的这种方法听起来更容易引起混乱,而不是什么好东西。