如何构建C#解决方案

时间:2011-11-21 09:03:40

标签: c# structure

  

可能重复:
  Namespace/solution structure

如果我正在创建一个大型C#应用程序,我应该将它全部保存在一个项目中吗?

我计划拥有数据层和GUI层。这些应该在一个项目中还是应该分成两个项目?在这个阶段,我认为它应该都在一个项目中,因为你可以只有一个单独的类文件夹来代表数据层并在需要时实例化它们。

假设我有一个单独的数据层项目,该项目(以及DLL)应该被调用什么?我不打电话给它<ProductName>_DataLayer.DLL。你永远不会看到它。

还有其他重要问题吗?保持主.EXE的大小是否重要?

7 个答案:

答案 0 :(得分:2)

我个人对该主题的最爱:Scott HanselmanMike Roberts

答案 1 :(得分:1)

您应该将这些图层作为单独的项目放在同一解决方案中,例如,数据图层将是一个类库项目,它可能被命名为YourProjectName.DAL,例如ProductName.DAL.DLL或DataLayer

答案 2 :(得分:0)

始终建议使用数据和GUI分离,您​​永远不知道将来需要对数据层做些什么。

我正在使用.Data .UI命名约定,没关系。

答案 3 :(得分:0)

我肯定会在他们自己的项目中保留单独的图层。根据应用程序的大小,我还建议根据功能将其分解为逻辑分组。

你可以随意调用它。您可以在项目的“属性”窗口中将程序集名称设置为与项目名称不同。

答案 4 :(得分:0)

您必须考虑的是您是否要在多个项目之间重用数据层。如果答案是肯定的,那么你应该将它放在一个单独的项目中。

如果不是,将它与GUI分开可能仍然是明智之举,以防万一出现你没想到的情况。 (例如,您决定创建一个Web服务)

命名: 我更喜欢DATA和UI来命名约定。

如果解决方案变得非常大,您可以考虑使用“解决方案文件夹”。

答案 5 :(得分:0)

更简单的方法是让所有项目都在同一个解决方案中。

但是如果你有很多项目 - 很久以前创建的项目并没有被修改(或修改很少见) - 最好将它们从解决方案中排除,将DLL移动到某个公共文件夹并用作dll从解决方案中引用。

对于名称,我们使用点分隔 - 例如&lt; project&gt; .dal.dll

答案 6 :(得分:0)

同一解决方案中的不同项目是一种很好的方法,但实际上取决于项目的使用方式。

在某一点上,通常会有一个 ProjectName.UI&gt; ProjectName.BLL&gt; ProjectName.DAL 体系结构,然后创建一个Model项目来定义数据契约,以便在层之间移动数据。

BLL =业务逻辑层 DAL =数据访问层

每个图层都编译成不同的程序集,并为您的界面添加一个EXE。编译的EXE的大小并不是真正的问题,但更多的是使架构正确 - 如果每个层都有一个单独的项目,它将使您的部署更易于管理。

现在更常见的是使用Repository模式体系结构,这非常适合使用ORM。你想要可测试的,基于组件的代码,易于开发和重构,你一定要考虑使用存储库。