Не следует ли мне использовать LINQ для объектов, потому что Microsoft может его изменить?

Я поспорил с коллегой по поводу использования LINQ to Objects (IEnumerable, а не IQueryable) в нашем Код C #. Я использовал LINQ, и он сказал, что мы не должны использовать код внешнего поставщика (Microsoft) в нашем коде, но мы должны сами заключить его в наш собственный уровень абстракции.

Теперь я понимаю это методология использования там, где у вас есть сторонняя dll без имени, которая может выйти из строя на следующей неделе, или когда вы имеете дело с вызовами базы данных (т. е. возвращаете общий поставщик данных, а не конкретный SQL или Oracle), но, на мой взгляд, синтаксис LINQ слишком красив / элегантен / удобочитаем, чтобы Microsoft могла отказаться от него в ближайшие 10 лет. Вероятность отказа от него примерно такая же, как и от функциональности ToString ("Hello {0}", firstName);

Я мог бы отказаться от споров и реализовать нашу собственную библиотеку LINQ, которая вызывает стандартные методы LINQ под прикрытием, но разве это не лишнее? Плюс я мог используйте только методы расширения, я понятия не имею, как обернуть это:

from e in employees
select new { e.Name, e.Id };

Каковы были бы ваши аргументы за или против использования LINQ для объектов (методы расширения IEnumerable)?

5
задан ChaosPandion 11 July 2011 в 20:30
поделиться