• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NETCore实践:ABP模块化&统一返回结果

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1、简介

ASP.NET Boilerplate (ABP) is an open source and well-documented application framework. It's not just a framework, it also provides a strong architectural model based on Domain Driven Design, with all the best practices in mind.

2、特点

(1)模块化

  • 模块结构

包括 IOC、应用配置、应用startup&shutdown的事件

  • 使用

注册服务

实现模块的属性、事件及模块依赖

(2)默认仓库

提供了完善的数据库操作方法

(3)工作单元

  • 默认工作单元

Some methods are unit of work methods by default:

All MVC, Web API and ASP.NET Core MVC Controller actions.
All Application Service methods.
All Repository methods.

  • 使用特性

[UnitOfWork]

(4)多语言

  • 多数据源

    支持Json、XML、Resource、自定义数据源

  • 满足各种使用场景

    Class、Razor View、JS

(5)自动映射

[AutoMapTo(typeof(User))]

[AutoMapFrom(typeof(UserDto))]

[AutoMap]

(6)动态API

直接将“应用服务层”的方法生成Restful API进行暴露

(7)统一返回结果

效果

{
  "result": {
  ...
  },
  "targetUrl": null,
  "success": true,
  "error": null,
  "unAuthorizedRequest": false,
  "__abp": true
}

模型类

(8)...

异常处理、动态JS代理等

 

二、ABP模块化-返回结果分析

1、Startup注册ABP模块化服务

// This method gets called by the runtime. Use this method to add services to the container.
public IServiceProvider ConfigureServices(IServiceCollection services)
{
	//此处省略其它注册服务
	...
	
	//Configure Abp and Dependency Injection
	return services.AddAbp<WebApiModule>(options =>
	{
		//Configure Log4Net logging
		options.IocManager.IocContainer.AddFacility<LoggingFacility>(
			 f => f.UseAbpLog4Net().WithConfig("log4net.config")
		 );
	});

第一个模块化类

    [DependsOn(
        typeof(WebCoreModule))]
    public class WebApiModule: AbpModule
    {
        private readonly IConfigurationRoot _appConfiguration;

        public WebApiModule(IWebHostEnvironment env)
        {
            _appConfiguration = AppConfigurations.Get(env.ContentRootPath, env.EnvironmentName);
        }

2、针对AbpModule的服务容器扩展

 

 调用MvcOptions的扩展

 

 3、MvcOptions的扩展

添加了结果过滤器Action Result Filter

 

 4、结果过滤器

 

 5、包装器工厂

 

 6、包装器

 

 7、统一的返回结果

 

 

三、参考

  • ABP官网

https://aspnetboilerplate.com/Pages/Documents/Introduction

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET图片上传和截取发布时间:2022-07-10
下一篇:
asp.net中Button按钮失效问题解决办法发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap