An overview of the ABP Program
ABP is short for "ASP. NET Boilerplate Project (ASP. NET sample Project.
ASP. NET Boilerplate is a new starting point for developing modern WEB applications with best practices and popular technologies. It aims to become a general WEB application framework and project template.
Based on the classic layered architecture of DDD, ASP. NET Boilerplate implements many DDD concepts (but does not implement all DDD concepts ).
ABC Official Website: Http://www.aspnetboilerplate.com
Open-source projects on Github: Https://github.com/aspnetboilerplate
The ABP framework was first open-source on Github in May 4, 2014. By May 25, 2015, a total1271 timesCode submission,49 timesVersion released. The current version number is 0.6.1.1.
ASP. NET Boilerplate adopts the following technologies:Server:
- ASP. net mvc 5, Web API 2, C #5.0
- DDD Domain-driven design (Entities, Repositories, Domain Services, Domain Events, Application Services, DTOs, etc)
- Castle windsor (dependency injection container)
- Entity Framework 6 \ nhib.pdf, data migration
- Log4Net (logging)
- AutoMapper (implements two-way automatic conversion between the Dto class and the object class)
Client:
- Bootstrap
- Less
- AngularJs
- JQuery
- Modernizr
- Other JS libraries: jQuery. validate, jQuery. form, jQuery. blockUI, json2
The ABP framework has implemented the following features:
- Multi-language/Localization support
- Multi-tenant support (data of each tenant is automatically isolated, and business module developers do not need to write the corresponding code when saving and querying data)
- Soft Delete support (inherit the corresponding base class or implement the corresponding interface, it will automatically implement soft delete)
- Unified Exception Handling (the application layer almost does not need to handle self-writing Exception Handling Code)
- Data Validity verification (Asp. net mvc can only verify the parameters of the Action method, while ABP can verify the parameter validity of the Application layer method)
- Logging (automatic recording of program exceptions)
- Modular Development (each module has an independent EF DbContext and can specify a database separately)
- Repository warehousing mode (Entity Framework, nhib.pdf, MangoDB, and memory database have been implemented)
- Unit Of Work Unit mode (automatically implement database transactions for the application and warehouse methods)
- EventBus Domain Events)
- DLL embedded Resource Management
- Automatically create the Web Api layer through Application Services (no need to write the ApiController layer)
- Automatically create a Javascript proxy layer to make it easier to use Web APIs
- Encapsulate some Javascript Functions to make it easier to use ajax, message boxes, notification components, and busy state masks.
In addition to the ABP framework project, a module named "Zero" has been developed to implement the following functions:
- Authentication and authorization management (implemented through ASP. NET Identity)
- User & role management
- System Access Management (system-level, tenant-level, user-level, and automatic management of function scope)
- Audit Log (automatically record the callers and parameters of each interface)
I have seen a lot of excellent designs in other projects, and they already exist in the ABP project and may be better implemented. The code of the ABP framework is tested by xUnit. The author has been developing their actual projects using the ABP framework. According to the information on Github and his official forum, many foreign developers are using it as the basic framework for production projects. If you need to directly use the ABP component, you can use Nuget to install it (search for the Abp on the Nuget package management interface of ).
In order to better apply the ABP to my own project, I made some changes to the source code of the ABP without directly using the ABP component.
My previous article introduced: new ideas, new technologies, and new architecture-better and faster development of modern ASP. NET Applications (Part 1)
I hope that more domestic architects will be able to pay attention to this project. Maybe it will help you, or you may participate in it. This project can develop better.
Today, I just gave a rough introduction. I hope more friends can read the source code and participate in the discussion.
The following are some examples of application scenarios:Development of Small and Medium-sized WEB applications. (Processing High concurrency is not the strength of the ABP. We recommend that you study the ENode of netfocus if a highly concurrent DDD framework is required .)
Address: http://www.cnblogs.com/Leo_wl/p/4537392.html