0

假设您要创建一个复杂的后端系统。系统中的某个位置有一个IQueue接口。您计划有队列几种实现方式:Visual Studio解决方案/项目组织

  • 天真“内存”
  • 数据库(其中队列在数据库管理)
  • 亚马逊SQS(使用Amazon SQS云服务)
  • MS /谷歌/其他队列服务

显然,每个实现都需要它自己的阶级和实现。每个实现可能需要不同的引用(数据库将要求DLL与相关数据库进行通信,Amazon SQS将要求Amazon AWS DLLs等)

您将如何组织此类场景的解决方案?

假设接口和幼稚实施是其中使用的队列中的项目的地方,我看到以下可能的选择:

  • 独立的Visual Studio(并因此组装)每个实现:
    • 专业:清洁工程,项目级别的“单一职责”,更容易更新具体实施
    • Con:很多项目,很多组件需要管理/部署,速度较慢Visual Studio
  • 所有“非天真”实施的单个项目:
    • Pro/Con:与第一个选项完全相反。
+0

Definetly更多的程序集。 – TcKs

+2

你已经制定了优点/缺点的方式没有任何意义。在一个解决方案中创建多个项目问题解决了。一切都干干净净,易于更新,不违反单一责任等。如果Visual Studio速度太慢,请在解决方案资源管理器中右键单击您未处理的项目,然后选择“卸载项目”。这正是解决方案所设计的目的。 –

+0

@Cody:我很清楚项目是为此设计的。然而,只是“越来越多”项目而不去思考,是一种不好的做法。而且你无法摆脱这样一个事实,即越来越多的项目导致VS速度变慢(并且卸载项目并不是真正的解决方案),并且缩短了构建时间。并补充说明,您需要管理/部署/ etc等您添加的每个程序集... – SaguiItay

回答

2

在我看来,你会为每个执行单独的Visual Studio项目中列出的第一条路线是最好的一个,理由已上市。它还具有额外的好处,可以随时添加实现,而无需替换二进制文件,这非常好。

相关问题