Web API项目结构和体系结构

时间:2016-09-06 08:19:01

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

解决方案结构:

MyProject - WEBAPI

MyProject.CORE - 类库

MyProject.Models - 类库

MyProject.DAL - 类库

项目参考:

MyProject指的是CORE,MODELS

MyProject.CORE指的是DAL,MODELS

MyProject.DAL指的是MODELS

项目描述:

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

以下是我的问题。

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

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

我怎样才能实现这一目标。请举例说明。

3)是否有符合上述要求的最佳架构。

4)这是一个有效的WEB API架构,这会有用吗?

请将模型示例作为UserModel {名称,密码,电子邮件}

1 个答案:

答案 0 :(得分:0)

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