如何构建新的 ASP MVC 应用



我需要启动一个新的 mvc 项目,并且一如既往地遇到有关 asp 标识的问题,永远不知道把它放在哪里!

我计划像这样组织解决方案:

  • ProjectWebUI - 带有asp身份框架的mvc应用程序(由具有身份验证的Internet模板制成(
  • ProjectDataAccessLayer - 使用dapper作为数据库访问技术的存储库类
  • ProjectWebAPI - Web 服务

但是我有点困惑,在开始编码之前,我需要更有经验的人的建议(因为到目前为止,我的所有项目都只是一个具有数据访问权限的项目(:

  1. WebUI 项目中使用 asp 标识,使用标准实体框架进行数据访问,并在单独的程序集中使用 dapper 进行其他数据访问,这是否是个好主意?
  2. 如果 asp 身份位于 WebUI 项目中,我是否会遇到一些问题来接收对 WebAPI 项目的身份验证访问权限?

这就是我最近组织一个项目的方式:

  • Common — 这是解决方案中的核心项目。它包含所有域实体以及从标识框架继承IdentityUser类 ASP.NET ApplicationUser类。通常,此类位于新的 ASP.NET MVC 项目模板中;我决定把它放到核心库中,因为它代表了一个公共实体,可能需要更高的层和抽象级别。因此,Common引用Microsoft.AspNet.Identity.CoreMicrosoft.AspNet.Identity.EntityFramework程序集。

  • DataAccess — 此项目引用Common库,并包含实体 Franework DatabaseContext以及一些存储库。我使用代码优先方法,我的DatabaseContext继承自IdentityDbContext<ApplicationUser>。因此,它为我提供了一个很好的数据库结构,其中包含用于UsersRoles的表以及其他 ASP.NET 标识内容,以及表示Common项目中我的自定义业务实体的表,因此我可以轻松地将自定义实体与标识对象连接起来。

  • WebApi — 这是一项使用 DataAccessCommon库的REST服务。此处的所有授权和身份验证作业都使用令牌身份验证完成。

  • Web — 这只是我的REST服务的 Web 客户端。

因此,为了回答您的问题:如果 ASP.NET Identity 类和实体框架数据库上下文非常小且易于管理,则可以将其保留在单个项目中;否则,最好远离默认项目模板并为每个主要应用程序模块引入层。

相关内容

  • 没有找到相关文章

最新更新