So I am using Visual Studio .NET 2005. I have implemented a database in SQL Server 2005. The database has multiple tables employing normalization techniques. I have Views and Stored Procedures. I will be creating tools that will read, insert and update records into the database using the Views and SPs. My question is this, what would you recommend for a software architecture?

On first thought, I am exploring creating a C# Windows Service that will be a proxy in between the front-end C# utilities and DB. I sort of hit some complexity in terms of how to return data from Windows Service to Windows Application. In no way am I stuck on this particular design. Please suggest an alternate design if you think it is better. I am guessing that many players on DevX have had a similar scenario in which they are implementing a system that has a DB requiring data access/manipulation.

My current functional implementation involves giving the front-end utilities access to DB. That is undesirable as DB code will have to be maintained in multiple tools. Second, tools will most likely run on a remote system. I prefer to have DB code centralized and localized into one component that front-end tools can communicate with.

I look forward to receiving your input.