doc/WebSite/Introduction.md
ASP.NET Boilerplate (ABP) is an open source and well-documented application framework. It's not just a framework, it also provides a strong architectural model based on Domain Driven Design, with all the best practices in mind.
ABP works with the latest ASP.NET Core & EF Core but also supports ASP.NET MVC 5.x & EF 6.x as well.
Let's investigate a simple class to see ABP's benefits:
public class TaskAppService : ApplicationService, ITaskAppService
{
private readonly IRepository<Task> _taskRepository;
public TaskAppService(IRepository<Task> taskRepository)
{
_taskRepository = taskRepository;
}
[AbpAuthorize(MyPermissions.UpdateTasks)]
public async Task UpdateTask(UpdateTaskInput input)
{
Logger.Info("Updating a task for input: " + input);
var task = await _taskRepository.FirstOrDefaultAsync(input.TaskId);
if (task == null)
{
throw new UserFriendlyException(L("CouldNotFindTheTaskMessage"));
}
ObjectMapper.MapTo(input, task);
}
}
Here we see a sample Application Service method. An application service, in DDD, is directly used by the presentation layer to perform the use cases of the application. Think UpdateTask as a method that is called by JavaScript via AJAX.
Let's see some of ABP's benefits here:
We can see the benefits of ABP in this simple class. All these tasks normally take significant time, but are automatically handled by the framework.
Besides this simple example, ABP provides a strong infrastructure and development model for modularity, multi-tenancy, caching, background jobs, data filters, setting management, domain events, unit & integration testing and so on... You focus on your business code and don't repeat yourself!
You can start with the startup templates or the introduction tutorials.
Directly create a modern looking startup project from the startup templates.
Startup templates provides a basic layout and some common features for an application. There are several startup templates with different options.
See the download page for other combinations.
Step by step tutorials introduces the framework and explains how to create your application based on the startup templates.
There are many sample projects developed with the framework. See the samples page.
This is an open source project and open to contributions from the community.