ABP Development Notes 1-- opening

Click here to enter the ABP Development Notes directory

 

Based on DDD modern ASP.NET development framework - ABP

 

ABP is the "ASP.NET Boilerplate Project (ASP.NET model projects)" for short.

ASP.NET Boilerplate is a modern WEB application development using popular technologies and best practices for a new starting point, it is intended to be a generic WEB application framework and project templates.

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

ABP open source project on Github : https://github.com/aspnetboilerplate

 

The origin of ABP

 "DRY-- avoid duplication of code" is one of the most important idea of ​​a good developer in the development of software available. We all have similar needs in the development of enterprise WEB applications, such as: need to login page, user / role management, rights verification, data validation, multi-language / localization, and so on. A high-quality large-scale software will use best practices, such as layered architecture, domain-driven design, dependency injection. We may also employ ORM, database migration (Database Migrations), logging (Logging) and other tools.

Create an enterprise application from scratch is a tedious task because it requires repeated many common foundation work. Many companies are developing their own application framework to re-used for different projects, and develop some new features on the basis of the framework. But not every company has such strength. If we can share even more, perhaps to avoid duplication of each company or write similar code for each item. On the reason why the project named "ASP.NET Boilerplate", is the hope that it will become a new starting point for the development of general business WEB applications directly to ABP as a project template.

 

What ABP that?

ABP is a starting point for the use of best practices and the most popular tool for the new modern Web applications. Basic framework or project templates can be used as a general-purpose applications. Its features include:

Service-Terminal:

  • Based on the latest .NET technologies (ASP.NET Core, EF Cor, ASP.NET MVC 5.x, EF6.x)
  • Implement domain-driven design (entity, warehousing, field service, field events, application services, data transfer objects, work units, etc.)
  • Tiered architecture (domain layer, application layer, presentation layer and the infrastructure layer)
  • It provides an infrastructure to develop reusable modules can be configured
  • Some of the most popular open source integration framework / library, perhaps some of you are using
  • Provides an infrastructure that allows us to easily use dependency injection (using Castle Windsor as dependency injection container)
  • Storage Repository provides support different modes of ORM (realized Entity Framework, NHibernate, MangoDb and memory database)
  • Support and implement database migration (EF of the Code first)
  • Modular Development (each module has a separate EF DbContext, the database can be specified separately)
  • It includes a simple and flexible multi-language / localization system
  • EventBus to include a global field of server-side event
  • Consistent exception handling (application layer requires little processing to write exception handling code)
  • Data validation (Asp.NET MVC Action can do parameter validation method, ABP achieved validation parameters Application layer method)
  • Application Services automatically create Web API layer (layer does not need to write APIController a)
  • It provides a base class and a helper class allows us to easily achieve some common tasks
  • Use the "convention over configuration principle"

 

Client:

  • Bootstrap, jQuery, Angular, Vue, React and other JS libraries: jQuery.validate, jQuery.form, jQuery.blockUI, json2 etc.
  • Project templates available as a single-page application (Angular, Vue, React) and multi-page application (Bootstrap + jQuery).
  • Automatically create proxy layer Javascript to be more convenient to use Web API
  • Some Javascript functions package, more convenient to use ajax, mask layer message box, the notification component, the busy state or the like

 

In addition to ABP Framework Program, has also developed called "Zero" module implements the following functions:

  •  Users, roles, permissions, and organizational units management interface.
  •  Tenants, version management interface and functionality, tenant subscription system.
  •  Xamarin mobile applications.
  •  Setting management interface.
  •  Dynamic management user interface language, RTL support.
  •  Live chat and notification system.
  •  The audit log reporting user interface.
  •  User profile, account linking, simulation, social sign-on ...
  •  Metronic theme based.

 

What ABP not?

ABP provides an application development model for best practices. It has a base class, interfaces, and tools allow us to build large-scale applications easily maintainable.

however:

It is not one of RAD tool RAD tool purpose is to create applications without coding. Instead, ABP offers the best practices of encoding.

It is not a code generation tool. At runtime although it has some features build dynamic code, but it can not generate code.

It is not a framework for integration. Instead, it uses the popular tools / libraries for a particular task (e.g., EF made by the ORM, made with Log4Net logging, such as Castle Windsor depends into the container, for AngularJS SPA frame).

——

Guess you like

Origin www.cnblogs.com/IT-Evan/p/ABP1.html