【问题标题】:Web API project structure and architectureWeb API 项目结构和架构
【发布时间】:2016-09-06 08:19:00
【问题描述】:

解决方案结构:

MyProject - WEBAPI

MyProject.CORE - 类库

MyProject.Models - 类库

MyProject.DAL - 类库

项目参考:

MyProject 指的是 CORE , MODELS

MyProject.CORE 指的是 DAL、模型

MyProject.DAL 指的是模型

项目描述:

我正在尝试使用 ASP.NET MVC WEB API 创建一个应用程序。这样我就可以在未来的移动应用程序中调用我的 API。我在这种分层架构背后的想法是 WEB API 项目将保存我的桌面应用程序的前端视图,并在按钮单击事件上调用 API 控制器方法。 API 控制器中的事件处理程序方法将调用 CORE 项目中的方法,我将在其中实现业务逻辑。然后调用将转到 DAL,在那里我将调用 DB Stored Procs 来插入数据。由于 MODELS 项目被称为其余 3 ,我将能够在它们之间传输对象。

下面是我的问题。

1) 我可以使用上面相同的 Web API 项目来创建我的桌面应用程序的视图并在按钮单击等事件上调用 API 控制器方法吗?

2) 我不想将我在 CORE 应用程序中的业务逻辑的实现暴露给任何其他引用项目。但我仍然需要遵循分层架构。

我怎样才能做到这一点。请举例说明。

3) 有没有我可以遵循的最佳架构来满足上述要求。

4) 这是一个有效的 WEB API 架构吗?是否可行?

请将 Model 示例设为 UserModel {Name, Password, Email}

【问题讨论】:

  • 为什么?在不同的项目中分开有什么用,而不仅仅是同一个项目中的文件夹?你打算在 DAL 项目中投入什么?对我来说,闻起来像是过度设计。我总是分开开始的唯一项目是带有测试的项目,所以我猜你错过了 MyProject.Tests 项目。

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


【解决方案1】:
  1. 我假设您的意思是“解决方案”,而不是“项目”。是的,您可以将混合类型的项目保留在一个解决方案中,即用于 IIS 托管的 Web API 和引用您的核心的 WPF 应用程序。
  2. 这就是接口和依赖注入发挥作用的地方。创建单独的接口项目来引用和使用一些依赖绑定模块,如 ninject 或 Microsoft Locator
  3. 遵循任何架构模式时,请记住模式是为开发人员创建的,而不是相反。我想说的是,当你遵循任何架构时,你——而且只有你——知道你想要实现什么。如果您不知道自己在做什么,请不要拘泥于任何模式,并且可以根据自己的需要随意调整任何模式。现在保持简单。
  4. 是的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多