Недавно я перешел на Visual Studio 2010 и обновил свой сайт для работы с .NET Framework 4. (От VS 2008 - Framework 3.5)
Что мне нужно знать, чтобы улучшить скорость сайта, читаемость или использование памяти?
Недавно я перешел на Visual Studio 2010 и обновил свой сайт для работы с .NET Framework 4. (От VS 2008 - Framework 3.5)
Что мне нужно знать, чтобы улучшить скорость сайта, читаемость или использование памяти?
Parallel.For(0,10,(i)=>
{
// Do stuff in parallel.
});
Остальная часть Parallel предоставляет некоторые другие замечательные вещи, такие как Parallel.Invoke(...)
и Parallel.ForEach(...)
.
Кроме того, если вы что-то делаете с Linq, вы можете использовать метод ParallelEnumerable.AsParallel() для преобразования ваших запросов Linq для параллельной работы.
Все это построено на параллельной библиотеке задач, которая предоставляет отличный набор API для работы с задачами абстрактным способом, который масштабируется для любых ресурсов ваша машина не должна слишком много думать о том, сколько потоков вы создаете.
Класс DirectoryInfo
в дополнение к методам GetDirectories
и GetFiles
теперь имеет свои ленивые версии EnumerateDirectories
и EnumerateFiles
, которые позволяют нам иметь большие массивы для одновременного хранения всех объектов.
string.Join()
теперь имеет подпись, которая принимает IEnumerable<T>
вместо просто string[]
- небольшое улучшение, позволяющее вырвать код .Select()
и .ToArray()
.
Удивительная вещь, можно изменить идентификаторы клиентов:
Нет больше CTL0001 $_DIV0003_TextBox1001 $или что-то еще...
Мне просто нравится, что файл web.config является небольшим и значимым, а не длинным и полным неизвестных утверждений...
Дополнительные параметры - один из моих любимых. Тип dynamic
кажется перспективным
Способ, которым С# реализует поля event
, является новым. По умолчанию он уже не делает очень плохой lock (this)
. Однако события по-прежнему являются потокобезопасными, поскольку вместо этого используется механизм Interlocked.CompareExchange(...)
.
Это приводит к некоторым изменениям, которые могут быть разбиты в некоторых случаях. Дополнительная информация:
System.Numerics.BigInteger - представляет собой произвольно большое целое число со знаком.
System.Numerics.Complex - представляет собой комплексное число.
Кодовые контракты выглядят очень перспективными как с точки зрения создания более правильного кода, так и с точки зрения создания более полной документации. К сожалению, они еще не все присутствуют в VS2010 - вам нужно установить надстройку, и даже тогда она не будет завершена и не будет завершена и пока еще не будет работать.
Вы можете использовать файлы с отображением памяти (так же, как собственные функции Windows, получать доступ к файлам с отображением памяти) для редактирования очень больших файлов и создания общей памяти для межпроцессного взаимодействия. Подробное объяснение см. В: http://msdn.microsoft.com/en-us/library/dd997372.aspx
Для программистов ASP.NET обзор веб-разработки ASP.NET 4 и Visual Studio 2010 содержит исчерпывающий обзор нового в ASP.NET 4. Для серии статей о наиболее заметных и интересных изменениях я бы рекомендовал Скотту Гутерие серию сообщений в блогах на VS 2010 и .NET 4 серии.
Кэш ASP.net теперь находится в собственной сборке!
System.runtime.caching.dll
что означает, что вы можете использовать его в других приложениях, таких как WPF и WinForms, без необходимости извлекать всю сборку system.web
Я просто хочу, чтобы они увеличили CacheItem, чтобы включить встроенную информацию о элементе кэша, например, когда он был добавлен... когда он истечет и т.д.
Я также хотел бы обратиться к исходной документации (MSDN в этом случае) для полного списка улучшений и дополнений:
http://msdn.microsoft.com/en-us/library/ms171868.aspx
Из этой статьи вы можете легко найти то, что может улучшить существующую базу кода.
В целях удобочитаемости я добавлю свое открытие, как написано в этом вопросе.
При использовании AJAX вы можете указать свойство EnableCdn для scriptManager для загрузки значений из CDN (например, Microsoft CDN)
Я считаю, что есть также улучшения WCF, которые устраняют предыдущие неприятности, такие как невозможность настроить WebGet
/WebInvoke
по-разному для каждой конечной точки в .Net 3.5. Я считаю, что он полностью настраивается в 4.0.