【问题标题】:How to structure C# solution [duplicate]如何构建C#解决方案[重复]
【发布时间】:2011-11-21 09:03:40
【问题描述】:

可能重复:
Namespace/solution structure

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

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

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

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

【问题讨论】:

    标签: c# structure


    【解决方案1】:

    我个人最喜欢的主题:Scott HanselmanMike Roberts

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        我正在使用 .Data .UI 命名约定,这很好。

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            【解决方案5】:

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

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

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

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

            【讨论】:

              【解决方案6】:

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

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

              对于名称,我们使用点分隔 - 例如 .dal.dll

              【讨论】:

                【解决方案7】:

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

                在某一时刻,通常有一个 ProjectName.UI > ProjectName.BLL > ProjectName.DAL 架构,然后创建一个模型项目来定义数据协定以在层之间移动数据。 p>

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

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

                现在更常见的是使用存储库模式架构,它非常适合使用 ORM。如果您想要易于开发和重构的可测试、基于组件的代码,您绝对应该考虑使用存储库。

                【讨论】:

                • ;) 坚持 .NET 模式,我使用 .Presentation 作为 UI,使用 .Persistence 作为数据层,使用 .Logic 作为逻辑。
                猜你喜欢
                • 1970-01-01
                • 2010-09-22
                • 2011-12-24
                • 2010-09-09
                • 1970-01-01
                • 1970-01-01
                • 2011-03-06
                • 1970-01-01
                • 2011-11-16
                相关资源
                最近更新 更多