Click here to enter the ABP series articles Directory
ABP General Introduction:
The ABP is "ASP. Boilerplate Project (ASP. NET Template project) "for short.
ASP. Boilerplate is a new starting point for developing modern web applications with best practices and popular technologies, and is designed to be a common Web application framework and project template.
The ASP. NET boilerplate is based on DDD's classic layered architecture concept, which implements many DDD concepts (but does not implement all DDD concepts).
ABP's official website : http://www.aspnetboilerplate.com
ABP's Open source project on GitHub : https://github.com/aspnetboilerplate
The ABP framework was first open source on GitHub on May 4, 2014, as of May 25, 2015, with a total of 1271 code submissions,49 releases, and now the version number 0.6.1.1.
The ASP. NET boilerplate uses the following technologies:Server-side:
- 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 (dependent injection container)
- Entity Framework 6 \ NHibernate, Data migration
- Log4net (logging)
- AutoMapper (implements bidirectional automatic conversion of DTO classes and entity classes)
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-lingual/localized support
- Multi-tenant Support (data is automatically isolated per tenant, Business module developers do not need to write code when saving and querying data)
- Soft Delete support (to inherit the corresponding base class or implement the corresponding interface, will automatically implement soft delete)
- Uniform exception Handling (the application layer hardly needs to handle its own write exception handling code)
- Data validation (ASP. NET MVC can only do the parameter validation of the action method, the ABP implements the parameter validation of the application layer method)
- Logging (Automatic logger exception)
- Modular development (each module has a separate EF DbContext, which can be specified independently of the database)
- Repository warehousing Mode (entity Framework, NHibernate, MANGODB, memory database implemented)
- Unit of work Unit mode (automatically implements database transactions for application and storage layer methods)
- Eventbus Implementing a Domain event (domain events)
- DLL Embedded Resource management
- Automatically create the Web API layer with application services (no need to write Apicontroller layer)
- Automatically create a proxy layer of JavaScript to make it easier to use the web Api
- Encapsulates JavaScript functions to make it easier to use AJAX, message boxes, notification components, matte layers for busy states, and more
In addition to the ABP Framework project, a module called "Zero" has been developed to achieve the following functions:
- Authentication and authorization management (implemented through ASP. NET identity)
- User & Role Management
- System Settings Access Management (System level, tenant level, user level, scope automatic management)
- Audit logs (automatically record callers and parameters for each interface)
Many of the great designs I've seen in other projects have already existed in the ABP project and may have been done better. The code for the ABP framework has been unit tested through Xunit. The authors have been using the ABP framework to develop their actual projects, and from the information on GitHub and his official forums, there are many foreign developers who use ABP as the basis for their production projects. If you need to use the ABP component directly, you can install it through NuGet (search ABP in the NuGet package management interface of VS).
To better apply the ABP to its own projects, I have made some changes to the source code of the ABP without directly using the ABP components.
In my previous article: New ideas, technologies, new architectures-better and faster development of modern ASP. NET Applications (cont. 1)
I hope that more domestic architects will be able to focus on the ABP project, and perhaps it will help you, perhaps with your participation, that the project can develop better.
Today is just a general introduction, I hope that more friends can read the source code, and then participate in the discussion.
ABP Applicable scenario: Small to Medium size Web application development. (Handling high concurrency is not the strength of ABP.) A very high concurrent DDD framework is required, and it is recommended to study Netfocus's Enode. )
Welcome to add ABP Architecture Design Exchange QQ Group: 134710707
Click here to enter the ABP series articles Directory
DDD-based Modern ASP.--ABP Series 1, ABP overview