【问题标题】:projects in solution解决方案中的项目
【发布时间】:2011-04-15 21:32:19
【问题描述】:

我想知道如何将大型应用程序划分为项目。 我需要创建:
1. 数据访问层的一个项目。
2. 业务逻辑层一个项目。
3. 一个 Web 应用项目。
?

要不要把数据访问层和业务登录层放在一起?

另外,数据访问层是否应该依赖业务登录层?

Web 应用程序是否应该直接依赖于数据访问层? (是否应该使用数据访问层的方法来使用业务登录层的对象)?

现在我有两个项目:
1. 网络应用程序。
2.所有代码包括数据访问和业务对象。

【问题讨论】:

    标签: c# .net design-patterns


    【解决方案1】:

    在此处下载 Microsoft 应用程序架构指南,第 2 版,我现在正在阅读它,它对这个主题非常有帮助:

    http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ce40e4e1-9838-4c89-a197-a373b2a60df2

    【讨论】:

    • @Joshua Girard:很棒的发现,我会阅读它,因为它看起来很有帮助,但它有 560 页 - 我必须尽快做出决定......
    【解决方案2】:

    我通常将我的项目分开:

    解决方案
    ->展示层
    ->业务层
    ->数据层

    然后我添加从演示到业务和业务到数据的引用。我从不让我的演示文稿直接与数据交互。通常,我还会在业务层中使用服务,如果需要,这些服务可以部署到单独的位置。

    【讨论】:

    • @Dustin Laine:如果数据层不依赖业务层,您的数据层如何返回业务对象?
    • 当然,根据您编写代码的方式,您可能希望为模型创建另一个项目以供其他人共享。我不遵循 DDD 到 T,所以我同时拥有 MyApplication.Model 和 MyApplication.Business。
    • 我的数据层将返回数据,而不是业务对象。例如一个数据表,业务层将从该数据表变成一个业务对象或业务对象列表。
    • (不值得单独回答 - 因为这个很好)如果您的业务层非常复杂,请考虑根据功能将其拆分为几个包。作为一名 UI 人员,我经常有一个单独的项目来开发可重用的 UI 组件。
    • @Liz:您是否将大型应用程序分成模块?如果是这样 - 这也是我想做的。
    【解决方案3】:

    这取决于您所说的“非常大的项目”是什么意思。

    我们正在编写一个 MVC 应用程序,并且我们将它拆分为几个程序集...一个用于我们正在访问的每个数据库的程序集。但它不仅仅是 DAL,它也有一些特殊的逻辑。这个程序集也有一些共同的功能。

    然后我们有一个共同的网络项目。

    然后,我们为使用这些数据的 3 个站点中的每一个创建了一个 Web 项目,它们都依赖于公共项目。

    如果将其拆分为至少 3 个程序集,可能会更容易维护和开发。原因如下。

    1. 它迫使您分离关注点,需要从数据中获取一些东西?将其放入数据程序集中。需要修改一些javascript?将其放入演示文稿中。
    2. 它允许专业化。您可以找一个 stud 后端开发人员或 javascript 专家,他们可以只处理自己的程序集,而不会影响其他任何人。
    3. 如果前端发生了变化,而您想使用新的前端,则很有可能 DAL 和业务层不需要进行那么多更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多