I am wondering what will be the best prectice regarding mainataining connections towards the database insInternet application (ADO.Internet however i guess the practice ought to be the same for just about any data layer). Must I produce a database connection and propagate it throughout my application, or will it be easier to just pass connection strings/industrial facilities and make up a connection ad-hoc, when it's needed.

When I understand perfomance hit isn't signifcant with pooling also it enables me to recuperate from damaged connections very easily (only a new connection is going to be produced) however again an association object is really a nice, relatively high-level abstraction and developing a new connection for each operation (not SQL command, but application operation) creates additional, copied code and feels as though a total waste of time/assets(?).

Exactly what do you consider these 2 cases, what exactly are their cons/pros and which approach are you currently using inside your real-existence programs?