I need to audit modification actions (create/delete/update) in an enterprise web application. Then the user may need to see history of changes of a specific entity (a Person for example) to decide to do an action or not.
As far as I know it can be done into application by using libraries like log4net, nlog,... in .NET or maybe there are other libraries special for versioning which I don't know.
Or it can be done in database for example using Change Data Capture of SQL Server.
Using built in database solutions seems more efficient but the question is:
Is it correct in terms of software engineering to control business of application into Database?