Вещи в .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()
.
Ответ 4
Удивительная вещь, можно изменить идентификаторы клиентов:
http://weblogs.asp.net/scottgu/archive/2010/03/30/cleaner-html-markup-with-asp-net-4-web-forms-client-ids-vs-2010-and-net-4-0-series.aspx
Нет больше CTL0001 $_DIV0003_TextBox1001 $или что-то еще...
Ответ 5
Мне просто нравится, что файл web.config является небольшим и значимым, а не длинным и полным неизвестных утверждений...
Ответ 6
Дополнительные параметры - один из моих любимых. Тип dynamic
кажется перспективным
Ответ 7
Способ, которым С# реализует поля event
, является новым. По умолчанию он уже не делает очень плохой lock (this)
. Однако события по-прежнему являются потокобезопасными, поскольку вместо этого используется механизм Interlocked.CompareExchange(...)
.
Это приводит к некоторым изменениям, которые могут быть разбиты в некоторых случаях. Дополнительная информация:
Ответ 8
Enum.TryParse
Guid.TryParse
Ответ 9
System.Numerics.BigInteger - представляет собой произвольно большое целое число со знаком.
System.Numerics.Complex - представляет собой комплексное число.
Ответ 10
Кодовые контракты выглядят очень перспективными как с точки зрения создания более правильного кода, так и с точки зрения создания более полной документации. К сожалению, они еще не все присутствуют в VS2010 - вам нужно установить надстройку, и даже тогда она не будет завершена и не будет завершена и пока еще не будет работать.
Ответ 11
Вы можете использовать файлы с отображением памяти (так же, как собственные функции Windows, получать доступ к файлам с отображением памяти) для редактирования очень больших файлов и создания общей памяти для межпроцессного взаимодействия.
Подробное объяснение см. В:
http://msdn.microsoft.com/en-us/library/dd997372.aspx
Ответ 12
Для программистов ASP.NET обзор веб-разработки ASP.NET 4 и Visual Studio 2010 содержит исчерпывающий обзор нового в ASP.NET 4. Для серии статей о наиболее заметных и интересных изменениях я бы рекомендовал Скотту Гутерие серию сообщений в блогах на VS 2010 и .NET 4 серии.
Ответ 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.