Были времена, когда нам приходилось выбирать между 2 или 3 технологиями / стратегиями для разработки модулей.
Теперь для каждого маленького или большого компонента / модуля / проекта у нас есть почти бесчисленное количество вариантов. Это может быть легко для тех, у кого есть многолетний опыт, но не для тех, кто плохо знаком с программированием, скажем, меньше года.
Иногда меня расстраивает выбор доступа к данным в мире .NET. Мы не можем пойти и прочитать обо всех инструментах, имеющихся на рынке, и о том, что он может предложить для каждого продукта.
Причина возникновения этого вопроса в том, что недавно нам пришлось работать над проектом, и спецификации для DataAccessLayer были окончательно доработаны с помощью ADO.NET. Примерно на 20% пути в проект к нашему отделу (но не к нашей команде) присоединился новый разработчик. Я считаю его умным, полезным, и нам нравится с ним работать.
Во время проверки кода он лично посоветовал нам использовать LINQ to SQL для модуля, над которым мы работали. Он был убедителен. После положительных дискуссий мы согласились использовать LINQ to SQL.
Однако "менеджмент" этому не обрадовался. Был аргумент, что мы должны были придумать эту "фантастическую идею" перед запуском модуля. Их аргумент состоит в том, что ресурсы уже потрачены на 20% работы, и эта работа будет потрачена впустую.
Учитывая частоту появления новых продуктов / технологий / стратегий, нам трудно иметь всю информацию обо всех этих инструментах и технологиях.
Мы добились успеха с использованием ADO.NET. У нас было представление о LINQ (в целом), NHibrnate и многих других, но мы пошли дальше ADO.NET. Я не против изучения новых вещей, поэтому мы коллективно настаивали на использовании LINQ.
Вопрос. Виновны ли мы в том, что сделали этот выбор тогда, когда мы сделали это?
Существуют ли какие-либо показатели или рекомендации для принятия решения о том, какую технологию выбрать для определенных ситуаций, а когда не переключать промежуточный поток?