Please note that I asked the same question on [stackoverflow](https://stackoverflow.com/questions/32049022/application-logic-vs-business-logic) but they directed me to ask here.

While I am trying to discerne the difference between the application logic and business logic I have found set of articles but unfortunately there is a contradiction between them.

[Here](http://encyclopedia2.thefreedictionary.com/application+logic) they say that they are the same but the answer [here](https://stackoverflow.com/questions/1456425/business-and-application-logic) is totally different.

For me I understand it in the following way:

If we look up for the definition of the `Logic` word in Google we will get

> 
> system or set of principles underlying the arrangements of elements in
> a computer or electronic device so as to perform a specified task.
> 
> 
> 

So, if the logic is `set of principles underlying the arrangements of elements` then the business logic should be `set of principles underlying the arrangements of the business rules`, in other words it means the rules that should be followed to get a system reflects your business needs.

And for me the application logic is `the principles that the application based on`, in other words, how to apply these rules to get a system reflects your business needs, for example should I use MVC or should not I use? should I use SQL or MSSQl?.

So please could anybody help me to get rid of confusion about the difference between the application and the business logic.
['https://softwareengineering.stackexchange.com/questions/293885', 'https://softwareengineering.stackexchange.com', 'https://softwareengineering.stackexchange.com/users/192185/']
As others have pointed out, these terms do not have one universally accepted meaning. I will describe the definitions I have encountered more often, i.e. in several projects with different companies.

The **business logic** defines a normalized, general-purpose model of the business domain for which an application is written, e.g.

* Classes like `Customer`, `Order`, `OrderLine`, and associations like `customer-order`, and so on.
* General-purpose operations such as `registerCustomer`, `cancelOrder`

Very often this class model is mapped to a database model and the mapping is implemented using ORM. The operations are normally performed each in their own transaction and provide the basic API for modifying the database, i.e. the persistent state of the application.

The **application logic** is a layer built on top of the business logic and serves to implement specific use cases. Application logic modules may use ad-hoc data representation, e.g. a CustomerSummary class without any association to `Order` if you want to list customers only. Such ad-hoc data representation must be mapped to the underlying normalized representation provided by the business model. For example, `CustomerSummary` can be defined as a view on top of `Customer`.

Note that the boundary between the two layers may not be so clearly-defined. E.g. after implementing several use cases one might notice similar data structures in the application logic and decide to unify (normalize) them and move them to the business logic.
Na, they're just different terms for the same thing - the "middle tier" of program code that does the things you want your program to perform. Like many things in software, there are no hard-and-fast terminology for pieces of a system, as there are no single formal definitions for building systems.

So sometimes people will call it business logic, others application logic, others will call it program logic, its all much of a muchness. Don't bother trying to define this so rigidly, nearly every system varies in how its built so be glad there's only this minor level of vagueness in terminology!