This may be a daft question so apologies in advance but I'm pretty new to VB.NET and connecting to SQL Server.

What is considered best practice when building an app that needs to connect frequently to a SQL Server DB to fetch, write, delete and update records?

Should a connection be opened at app startup (a connection at start is opened to validate the user) and left open for subsequent transactions or should a connection be opened, closed and disposed of each time a read/write to the DB is required?

Or is it purely a matter of personal preference?

Thanks in advance,

Paul