Perhaps the most common practice in enterprise application development, particularly in N-tier/N-layer applications, is to have a business logic layer that resides in application space. In other words, your business logic is defined in the programming language that your front-end most likely took (e.g., C#, Java) and is compiled in your application server.
Sounds like common sense --- so imagine my surprise when I realized that some coders actually prefer to put their business logic -- their middle tier -- elsewhere. While most of us are probably accustomed storing BL close to the UI, some people code their BL near the back-end or datastore, the most common form being SQL stored procedures.
It all started with a thread with regards to validation that I posted in the Microsoft Community Forums. The topic veered towards data integrity validation, and it was there where Glenn Gamboa reiterated his position with regards to the importance of the database, emphasizing on "not using the database as just a datastore." Incidentally, Glenn discusses his philosophy of placing his BL nearer the DB in this excellent podcast interview in Keith Rull's blog.
But that's not all. Satya Komatineni also mentions placing BLs in or near the data tier in the article Qualities of a Good Middle-Tier Architecture.
Lastly, because of all the heated arguments in the validation thread, I proposed to come up with a BLL Low Down Project, to see the truths behind the claims and accusations (if that's the proper term) thrown around in the validation thread. While cruizer objects the sensibilities of such a project, PHINUG president punzie hinted it's a good idea for an event.
I hope it does push through. If just for the sake of argument. :p
Tags: Database Technologies, Enterprise Application Development, Software Development