【问题标题】:Common Business Layer for a new Web API and existing ASP .NET Web site Solution新 Web API 和现有 ASP .NET 网站的通用业务层解决方案
【发布时间】:2020-01-19 07:52:44
【问题描述】:

我们有一个活跃的、完全开发的 ASP.NET Web 应用程序,它允许用户为各种屏幕/模块创建/更新数据。

现在,需要构建一个 Web API 来自动为特定模块创建数据。

此 API 将从源系统接收数据并将发布的数据保存到我们的应用程序数据库 (最终去掉前端创建选项)

Web 解决方案在解决方案中包含自己的业务和数据层,我们正在寻找重用这些层的方法 在 API 中也是如此。

我能想到的一种方法是将业务层称为 Web API 中的 dll,但这会 提供对 BL 中目前不需要的其他类和方法的访问

谁能建议正确的方法是什么?

【问题讨论】:

  • 您可以在解决方案本身中创建一个新的Web API项目,并在其中添加对Business和Data Access层的项目引用。
  • 当您引用任何 DLL 或项目时,您可以访问所有公开可用的类型。由您决定哪些应该使用,哪些不应该使用。您可以做的另一件事是创建完整的新类库,它将仅公开某些想要在 Web API 中使用的类。
  • 为 WebAPI 创建单独的项目,一个用于 BLL (BusinessLogic) 和 DAL 的类库项目。然后在 WebAPI 项目中添加 BLL 的引用,在 BLL 中添加 DAL 引用。

标签: c# asp.net asp.net-web-api architecture


【解决方案1】:

将一个解决方案拆分为多个项目并不是一件坏事。 一个用于 BLL 的项目,另一个用于 DAL 的项目是一种很好的方法,我绝对建议您这样做。

是的,这确实意味着如果您将 BLL 项目的引用添加到 API 中,那么是的,API 将可以访问比它现在需要的更多的东西,但这并不是真正的问题。你用多少取决于你。

另外,如果您开始使用 API,您可能会发现越来越多的代码会自然而然地趋同于此,因此访问所有内容将使生活更轻松、更长久。

如果您认为其中有价值,您还可以将您感兴趣的特定代码分解为一个额外的项目/dll,并在 API 中引用它,但我认为这不是特别有用。

我强烈推荐的另一件事是为您的模型类创建一个单独的项目,这样可以更轻松地共享它们。

【讨论】:

    猜你喜欢
    • 2020-01-01
    • 1970-01-01
    • 2020-12-08
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多