Я читал и баловался некоторыми, включая активную запись, репозиторий, объекты передачи данных. Что лучше?

«Лучшие» вопросы на самом деле не актуальны. Мир наполнен комбинациями и вариациями. Вам следует начать с вопроса, на который вы должны ответить: какую проблему вы пытаетесь решить. После того, как вы ответите, вы посмотрите на инструменты, которые лучше всего работают с проблемой.
Хотя я согласен, что «лучшие» вопросы - не лучшая форма (поскольку они настолько произвольны), они также не совсем неуместны.
В мире, построенном здесь, в S.O. где разработчики голосуют за то, что «лучше», почему бы не задать лучшие вопросы? «Лучшие вопросы» вызывают дискуссии и разные мнения.
В конце концов, когда кто-то "гуглиет" "шаблон доступа к данным", он должен зайти на эту страницу и увидеть изобилие ответов, не так ли?
Я полностью понимаю, о чем вы говорите, но не каждый вопрос является «частным». Стоя на пороге запуска нового проекта, вы можете захотеть узнать о множестве конкурирующих технологий. «Лучший» в некотором смысле может быть сокращением для КОНКРЕТНОГО списка «за-против» от аудитории. Википедия? С.О., мужик!
Я действительно не имею ничего против обсуждения, но люди склонны цепляться за слово «лучший», как за слово «предприятие».
Это действительно зависит от вашей задачи. По крайней мере, вы должны знать и понимать все шаблоны доступа к базе данных, чтобы выбрать один, наиболее подходящий для текущей проблемы.
Думаю, если бы я знал и понимал все шаблоны доступа к базе данных, я бы не задавал этот вопрос. :)
Хороший вопрос, над которым стоит задуматься. Доступ к базе данных часто не подлежит тщательному тестированию, особенно автоматическому, и я определенно хотел бы увеличить объем тестирования моей базы данных.
Я использую тестовую среду MbUnit, работающую изнутри Visual Studio, чтобы провести некоторое тестирование. Наше приложение использует хранимые процедуры везде, где это возможно, и тесты, которые я написал, настраивают базу данных для тестирования, вызывают хранимую процедуру и проверяют результаты. Для набора связанных хранимых процедур у нас есть файл C# с тестами для этих хранимых процедур. (Тем не менее, наш охват, вероятно, пока составляет около 1%!).
Активная запись - привлекательный вариант, поскольку Ruby делает упор на автоматическое тестирование. Если бы я начинал заново, это было бы точкой для использования активной записи.
Репозиторий, вероятно, является лучшим шаблоном для тестирования, поскольку он позволяет вам заменить репозиторий на макет, когда вам нужно протестировать. ActiveRecord связывает ваши модели с базой данных (иногда это удобно, но обычно труднее тестировать).
Но это не дает понимания конкретной проблемы, которую пытаются решить. Я думаю, что Википедия лучше подходит для поиска списков используемых инструментов, чем SO.