Вещи в .NET Framework 4, которые должен знать каждый программист

Недавно я перешел на Visual Studio 2010 и обновил свой сайт для работы с .NET Framework 4. (От VS 2008 - Framework 3.5)

Что мне нужно знать, чтобы улучшить скорость сайта, читаемость или использование памяти?

Ответ 1

Остальная часть Parallel предоставляет некоторые другие замечательные вещи, такие как Parallel.Invoke(...) и Parallel.ForEach(...).

Кроме того, если вы что-то делаете с Linq, вы можете использовать метод ParallelEnumerable.AsParallel() для преобразования ваших запросов Linq для параллельной работы.

Все это построено на параллельной библиотеке задач, которая предоставляет отличный набор API для работы с задачами абстрактным способом, который масштабируется для любых ресурсов ваша машина не должна слишком много думать о том, сколько потоков вы создаете.

Ответ 2

Класс DirectoryInfo в дополнение к методам GetDirectories и GetFiles теперь имеет свои ленивые версии EnumerateDirectories и EnumerateFiles, которые позволяют нам иметь большие массивы для одновременного хранения всех объектов.

Ответ 3

string.Join() теперь имеет подпись, которая принимает IEnumerable<T> вместо просто string[] - небольшое улучшение, позволяющее вырвать код .Select() и .ToArray().

Ответ 5

Мне просто нравится, что файл web.config является небольшим и значимым, а не длинным и полным неизвестных утверждений...

Ответ 6

Дополнительные параметры - один из моих любимых. Тип dynamic кажется перспективным

Ответ 7

Способ, которым С# реализует поля event, является новым. По умолчанию он уже не делает очень плохой lock (this). Однако события по-прежнему являются потокобезопасными, поскольку вместо этого используется механизм Interlocked.CompareExchange(...).

Это приводит к некоторым изменениям, которые могут быть разбиты в некоторых случаях. Дополнительная информация:

Ответ 9

System.Numerics.BigInteger - представляет собой произвольно большое целое число со знаком.

System.Numerics.Complex - представляет собой комплексное число.

Ответ 10

Кодовые контракты выглядят очень перспективными как с точки зрения создания более правильного кода, так и с точки зрения создания более полной документации. К сожалению, они еще не все присутствуют в VS2010 - вам нужно установить надстройку, и даже тогда она не будет завершена и не будет завершена и пока еще не будет работать.

Ответ 11

Вы можете использовать файлы с отображением памяти (так же, как собственные функции Windows, получать доступ к файлам с отображением памяти) для редактирования очень больших файлов и создания общей памяти для межпроцессного взаимодействия. Подробное объяснение см. В: http://msdn.microsoft.com/en-us/library/dd997372.aspx

Ответ 13

Кэш ASP.net теперь находится в собственной сборке!

System.runtime.caching.dll

что означает, что вы можете использовать его в других приложениях, таких как WPF и WinForms, без необходимости извлекать всю сборку system.web

Я просто хочу, чтобы они увеличили CacheItem, чтобы включить встроенную информацию о элементе кэша, например, когда он был добавлен... когда он истечет и т.д.

Ответ 14

Я также хотел бы обратиться к исходной документации (MSDN в этом случае) для полного списка улучшений и дополнений:

http://msdn.microsoft.com/en-us/library/ms171868.aspx

Из этой статьи вы можете легко найти то, что может улучшить существующую базу кода.

Ответ 15

В целях удобочитаемости я добавлю свое открытие, как написано в этом вопросе.

При использовании AJAX вы можете указать свойство EnableCdn для scriptManager для загрузки значений из CDN (например, Microsoft CDN)

Ответ 16

Я считаю, что есть также улучшения WCF, которые устраняют предыдущие неприятности, такие как невозможность настроить WebGet/WebInvoke по-разному для каждой конечной точки в .Net 3.5. Я считаю, что он полностью настраивается в 4.0.