In 2 weeks I will be starting a new job as a software developer in a company that currently does not employ any professional programmers. My first task will be to rewrite a Excel/VBA application in C#, with an SQL back end.
I am currently a C# developer but we don't use a database back end; previously I was a database administrator but I didn't program. I have very little experience at joining up the two worlds.
What are the options for modelling the database access in a C# desktop application with a SQL Server back end? I would want to have some separation between the layers (database, logic, user interface).