The level of business logic is not intended for heavy lifting, the purpose of which is to provide abstractions by entities in the language of the subject. Thus, the business layer can be used to provide a collaborative and consistent approach for any layers / applications that are necessary to work in this space.
To build things up, to make a point, the ultimate goal would be that the level of business logic is used throughout the organization for all applications running in this subject space. That is, wrapped in a service, etc.
In the real world of small applications, to do this or that, the level of business logic is felt several times as an application. The trick is to also remember that any use cases should be implemented as tests against the business layer, giving you another way to think about what the public interface should look like.
As the business logic layer does this work, it must be hidden from the parts of the application that invoke it.
Thus, it is perfectly acceptable to compute the data in the most efficient way (i.e. sql) if these calculations are given an appropriate presentation at the level of business logic.
source share