我是 MVC 和 Web API 的新手。我创建了两个独立的项目。一个ASP.NET MVC 5(MyUI)和其他ASP.NET Web API 2(MyApi)。我想将我的API项目与我的UI层分开。
MVC项目(MyUI)中的AccountController类基本上与API项目中的AccountController(MyApi)相同。我首先考虑使MyUI.AccountController成为MyApi.AccountController的子类,但后来我很快意识到第一个继承自Controller,第二个来自ApiController类型。
所以我的问题是:
修改
编辑2: 在试图阐明问题的同时,我意识到我的错误。我的困惑来自嵌入在API项目中的ASP.NET身份实现。这需要移动到数据访问层,并且两个控制器都需要以相同的方式访问它们,这是一种完全不同的蠕虫:)
谢谢!
答案 0 :(得分:1)
方法1似乎是一个合理的解决方案,但我建议创建一个新的类库,然后放置数据逻辑。这样,MVC项目和Web Api项目就可以连接到该类库。 原因是你永远不知道你是否写了另一个UI层,服务层或其他连接层。然后,所有这些层都可以连接到相同的数据逻辑层。
答案 1 :(得分:1)
将公共实现提取到单独的项目(例如类库)。无论您如何访问它,您的业务逻辑必须相同。毕竟,Web服务和站点只是相同信息和相同控制逻辑的视图。在将来,您可能需要在WPF中编写 fat </ em>客户端或在WCF中编写服务,并且您不想重写所有内容,是吗?
答案 2 :(得分:1)
我认为您在询问分层应用程序。基本上选择取决于要求。如果您遵循以数据为中心的设计,请检查此分层
关于DI,ORM,存储库模式,SOLID原理的研究