I'm working on a large scale performance critical asp web application with a pretty much denormalized database (lots of data is duplicated across tables for performance reasons). The application is highly performance critical and large. There is almost no sense of any kind of n-tiered design. I can't touch the database, it's carved in stone.
Now I need to build some additional applications accessing the very same data in c# (.net 3.5). While doing so, I'm asked to build a new "core" which later can be used when moving on to MVC, so I guess it would be a good idea to introduce some kind of data-acess-layer holding the entity classes and a repository, which is responsible for the crud actions.
I've been reading about the repository pattern and LinqToSql so I guess I know the very basics. The new applications that should be build are of course due 2 weeks ago, so I can't really take tons of time to create a huge framework or attend classes before I get to work. I'm willing to read a book a day but I need to get started quickly.
My question is, am I on the right path when thinking about LinqToSql and the repository pattern as a solution? Why not generate the entities using your favorite code generator and query the database old style using disconnected recordsets? Do I loose control over the sql queries when using LinqToSql? Should I worry about performance? Am I completely on the wrong way?
I hope I explained the issue at hand properly. If there are any open questions, feel free to ask.