Summary of the features of the ASP. NET sample project's ABP framework, asp.net sample

Source: Internet
Author: User
Tags eventbus

Summary of the features of the ASP. NET sample project's ABP framework, asp.net sample

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
ASP. NET Boilerplate adopts the following technologies:

  • 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.

What is ABP?
ABP is a starting point for new modern Web applications to use best practices and use the most popular tools. It can be used as a basic framework or project template for general-purpose applications. Its functions include:

Server:

  • Based on the latest. NET Technology (currently ASP. net mvc 5, Web API 2, C #5.0, will be upgraded after ASP. NET 5 is officially released)
  • Implement domain-driven design (entity, warehousing, domain services, domain events, application services, data transmission objects, work units, etc)
  • Layered Architecture (domain layer, application layer, presentation layer and infrastructure layer)
  • Provides an infrastructure for developing reusable and configurable modules
  • Integrate some of the most popular open-source frameworks/libraries, maybe some of which you are using.
  • It provides an infrastructure for us to easily use dependency injection (using Castle Windsor as the container for dependency injection)
  • The Repository storage mode is provided to support different ORM (Entity Framework, nhib.pdf, MangoDb, and memory database have been implemented)
  • Supports and implements database migration (EF Code first)
  • Modular Development (each module has an independent EF DbContext and can specify a database separately)
  • Including a simple and flexible multilingual/localization system
  • Includes an EventBus to implement global domain events on the server.
  • 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)
  • Automatically create the Web Api layer through Application Services (no need to write the ApiController layer)
  • Provides base classes and help classes for us to conveniently implement some common tasks.
  • Use "conventions are better than configuration principles"

Client:

  • Bootstrap, Less, AngularJs, jQuery, Modernizr, and other JS libraries: jQuery. validate, jQuery. form, jQuery. blockUI, and json2
  • A project template is provided for single-page applications (AngularJs, Durandaljs) and Multi-page applications (Bootstrap + Jquery.
  • 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.

 

 

What is the out-of-the-box IP address?
ABP provides an application development model for best practices. It has basic classes, interfaces, and tools that make it easy for us to build large-scale applications that can be maintained.

However:

  • It is not one of the RAD tools. The RAD tool aims to create applications without coding. On the contrary, abcprovides an encoding best practice.
  • It is not a code generation tool. At runtime, although it has some features to build dynamic code, it cannot generate code.
  • It is not an integrated framework. On the contrary, it uses popular tools/libraries to complete specific tasks (for example, using EF for ORM and Log4Net for logging, so that Castle Windsor can be used as a Lai injection container, angularJs is used for the SPA framework ).

As far as I have been using it for a few months, although it is not RAD, it is definitely much faster to use it to develop projects than the traditional three-tier architecture.

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

I use the code generator developed by Scaffolder + T4 in VS2013. All the front-end code and database can be automatically generated based on the UML class diagram of the domain object. The simple CURD module almost does not need to write code, modules with complex business logic can be used to supplement the domain-layer code. In this way, we can spend more time designing Domain Models to reduce the time required 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.