Asp. NET Model Project ABP Framework Characteristics Summary _ Basic Application

Source: Internet
Author: User
Tags eventbus

ABP is "asp.net boilerplate Project" (ASP. NET boilerplate project) ".

asp.net boilerplate is a new starting point for developing modern web applications with best practices and popular technology, designed to be a common Web application framework and project template.

asp.net boilerplate the concept of a classical layered architecture based on DDD, which realizes many concepts of DDD (but does not realize the concept of all DDD).

ABP's official website: http://www.aspnetboilerplate.com

ABP Open Source project on GitHub: Https://github.com/aspnetboilerplate
asp.net boilerplate uses the following techniques:

    • Multi-language/localization support
    • Multi-tenant support (automatic isolation of data per tenant, Business module developers do not need to write code when saving and querying data)
    • Soft deletion support (inherits the corresponding base class or implements the corresponding interface, will automatically implement the soft deletion)
    • Unified exception Handling (the application tier requires little processing of its own write exception handling code)
    • Data validation (asp.net MVC can only do the parameter validation of the action method, ABP realize the parameter validation of the application layer method)
    • Logging (Automatic logging of program exceptions)
    • Modular development (each module has a separate EF dbcontext that can be assigned to a separate database)
    • Repository warehousing Mode (entity Framework, NHibernate, MANGODB, memory database implemented)
    • Unit of work Working cell mode (automatically implement database transactions for the application and storage layer methods)
    • Eventbus implementation domain event (domain events)
    • DLL Embedded Resource management
    • Automates the creation of the Web API layer through application services (no need to write the Apicontroller layer)
    • Automatically create a JavaScript agent layer to make it easier to use the web Api
    • Encapsulates some JavaScript functions to make it easier to use AJAX, message boxes, notification components, busy mask layers, and so on

What is ABP?
ABP is a starting point for using best practices and using the most popular tools for new modern web applications. An underlying framework or project template that can be used as a general-purpose application. Its functions include the following:

Server side:

    • Based on the latest. NET technology (currently asp.net MVC 5, Web API 2, C # 5.0, upgraded after ASP.net 5 is officially released)
    • Implement domain driven Design (entity, warehousing, Domain Services, domain events, application services, data transfer objects, work units, etc.)
    • Implement tiered architecture (domain, application, presentation and infrastructure tiers)
    • Provides an infrastructure for developing reusable, configurable modules
    • Integrate some of the most popular open source frameworks/libraries, perhaps some of which you are using.
    • Provides an infrastructure that makes it easy to use dependency injection (using Castle Windsor as a container for dependency injection)
    • Provides repository warehousing mode to support different ORM (implemented entity Framework, NHibernate, Mangodb, and memory databases)
    • Support and implementation of database migration (EF Code i)
    • Modular development (each module has a separate EF dbcontext that can be assigned to a separate database)
    • Includes a simple and flexible multilingual/localization system
    • Includes a eventbus to implement server-side global domain events
    • Unified exception Handling (the application tier requires little processing of its own write exception handling code)
    • Data validation (asp.net MVC can only do the parameter validation of the action method, ABP realize the parameter validation of the application layer method)
    • Automates the creation of the Web API layer through application services (no need to write the Apicontroller layer)
    • Providing base classes and help classes allow us to easily implement some common tasks
    • Use the Convention over the configuration principle

Client:

    • Bootstrap, less, Angularjs, JQuery, Modernizr, and other JS libraries: Jquery.validate, Jquery.form, Jquery.blockui, Json2, etc.
    • Project templates are provided for single page applications (ANGULARJS, DURANDALJS) and multiple page applications (bootstrap+jquery).
    • Automatically create a JavaScript agent layer to make it easier to use the web Api
    • Encapsulates some JavaScript functions to make it easier to use AJAX, message boxes, notification components, busy mask layers, and so on

ABP not what?
ABP provides an application development model for best practices. It has the basic classes, interfaces, and tools that make it easy to build maintainable, large-scale applications.

However:

    • It is not one of the RAD tools, and the goal of RAD Tools is to create applications without coding. Instead, ABP provides a best practice for coding.
    • It is not a code generation tool. Although it has some features to build dynamic code at run time, it cannot generate code.
    • It is not an integrated framework. Instead, it uses popular tools/libraries to accomplish specific tasks (such as using EF for ORM, logging with log4net, making Castle Windsor as a Lai-injected container, ANGULARJS for the spa framework).

In my experience with ABP for a few months, although ABP is not rad, it's definitely a lot quicker to develop projects than the traditional three-tier architecture.

Although ABP is not a code generation tool, it makes the code for our project more concise and specification, which facilitates the use of code generation tools.

I use the VS2013 scaffolder+t4 development of the code generator, can be based on the domain object UML class diagram to automatically generate all the front and back-end code and database, simple curd modules do not need to write code, a complex business logic module to supplement the domain layer code can be. This can be spent more time on the design of the domain model, reducing the time to write code.


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.