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