Только что запущенный, чтобы намочить ноги с C# и.NET, любя его до сих пор. Я думаю, что у меня есть основная суть конструкций языка C#, поэтому во что технология должна я погружаться затем: F# или LINQ?
Я стремлюсь и "расширяю свой horizont", мудрый программированием И для "Улучшения моего резюме" без определенного порядка.
ОБНОВЛЕНИЕ: От чтения Ваших ответов я до сих пор склоняюсь к изучению LINQ, так как это, "должен для всех программистов.NET". Я оставляю вопрос открытым некоторое время, только для получения еще некоторых мнений. Спасибо за Ваши ответы.
ОБНОВЛЕНИЕ 2: хорошо, таким образом, от чтения Ваших ответов казалось бы, что LINQ имеет самую легкую кривую обучения и относится к C# и F# оба, таким образом, время, проведенное с LINQ, не "потрачено впустую", даже если я иду с F# в конечном счете. Еще раз спасибо за Ваши ответы.
LINQ не является языком программирования по сравнению с F #, но вам следует изучить LINQ, поскольку он облегчит вашу жизнь на C # и F #.
Я провел некоторое время с F # в качестве хобби, прежде чем у меня появилась возможность изучить C # 3 для работы. Оказалось, что я уже активно использовал LINQ в своем коде F #, даже не зная об этом в виде выражений последовательности. Когда я познакомился с LINQ, я сразу узнал его, а также сразу понял принцип отложенного выполнения.
Итак, если вы изучаете F #, вы уже знаете LINQ. Затем вам нужно только посмотреть синтаксис.
Кроме того, изучение программирования на идиоматическом F # научит вас думать как функциональный программист. Знание того, как программировать с рекурсией, мемоизацией и неизменяемыми значениями, также поможет вам в создании более чистого кода C # (конечно, с LINQ). Это мой опыт.
Linq и F # очень разные.
F # - это сам по себе язык, но linq - это инструмент или функция, которую вы можете использовать на этом языке.
Linq - это фантастика, которая упростит вашу разработку во многих областях и сделает вас более продуктивным в долгосрочной перспективе.
Linq - необходимость для всех разработчиков dotnet.
Вот ссылка, показывающая некоторые способы использования linq Linq 101
LINQ (Language Integrated Query) - это небольшой встроенный язык в C #, который позволяет вам работать с коллекциями объектов очень естественным образом, например
int[] numbers = new int[] {1,2,3,4,5,6,7,8,9};
var smalloNumbers = from n in numbers where n < 10 select n;
Это допустимый C #, LINQ - это просто еще одна функция языка, которая используется совместно с VB. Связанные технологии используют LINQ для доступа к хранилищу базы данных (LINQ-to-SQL, LINQ-to-NHibernate и т. Д.) Или другим интересным службам (например, Amazon или ebay и т. Д.), Но сам LINQ можно изучить на языке самого C # (LINQ-to -objects) без необходимости играть с базами данных или что-то в этом роде.
F #, с другой стороны, является полностью «функциональным» языком и, будучи языком общего назначения, особенно хорош для работы с большими коллекциями вещей, проблемами стиля сокращения карты и рекурсивной обработки.
Подводя итог, я бы порекомендовал сначала выбрать LINQ вместе с другими языковыми функциями в C ~, которые вы, возможно, пропустили (LINQ также проведет вас через лямбда-выражения, анонимные типы и ключевое слово var, если оно еще не встречается), а затем перейти на F # в качестве нового учебного проекта позднее. Как разработчик C # я использую LINQ в своем коде каждый день.
Надеюсь, это поможет.
Это зависит от того, что вам нужно делать.
Если вы хотите создавать приложения WPF или приложения ASP.NET или Silverlight для Интернета, углубитесь в C # и LINQ. Если вы хотите создавать научные, финансовые приложения, работающие с вычислениями, используйте F #. Если вы просто хотите повеселиться, используйте оба варианта: -)
Обратите внимание, что усилия, необходимые для изучения LINQ, и усилия, необходимые для изучения F #, отличаются друг от друга на несколько порядков: LINQ - это, по сути, просто библиотека и специальный синтаксис для построения запросов. , и если вы привыкли писать SQL, вам будет очень легко это понять. С другой стороны, если вы привыкли к императивному программированию на таких языках, как C #, освоение F # потребует смены парадигмы. Таким образом, F # также является технологией, которая максимально расширит ваш кругозор (конечно, в зависимости от вашего текущего набора навыков).
Почему не использовать другие фреймворки в пространстве .Net, такие как WCF, WPF, ASP.net MVC, некоторые .Net ORM и т. Д. ?
F# предназначен для функционального языка программирования на платформе .Net. Если вы не использовали другой язык функционального программирования, это другая парадигма, и кривая обучения будет более крутой, чем для LINQ. Лучший способ изучить LINQ - это использовать его в игрушечном или реальном проекте, где вы используете C # и базу данных SQL-сервера. В LINQ не так много нового синтаксического сахара.
С другой стороны, хотя вышесказанное применимо и к изучению F #, вы можете решать любые упражнения по программированию или проектировать головоломки, подобные Эйлеру, с помощью F #, чтобы познакомиться с конструкциями программирования.