Does anyone have any opinions over the best ways to connect a client to SQL Server to get data.
So lets say I have a C# DataGridView in a Winform not on the internal network and I need to load it with a lot of data.
Currently to access the data we call a component SQLDataAdapter in the client which opens a connection to the SQL server, loads a DataSet and then closes the db connection. This is using SQL Server Authentication and there are many applications being ran over the internet connecting the same way at the same time.
So I want to increase security and not degrade performance. Which of these options or other options should I look into?
-Connect the same way but keep connections open for duration of the users time in the app.
-Create WebServices server and pass dataset or collection to client.
-Create WCF server and connect to db. (LINQ, Identify Framework, ADO.NET...?)
-Create both WebServices and WCF server, client connects to WCF, which gets data from WSE server which connects to SQL Server and passes collection or dataset back to client
Personally I like the last option the best for a few reasons. 1. It would be easy to take the components we already have built and drop them into web services. 2. It would allow us to stop having our ASP.NET websites access the database directly but connect through the Web Services server(ASMX to ASMX = good?). 3. We could have better control what data is accessed and given to outside of our network. And we no longer have to keep connection strings in our applications.
Does anybody have experience with these or a combination of these options? I am somewhat wary because I have heard horror stories about servers like this being funnel points when there was no problem just connecting straight to SQL Server.
Thanks
Jason Stone
-