zoukankan      html  css  js  c++  java
  • ABP框架介绍

    https://blog.csdn.net/WuLex/category_7256369_2.html

    视频教程:https://study.163.com/course/courseMain.htm?courseId=1005208064

    1.1 ABP总体介绍 - 入门介绍

    目前.NET上有不少开源框架。比如Apworks和ABP。其中Apworks是中国人写的一套开源框架。它是一个全功能的,不仅可以写分布式应用,也可以写桌面应用。ABP的全称是Asp.net boilerplate project(asp.net样板工程)。是github上非常活跃的一个开源项目。它并没有使用任何新的技术,只是由两名架构师将asp.net开发中常用的一些工具整合到了一起,并且部分实现了DDD的概念。是一个开箱即用的框架,可以作为asp.net分布式应用的一个良好起点。

    ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。
    ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序基础框架和项目模板

    ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。

    ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序基础框架和项目模板。

    ASP.NET Boilerplate 基于DDD的经典分层架构思想,实现了众多DDD的概念(但没有实现所有DDD的概念)。

    ABP框架于2014年5月4日首次在Github开源,截止到2015年5月25日,总共进行了1271次代码提交,49次版本发布,现在的版本号是0.6.1.1。

    1.1.1 ABP采用了以下技术

    服务器端:

    • ASP.NET MVC 5、Web API 2、C# 5.0
    • DDD领域驱动设计 (Entities、Repositories、Domain Services、Domain Events、Application Services、DTOs等)
    • Castle windsor (依赖注入容器)
    • Entity Framework 6 NHibernate,数据迁移
    • Log4Net(日志记录)
    • AutoMapper(实现Dto类与实体类的双向自动转换)

    客户端:

    • Bootstrap
    • Less
    • AngularJs
    • jQuery
    • Modernizr
    • 其他JS库: jQuery.validate、jQuery.form、jQuery.blockUI、json2

    1.1.2 ABP框架已实现了以下特性

    • 多语言/本地化支持
    • 多租户支持(每个租户的数据自动隔离,业务模块开发者不需要在保存和查询数时写相应代码)
    • 软删除支持(继承相应的基类或实现相应接口,会自动实现软删除)
    • 统一的异常处理(应用层几乎不需要处理自己写异常处理代码)
    • 数据有效性验证(Asp.NET MVC只能做到Action方法的参数验证,ABP实现了Application层方法的参数有效性验证)
    • 日志记录(自动记录程序异常)
    • 模块化开发(每个模块有独立的EF DbContext,可单独指定数据库)
    • Repository仓储模式(已实现了Entity Framework、NHibernate、MangoDB、内存数据库)
    • Unit Of Work工作单元模式(为应用层和仓储层的方法自动实现数据库事务)
    • EventBus实现领域事件(Domain Events)
    • DLL嵌入资源管理
    • 通过Application Services自动创建Web Api层(不需要写ApiController层了)
    • 自动创建Javascript 的代理层来更方便使用Web Api
    • 封装一些Javascript 函数,更方便地使用ajax、消息框、通知组件、忙状态的遮罩层

    “Zero”的模块,实现了以下功能:

    • 身份验证与授权管理(通过ASP.NET Identity实现的)
    • 用户&角色管理
    • 系统设置存取管理(系统级、租户级、用户级,作用范围自动管理)
    • 审计日志(自动记录每一次接口的调用者和参数)

    在其他项目中的很多优秀设计,在ABP项目中也已存在,而且可能实现得更好。ABP框架的代码,都通过xUnit进行了单元测试。作者一直在用ABP框架开发他们的实际项目,从Github和他官方论坛上的信息可以看到,有很多国外的开发者在将ABP用作生产项目的基础框架。如果需要直接使用ABP组件,可以通过Nuget安装(在VS的Nuget包管理界面搜索ABP)。

    为了更好地将ABP适用于自己的项目,我对ABP的源码做了一些修改后使用的,没有直接使用ABP组件。

    我希望更多国内的架构师能关注ABP这个项目,也许这其中有能帮助到你的地方,也许有你的参与,这个项目可以发展得更好。

    今天只是作了一个大概介绍,希望有更多的朋友能去阅读源代码,然后参与讨论。

    1.1.3 ABP适用的场景

    中小规模WEB应用开发,可直接使用ABP框架。 较大型项目可以在ABP框架的源码基础上进行扩展,以实现分布式架构。

    注:处理高并发并不是ABP的强项。需要非常高并发的DDD框架,建议去研究netfocus的ENode。

  • 相关阅读:
    AS2 tween缓动
    flash 绑定 swc类文件
    jsfl自运行与被调运行
    一键清除fla文件中的TLF文本
    as 2的 Event.REMOVED_FROM_STAGE
    jsfl 添加代码
    jsfl 删除库指定内容
    文件上传待研究
    SpringMVC单文件上传、多文件上传、文件列表显示、文件下载
    shiro配置参考(二)可以和mybatis的配置放在一个文件中(不建议这样,可以拆分开来,注意相关配置即可)
  • 原文地址:https://www.cnblogs.com/springsnow/p/13189448.html
Copyright © 2011-2022 走看看