Новые возможности .NET Framework 4

В этом разделе приводятся сведения об основных функциях и усовершенствованиях в .NET Framework 4. Данный раздел не содержит исчерпывающей информации о всех новых функциях и может быть изменен.

В платформе .NET Framework 4 используется усовершенствованная модель безопасности. Дополнительные сведения см. в разделе Изменения системы безопасности в платформе .NET Framework 4.

Прочие новые возможности и усовершенствования в .NET Framework 4 описаны в следующих разделах:

  • Совместимость и развертывание приложений

  • Основные новые функции и усовершенствования

  • Managed Extensibility Framework

  • Параллельные вычисления

  • Сетевое взаимодействие

  • Веб

  • Клиент

  • Данные

  • Windows Communication Foundation

  • Windows Workflow Foundation

Список новых пространств имен, новых типов и новых членов, добавленных в имеющиеся типы, см. в разделе Новые типы и члены в .NET Framework 4.

Пакет обновления 1 (SP1) для Visual Studio 2010 включает обновление до .NET Framework 4.

Совместимость и развертывание приложений

Платформа .NET Framework 4 обладает высокой совместимостью с приложениями, построенными с помощью предыдущих версий платформы .NET Framework, за исключением некоторых изменений, сделанных для улучшения безопасности, соответствия стандартам, правильности, надежности и производительности.

Для приложений, построенных с помощью более ранних версий платформы .NET Framework, в платформе .NET Framework 4 не производится автоматическое использование ее версии среды CLR. Для запуска старых приложений с платформой .NET Framework 4 необходимо скомпилировать приложение с требуемой версией .NET Framework, указанной в свойствах проекта в Visual Studio, или указать поддерживаемую среду выполнения с помощью элемента Элемент <supportedRuntime> в файле конфигурации приложения.

Если после установки .NET Framework 4 то или иное приложение или какой-либо компонент не работает, отправьте сообщение об ошибке на веб-сайт Microsoft Connect. Процедуры тестирования на совместимость описаны в разделе Совместимость приложений в платформе .NET Framework версии 4, а сведения о новых возможностях приведены на странице Visual Studio 2010 and .NET Framework 4 Walkthroughs.

Руководство по переходу на .NET Framework 4 см. в разделах Руководство по миграции на .NET Framework 4 и Совместимость версий в .NET Framework.

В следующих разделах описываются усовершенствованные возможности развертывания.

Клиентский профиль

Клиентский профиль .NET Framework 4 поддерживает больше платформ, чем предыдущие версии, и обеспечивает быстрое развертывание приложений. Несколько новых шаблонов проектов теперь ориентированы на клиентский профиль по умолчанию. Дополнительные сведения см. в разделе Профиль клиента .NET Framework.

Внутрипроцессное параллельное выполнение

Эта возможность позволяет приложению загружать и запускать несколько версий платформы .NET Framework в одном и том же процессе. Например, можно запускать приложения, которые загружают надстройки (или компоненты), созданные на основе .NET Framework 2.0 с пакетом обновления 1 (SP1) и .NET Framework 4, в одном и том же процессе. Более ранние компоненты продолжают использовать более раннюю версию платформы .NET Framework, а новые компоненты используют новую версию платформы .NET Framework. Дополнительные сведения см. в разделе Внутрипроцессное параллельное выполнение.

Переносимая библиотека классов

После установки пакета обновления 1 (SP1) для Visual Studio 2010 и средств работы с переносимыми библиотеками можно создавать переносимые библиотеки классов, запускаемые на различных платформах .NET Framework без перекомпиляции. Дополнительные сведения см. в разделе Библиотеки переносных классов.

К началу

Основные новые функции и усовершенствования

В следующих разделах описываются новые функции и усовершенствования, предоставляемые средой CLR и библиотеками базовых классов.

Диагностика и производительность

В более ранних версиях платформы .NET Framework отсутствовала возможность определить, влияет ли тот или иной домен приложения на другие домены приложения, поскольку программные интерфейсы и средства операционной системы, например диспетчер задач Windows, обеспечивали детализацию только до уровня отдельных процессов. Начиная с версии .NET Framework 4, оценки использования ресурсов процессора и памяти доступны для отдельных доменов приложений.

Можно контролировать использование процессора и памяти отдельных доменов приложений. Отслеживание ресурсов для доменов приложений обеспечивается благодаря управляемым и машинным программным интерфейсам размещения и трассировке событий Windows (ETW). Когда эта функция включена, на протяжении всего времени жизни процесса выполняется сбор статистических данных по всем доменам приложения в процессе. См. новое свойство AppDomain.MonitoringIsEnabled.

Теперь также открыт доступ к событиям трассировки событий Windows в целях диагностики для повышения производительности. Дополнительные сведения см. в разделах События трассировки событий Windows в среде CLR и Контроль ведения журнала .NET Framework. См. также описание свойства Счетчики производительности и внутрипроцессные параллельные приложения.

Атрибут System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute позволяет управляемому коду обрабатывать исключения, указывающие на повреждение состояния процесса.

Глобализация

В .NET Framework 4 имеются новые нейтральные и особые языковые и региональные параметры, обновленные значения свойств, усовершенствования механизмов обработки строк и другие усовершенствования. Дополнительные сведения см. в разделе Новые возможности глобализации и локализации.

Сборка мусора

Платформа .NET Framework 4 обеспечивает фоновый сбор мусора. Эта функция заменяет параллельный сбор мусора в предыдущих версиях и обеспечивает повышенную производительность. Дополнительные сведения см. в разделе Основы сборки мусора.

Кодовые контракты

Кодовые контракты позволяют указать контрактную информацию, которую нельзя выразить исключительно сигнатурой метода или типа. Новое пространство имен System.Diagnostics.Contracts содержит классы, которые предоставляют не зависящий от языка способ выражения предположений программирования в форме предварительных условий, постусловий и инвариантов объектов. Эти контракты повышают качество тестирования с помощью проверки во время выполнения, обеспечивают проверку статических контрактов и поддерживают создание документации. Дополнительные сведения см. в разделе Контракты для кода.

Сборки взаимодействия только во время разработки

Поставлять основные сборки взаимодействия (PIA) для развертывания приложений, взаимодействующих с объектами COM, больше не потребуется. В .NET Framework 4 компиляторы могут внедрять информацию о типах из сборок взаимодействия, выбирая только типы, реально используемые приложением (например, надстройкой). Безопасность типов гарантируется средой CLR. См. разделы Использование COM-типов в управляемом коде и Пошаговое руководство. Внедрение данных о типе из сборок для приложений Microsoft Office (C# и Visual Basic).

Среда DLR

Среда DLR представляет собой новую среду выполнения, которая расширяет среду CLR дополнительным набором служб для динамических языков. Среда DLR упрощает разработку динамических языков, используемых в .NET Framework и добавляет динамические функции в языки со статической типизацией. Для поддержки среды DLR в платформу .NET Framework добавлено новое пространство имен System.Dynamic.

Деревья выражений расширены с использованием новых типов, представляющих поток управления, например, System.Linq.Expressions.LoopExpression и System.Linq.Expressions.TryExpression. Эти новые типы используются средой DLR, но не используются LINQ.

Кроме того, в пространство имен System.Runtime.CompilerServices добавлено несколько новых классов, поддерживающих инфраструктуру платформы .NET Framework. Дополнительные сведения см. в разделе Общие сведения о среде DLR.

Ковариация и контрвариация

Несколько универсальных интерфейсов и делегатов теперь поддерживают ковариацию и контравариацию. Дополнительные сведения см. в разделе Ковариация и контравариация в универсальных шаблонах.

Числа BigInteger и Complex

Новая структура System.Numerics.BigInteger представляет собой тип целочисленных данных с произвольной точностью, который поддерживает все стандартные операции с целыми числами, включая поразрядные операции. Она может использоваться в любом языке платформы .NET Framework. В дополнение к этому некоторые новые языки платформы .NET Framework, например F# и IronPython, включают встроенную поддержку этой структуры.

Новая структура System.Numerics.Complex представляет комплексное число, которое поддерживает арифметические и тригонометрические операции с комплексными числами.

Кортежи

Платформа .NET Framework 4 предоставляет класс System.Tuple для создания объектов кортежей, содержащих структурированные данные. Она также предоставляет универсальные классы кортежей, имеющих от одного до восьми компонентов (т. е., от одиночных до восьмеричных кортежей). Для поддержки объектов кортежей, имеющих девять и более компонентов, предусмотрен универсальный класс кортежа с семью параметрами типа и восьмым параметром любого типа кортежа.

Улучшение методов перечисления файловой системы

Новые методы перечисления файлов повышают производительность приложений, обращающихся к большим каталогам файлов или выполняющих итерацию по строкам больших файлов. Дополнительные сведения см. в разделе Практическое руководство. Перечисление каталогов и файлов.

Сопоставленные в памяти файлы

Платформа .NET Framework теперь поддерживает файлы с отображением в памяти. С их помощью можно вносить изменения в очень большие файлы и создавать совместно используемую память для межпроцессного взаимодействия.

64-разрядные операционные системы и процессы

Определять 64-разрядные операционные системы и процессы можно с помощью свойств Environment.Is64BitOperatingSystem и Environment.Is64BitProcess.

32- или 64-разрядное представление реестра задается с помощью перечисления Microsoft.Win32.RegistryView при открытии базовых разделов.

Прочие новые функции

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

  • Для обеспечения поддержки форматирования, учитывающего язык и региональные параметры, структура System.TimeSpan теперь содержит новые перегрузки методов ToString, Parse и TryParse, а также новые методы ParseExact и TryParseExact.

  • Новый метод String.IsNullOrWhiteSpace проверяет, имеет ли строка значение NULL, является ли она пустой или состоит только из пробелов. В методы String.Concat и String.Join добавлены новые перегрузки, которые служат для сцепления членов коллекций System.Collections.Generic.IEnumerable<T>.

  • Метод String.Concat позволяет сцеплять все элементы в перечислимой коллекции без предварительного преобразования элементов в строки.

  • Предусмотрены два новых удобных метода: StringBuilder.Clear и Stopwatch.Restart.

  • Новый метод Enum.HasFlag служит для определения того, задано ли в значении перечисления одно или несколько битовых полей или флагов. Метод Enum.TryParse возвращает логическое значение, которое указывает, возможен ли успешный анализ того или иного строкового или целочисленного значения.

  • Перечисление System.Environment.SpecialFolder содержит несколько новых папок.

  • Один поток теперь можно легко скопировать в другой с помощью метода CopyTo в классах, которые наследуют от класса System.IO.Stream.

  • Новые перегрузки метода Path.Combine позволяют объединять пути к файлам.

  • Новые интерфейсы System.IObservable<T> и System.IObserver<T> предоставляют универсальный механизм для уведомлений с принудительной отправкой.

  • Классы System.IntPtr и System.UIntPtr теперь включают поддержку операторов сложения и вычитания.

  • Отложенную инициализацию любого пользовательского типа теперь можно реализовать, заключив этот тип внутрь класса System.Lazy<T>.

  • Новый класс System.Collections.Generic.SortedSet<T> представляет собой самобалансирующееся дерево, которое поддерживает порядок сортировки данных после операций вставки, удаления и поиска. Данный класс реализует новый интерфейс System.Collections.Generic.ISet<T>.

  • Алгоритмы сжатия для классов System.IO.Compression.DeflateStream и System.IO.Compression.GZipStream усовершенствованы: уже сжатые данные более не увеличиваются в объеме при повторном сжатии. Кроме того, снято ограничение размера в 4 ГБ для потоков сжатия.

  • Новая перегрузка метода Monitor.Enter(Object, Boolean) принимает по ссылке логический параметр и атомарным образом присваивает ему значение true только в том случае, если вход в монитор успешно выполнен.

  • Метод Thread.Yield можно применять для передачи выполнения от вызвавшего потока другому потоку, готовому к запуску на текущем процессоре.

  • Структура System.Guid теперь содержит методы TryParse и TryParseExact.

  • Новое перечисление Microsoft.Win32.RegistryOptions позволяет задать временный раздел реестра, который не сохраняется после перезагрузки компьютера.

  • Длина разделов реестра больше не ограничена 255 символами.

К началу

Managed Extensibility Framework

Платформа Managed Extensibility Framework (MEF) — это новая библиотека в .NET Framework 4, полезная при создании расширяемых и комбинируемых приложений. MEF позволяет указывать точки, где приложение может быть расширено, предоставлять доступ к службам другим расширяемым приложениям и создавать части, предназначенные для использования расширяемыми приложениями. Она также позволяет легко обнаруживать доступные части на основе метаданных без необходимости загрузки сборок с этими частями. Дополнительные сведения см. в разделе Общие сведения о платформе Managed Extensibility Framework and Managed Extensibility Framework. Список типов MEF см. в описании пространства имен System.ComponentModel.Composition.

К началу

Параллельные вычисления

В .NET Framework 4 реализована новая программная модель разработки многопотокового и асинхронного кода, которая существенного упрощает труд разработчиков приложений и библиотек. Эта новая модель позволяет разработчикам писать эффективный, детализированный и масштабируемый параллельный код с помощью естественных выразительных средств без необходимости непосредственной работы с потоками или пулом потоков. Данная модель поддерживается новым пространством имен System.Threading.Tasks и другими связанными типами. Технология Parallel LINQ (PLINQ), реализующая возможности LINQ to Objects с поддержкой параллелизма, обеспечивает аналогичную функциональность посредством декларативного синтаксиса. Дополнительные сведения см. в разделе Параллельное программирование в .NET Framework.

К началу

Сетевое взаимодействие

Улучшения работы в сети включают следующее:

К началу

Веб

Новые возможности ASP.NET версии 4 доступны в следующих областях.

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

  • Веб-формы. Лучше интегрирована поддержка маршрутизации ASP.NET, улучшена поддержка веб-стандартов, обновлена поддержка браузеров, добавлены новые возможности для элементов управления данными и новые возможности для управления состоянием просмотра.

  • Элементы управления веб-форм, в том числе новый элемент управления Chart.

  • MVC. В том числе появились новые вспомогательные методы для представлений, поддержка разделенных на части MVC-приложений и асинхронные контроллеры.

  • Динамические данные. В том числе поддержка существующих веб-приложений, поддержка отношений и принципа наследования "многие ко многим", новые шаблоны и атрибуты полей, а также улучшенная фильтрация данных.

  • Microsoft Ajax. В том числе дополнительная поддержка клиентских приложений Ajax в библиотеке Microsoft Ajax.

  • Visual Web Developer. В том числе усовершенствована поддержка IntelliSense для JScript, улучшено автозавершение кода для разметки HTML и ASP.NET, улучшена совместимость CSS.

  • Развертывание. В том числе новые средства автоматизации стандартных задач развертывания.

  • Настройка для различных версий. В том числе улучшена фильтрация для функций, недоступных в целевой версии .NET Framework.

Дополнительные сведения об этих возможностях см. в разделе Новые возможности ASP.NET 4 и Visual Web Developer.

К началу

Клиент

Windows Presentation Foundation (WPF) версии 4 содержит изменения и усовершенствования в следующих областях.

  • Новые элементы управления, включая Calendar, DataGrid и DatePicker.

  • VisualStateManager поддерживает изменение состояний элементов управления.

  • Функции сенсорного ввода и манипуляции позволяют создавать приложения, распознающие сразу несколько одновременных прикосновений к экрану в Windows 7.

  • Функции графики и анимации поддерживают округление макета, построитель текстуры версии 3.0, кэширование композиции и функции реалистичной анимации.

  • Улучшены возможности визуализации текста и включена поддержка настройки цвета курсора и выбора цвета в текстовых полях.

  • Привязка поддерживается в свойстве Command объекта InputBinding, в динамических объектах и в свойстве Text.

  • Приложения обозревателя XAML (XBAP) поддерживает взаимодействие с веб-страницей и развертывание с полным доверием.

  • Новые типы в пространстве имен System.Windows.Shell позволяют взаимодействовать с панелью задач Windows 7 и передавать данные в оболочку Windows.

  • Конструктор WPF и Silverlight в Visual Studio 2010 содержит различные усовершенствования, упрощающие создание приложений WPF и Silverlight.

Дополнительные сведения см. в разделе Новые возможности WPF версии 4.

К началу

Данные

ADO.NET

ADO.NET предоставляет новую функциональность для платформы Entity Framework, включая игнорирующие сохраняемость объекты, функции в запросах LINQ и создание настраиваемого кода объектного уровня. Дополнительные сведения см. в разделе Новые возможности ADO.NET.

динамические данные

В ASP.NET 4 платформа динамических данных была усовершенствована с целью дополнительного расширения возможностей быстрого создания веб-сайтов с привязкой к данным. К ним относятся следующие.

  • Автоматическая проверка на основе ограничений, определенных в модели данных.

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

Дополнительные сведения см. в разделе Новые возможности ASP.NET 4 и Visual Web Developer.

Службы данных WCF

Службы данных ADO.NET были переименованы в службы WCF, обладающие следующими возможностями:

  • привязка данных;

  • подсчет сущностей в наборе сущностей;

  • разбиение на страницы на сервере;

  • проекции запросов;

  • специализированные поставщики служб данных;

  • потоковая передача двоичных ресурсов.

Дополнительные сведения см. в разделе What's New in WCF Data Services.

К началу

Windows Communication Foundation

В Windows Communication Foundation (WCF) были реализованы следующие усовершенствования.

  • Функция активации на основе конфигурации, которая снимает требование по наличию SVC-файла.

  • Функция интеграции System.Web.Routing, которая предоставляет больший контроль над URL-адресом службы за счет разрешения использования URL-адресов без расширений.

  • Поддержка привязки нескольких сайтов IIS, позволяющая использовать несколько базовых адресов для одного протокола на одном веб-сайте.

  • Служба маршрутизации, позволяющая перенаправлять сообщения на основе их содержимого.

  • Поддержка WS-Discovery, позволяющая создавать и находить обнаруживаемые службы.

  • Стандартные конечные точки — предварительно определенные конечные точки, позволяющие указывать только определенные свойства.

  • Службы рабочих процессов, интегрирующие WCF и WF за счет действий для отправки и получения сообщений, возможности корреляции сообщений на основе их содержимого и узла службы рабочих процессов.

  • Функции WCF REST:

    • кэширование Web HTTP, позволяющее кэшировать ответы службы Web HTTP;

    • поддержка форматов Web HTTP, позволяющая динамически определять наилучший формат операции службы для ответа;

    • страница справки служб Web HTTP, обеспечивающая автоматическую страницу справки для служб Web HTTP, аналогичную странице справки службы WCF;

    • обработка ошибок Web HTTP, позволяющая службам Web HTTP возвращать сведения об ошибке в формате операции;

    • поддержка в Web HTTP междоменного кода JavaScript, позволяющая использовать JSON с заполнением (JSONP).

  • Упрощенная настройка, уменьшающая объем требуемых действий по настройке службы.

Дополнительные сведения см. в разделе What's New in Windows Communication Foundation.

К началу

Windows Workflow Foundation

В Windows Workflow Foundation (WF) были реализованы усовершенствования в следующих областях.

  • Усовершенствованная модель действий рабочего процесса. Класс Activity обеспечивает базовую абстракцию поведения рабочего процесса.

  • Широкие возможности сложных действий. Рабочие процессы получают дополнительные преимущества благодаря новым действиям управления потоком, которые моделируют обычные структуры управления потоком, такие как Flowchart, TryCatch и Switch<T>.

  • Расширенная встроенная библиотека действий. Новые функции библиотеки действий включают новые действия управления потоком, действия для работы с данными элементов и действия по управлению транзакциями.

  • Явные модели данных о действиях. Новые возможности хранения и перемещения данных включают переменные и направленные аргументы.

  • Усовершенствованные возможности размещения, сохраняемости и отслеживания. Усовершенствования размещения включают дополнительные параметры для выполняющихся рабочих процессов, явную сохраняемость с использованием действия Persist, сохраняемость без выгрузки, предотвращение сохранения с использованием зон несохраняемости, использование охватывающих транзакций с узла, запись информации об отслеживании в журнал событий и возобновление ожидающих рабочих процессов с помощью объекта Bookmark.

  • Более простые возможности расширения WF Designer. Новый WF Designer построен на основе Windows Presentation Foundation (WPF), он обеспечивает более удобную модель для повторного размещения WF Designer за пределами Visual Studio.

Дополнительные сведения см. в разделе What's New in Windows Workflow Foundation.

К началу

См. также

Основные понятия

Новые возможности Visual Studio 2010

Новые возможности ASP.NET 4 и Visual Web Developer

Новые возможности WPF версии 4

Новые возможности ADO.NET

Новые возможности Visual Basic 2010

Новые возможности Visual C# 2010

Новые возможности в Visual C++ 2010

Новые возможности Visual F# 2010

Другие ресурсы

Новые типы и члены в .NET Framework 4

What's New in Windows Communication Foundation

What's New in Windows Workflow Foundation

What's New in WCF Data Services