How can I abstract my database from my application so that it is unaware of the database type? I have to design a .Net 3.5 WPF application that must support either SQL Server or Visual FoxPro as the data repository.
My design goals are to:
- make the type of data repository invisible when writing code in the Data Access Layer
- make it as quick and painless as possible to switch between SQL and FoxPro
- allow use of both ANSI SQL and stored procedures from the DAL
- learning curve must be minimal for other developers joining the project
This will be a WPF application, probably using CSLA.
I have thought about using some kind of ORM but have no experience with this type of technology.