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