Пакет sdk для visual studio что это

Обновлено: 05.07.2024

В наше время open source проекты все популярнее. На площадках открытых проектов, например, на github можно найти множество полезных программ, но они не всегда имеют исполняемые файлы ("exe"), поэтому я постараюсь рассказать о том, как можно собрать самостоятельно C/C++ программу, из исходников, написанную на Microsoft Visual Studio.

Первым делом нам необходимо загрузить онлайн установщик Microsoft Visual Studio, с официального сайта. Для компиляции С/С++ проектов нет необходимости во всех пакетах и можно выбрать только те, которые нам необходимы.

Установщик загрузит необходимые пакеты из интернета и установит их.

После установки Visual Studio можно убедиться, что всё работает создав тестовый проект и скомпилировав его. Для этого нажмите в меню "Файл" → "Создать" → "Проект. "

После чего появится диалог выбора типа проекта, где можно выбрать:

  • Консольное приложение;
  • Классическое приложение;
  • Библиотеку динамической компоновки (dll);
  • Статическую библиотеку;

В нашем случае для быстрой проверки подойдет консольное приложение, выбираем название и папку проекта , после чего жмём кнопку "ОК" и создается наша программа.

После этого остается остается лишь скомпилировать её, для этого нужно выбрать в меню "Сборка" и нажать на пункт "Собрать решение".

Далее наш проект скомпилируется и в папке проекта появится наш тестовый исполняемый файл ("exe").

Если всё работает как надо, то можно приступать к сборке какого-нибудь другого открытого проекта с github или другого хостинга проектов.

Первым делом нам нужно загрузить исходники проекта. На площадке github это делается довольно просто, жмем на кнопку "Code" и "Download ZIP". После чего нужно распаковать его и можно приступать к сборке.

Ищем файл с расширением "<название_проекта>.vcxproj" и запускаем его. Перед нами появится диалог в котором нам предложат обновить SDK проекта (набор библиотек для разработки, которые Microsoft периодически обновляет) и набор инструментов, жмём обновить.

Теперь наш проект можно собрать, но до сборки необходимо выбрать разрядность проекта (например, для 32 битной системы или 64 битной), а также тип сборки (отладочный режим - debug или release).

Выбираем 64 битную систему и тип сборки релиз, после чего компилируем проект. Как и ранее нужно выбрать в меню "Сборка" и нажать на пункт "Собрать решение".

Некоторые проектам требуется вручную изменить SDK и набор инструментов, на установленный у вас, для этого идём в свойства проекта, выбираем сверху типа сборки и разрядность системы и уже там изменяем SDK и набор инструментов. В выпадающем меню появляются установленные у нас версии, выбираем их и нажимаем "ОК". После чего наш проект скомпилируется.

Бывает, что проект использует сторонние библиотеки, для этого их нужно загрузить отдельно и положить в папку. Узнать путь или изменить его можно в свойстве проекта, в разделе "С/C++" → "Общие" → "Дополнительные каталоги включаемых файлов".

Бывает, что SDK или набор инструментов, в свойстве проекта не изменяется в диалоге, чтобы изменить их нужно записать номер SDK, закрыть Visual Studio и вручную, блокнотом изменить этот номер в файле проекта "<название_проекта>.vcxproj".

При возникновении других проблем можно попробовать их загуглить, возможно, что кто-то уже сталкивался с ними и решил их.

пакет SDK Visual Studio позволяет расширять функции Visual Studio или интегрировать новые функции в Visual Studio. расширения можно распространять среди других пользователей, а также в Visual Studio Marketplace. Ниже перечислены некоторые из способов расширения Visual Studio:

Добавление команд, кнопок, меню и других элементов пользовательского интерфейса в интегрированную среду разработки

Добавление окон инструментов для новых функциональных возможностей

Расширение IntelliSense для данного языка или обеспечение IntelliSense для новых языков программирования

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

Включить поддержку для нового языка

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

доступ к миллионам разработчиков с помощью Visual Studio Marketplace

если ранее вы не записали расширение Visual Studio, то получите дополнительные сведения об этих функциях и начните разработку расширений Visual Studio.

Установка пакета SDK для Visual Studio

Visual Studio SDK является необязательным компонентом в программе установки Visual Studio. Пакет SDK для VS можно установить и позже. дополнительные сведения см. в статье установка пакета SDK для Visual Studio.

новые возможности пакета SDK для Visual Studio

в пакете SDK для Visual Studio есть некоторые новые функции, такие как предупреждение о синхронно загружаемых расширениях и формат VSIX v3, а также критические изменения, которые могут потребовать обновления расширения. дополнительные сведения см. в разделе новые возможности пакета sdk для Visual Studio 2019 и новые возможности пакета sdk для Visual Studio 2017.

Visual Studio рекомендации по работе с пользователем

получите советы по проектированию пользовательского интерфейса для расширения в Visual Studio рекомендации по работе с пользователем.

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

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

поиск и установка существующих расширений Visual Studio

расширения Visual Studio можно найти в диалоговом окне расширения и обновления в меню сервис . дополнительные сведения см. в разделе поиск и использование расширений Visual Studio. расширения можно также найти в Visual Studio Marketplace

Visual Studio Справочник по пакету SDK

справочник по API Visual Studio sdk можно найти в справочнике по Visual Studio sdk.

Visual Studio Примеры SDK

примеры с открытым исходным кодом для расширений VS SDK можно найти на GitHub Visual Studio примеров. в этом репозитории GitHub содержатся примеры, иллюстрирующие различные расширяемые функции в Visual Studio.

другие ресурсы пакета SDK Visual Studio

если у вас есть вопросы о VSSDK или хотите поделиться опытом разработки расширений, можно воспользоваться форумом по Visual Studio расширяемости или екстендвс Gitter чатрум.

Дополнительные сведения см. в блоге Аркана по VSX и в нескольких блогах, написанных специалистами MVP корпорации Майкрософт:

Пакет SDK для приложений Windows — это набор компонентов и инструментов для разработчиков, которые представляют новый этап развития платформы для разработки приложений Windows. Пакет SDK для приложений Windows предоставляет унифицированный набор API-интерфейсов и средств, которые можно единообразно применять для любого классического приложения в операционных системах Windows 11 и более ранних версий, вплоть до Windows 10 версии 1809.

Начало работы с пакетом SDK для приложений Windows

Пакет SDK для приложений для Windows предоставляет расширения для Visual Studio 2019 и Visual Studio 2022. К этим расширениям относятся шаблоны проектов, настроенные для использования компонентов пакета SDK для приложений для Windows в новых проектах. Кроме того, библиотеки пакета SDK для приложений Windows доступны через пакет NuGet, который можно установить в существующих проектах.

Рекомендации по конкретным версиям пакета Windows App SDK см. в статьях Каналы выпуска и Файлы для загрузки.

Функции пакета SDK для приложений для Windows

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

Каналы выпуска пакета SDK для приложений Windows

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

Выпуск Описание
Стабильный Этот канал поддерживается приложениями в рабочих средах. Он включает только стабильные API. По умолчанию документация по пакету SDK для приложений Windows описывает стабильный выпуск.
Предварительный просмотр Этот канал предоставляет предварительную версию следующего стабильного выпуска. В период между выпуском предварительной и следующей стабильной версий могут быть реализованы критические изменения API. Документацию по использованию предварительного выпуска см. в руководстве по предварительным и экспериментальным версиям.
Экспериментальный В этом канале представлены экспериментальные функции на ранних этапах разработки. Экспериментальные функции могут быть удалены из следующего выпуска или не выпущены вообще. Документацию по использованию экспериментального выпуска см. в руководстве по предварительным и экспериментальным версиям.

Дополнительные сведения о каналах выпуска пакета SDK для приложений Windows см. в статье Каналы выпуска пакета SDK для приложений Windows.

Преимущества пакета SDK для приложений Windows, которые получат разработчики Windows

Пакет SDK для приложений Windows предоставляет широкий спектр API-интерфейсов Windows с реализациями, не зависящими от ОС, которые предоставляются разработчикам в виде пакетов NuGet. Пакет SDK для приложений Windows не предназначен для замены Windows SDK. Windows SDK будет работать так же, как и раньше, а многие основные компоненты Windows будут совершенствоваться с помощью API, которые предоставляются в выпусках ОС и Windows SDK. Мы рекомендуем разработчикам переходить на пакет SDK для приложений Windows в удобном для себя темпе.

Унифицированное использование API для разных платформ классических приложений

Разработчики, которые хотят создавать классические приложения для Windows, вынуждены выбирать между несколькими платформами и средами приложений. Хотя каждая из таких платформ предоставляет множество функций и API, которые могут использоваться приложениями, созданными с помощью других платформ, некоторые из них могут использовать только определенные платформы. Пакет SDK для приложений Windows унифицирует доступ к API-интерфейсам Windows из классических приложений Windows 11 и Windows 10. Независимо от выбранной вами модели приложений вы получите доступ ко всему набору API-интерфейсов Windows, представленных в пакете SDK для приложений Windows.

Мы планируем и дальше развивать пакет SDK для приложений Windows, устраняя пока сохранившиеся различия между разными моделями приложений. Пакет SDK для приложений Windows будет включать как API WinRT, так и собственные API-интерфейсы C.

Согласованные возможности в разных версиях Windows

Так как API Windows меняются с каждой новой версией ОС, разработчикам нужно использовать такие техники, как адаптивный к версии код, чтобы учесть все различия в версиях, которые может использовать аудитория приложения. Это приводит к усложнению кода и работы разработчиков.

Интерфейсы API пакета SDK для приложений Windows будут работать с ОС Windows 11 и более ранних версий, вплоть до Windows 10 версии 1809. Таким образом, если все ваши клиенты работают с Windows 10 версии 1809 или любой более поздней версии Windows, вы сможете применять новые API-интерфейсы и функции пакета SDK для приложений Windows сразу после их выпуска. При этом вам не придется писать дополнительный код для адаптации к разным версиям.

Увеличенная частота выпусков

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

Стратегия развития для разработчиков

Новейшие планы по обновлению пакета SDK для приложений Windows см. в описании стратегии.

Отзывы и участие в разработке

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

Windows SDK (10.0.22000) для Windows 11 включает новейшие заголовки, библиотеки, метаданные и средства для создания приложений для Windows. Этот пакет SDK поможет вам создавать приложения универсальной платформы Windows (UWP), а также приложения Win32 для Windows 11 и предыдущих выпусков Windows.

Windows 10 версии 21H2 — это ограниченный набор функций для отдельных улучшений производительности и повышения качества. Разработчики должны знать об этом выпуске, но пока никаких действий не требуется.

Новый пакет Windows SDK для этой версии Windows выпущен не будет, так как в этом выпуске не вводятся новые API. Это означает, что нет необходимости вносить изменения в файлы проекта или задавать новую целевую версию Windows. Продолжайте использовать пакет Windows SDK (10.0.22000) для Windows 11.

НОВИНКА!Пакет SDK для приложений Windows

Пакет SDK для приложений Windows содержит унифицированный набор API и средств, которые отделены от ОС и предоставляются разработчикам с помощью пакетов NuGet. Эти API и инструменты могут согласованно использоваться любыми настольными приложениями в Windows 11 и ниже, вплоть до Windows 10 версии 1809.

Начало работы

Получить пакет Windows SDK можно двумя способами: установить с этой страницы, щелкнув ссылку для скачивания, или выбрать "Пакет SDK для Windows 11 (10.0.22000)" в дополнительных компонентах установщика Visual Studio 2019.

Перед установкой этого пакета SDK:

  1. Изучите все системные требования.
  2. Выйдите из Visual Studio перед установкой.
  3. Просмотрите заметки о выпуске и известные проблемы.

Системные требования

Минимальные системные требования этого пакета Windows SDK:

Поддерживаемые операционные системы

  • Разработка приложений универсальной платформы Windows (UWP)
    • Windows 10 1507 или более поздней версии: Домашняя, Профессиональная, для образовательных учреждений и Корпоративная (выпуски LTSB и S не поддерживаются)
    • Windows Server 2019, Windows Server 2016 и Windows Server 2012 R2 (только для командной строки)
    • Разработка приложений Win32
      • Windows 10 версии 1507 или более поздняя версия
      • Windows Server 2019, Windows Server 2016 и Windows Server 2012 R2 (только для командной строки);
      • Windows 8.1
      • Windows 7 с пакетом обновления 1 (SP1)

      (Не все средства поддерживаются в среде операционных систем более ранних версий)

      Требования к оборудованию

      • Процессор с частотой 1,6 ГГц или более мощный
      • 1 ГБ памяти (ОЗУ)
      • 4 ГБ свободного пространства на жестком диске

      Дополнительные требования для этого SDK

      Для установки пакета в среде Windows 8.1 и операционных систем более ранних версий необходимо сначала установить обновление KB2999226. Чтобы выполнить установку Windows SDK через Центр обновления Windows, перед этим необходимо установить последние рекомендованные обновления и исправления из Центра обновления Майкрософт.

      Что нового

      Windows SDK для Windows 11 позволяет обновить приложения для последней версии ОС Windows. Узнайте больше о новых возможностях Windows 11.

      Сведения о новых API, появившихся в Windows 11, см. в статье Новые API в Windows 11, сборка 22000.

      Выполните повторную сборку двоичных файлов Windows 11 в операционной системе ARM с помощью ARM64EC, чтобы любой системный код, загруженный приложениями x64, выполнялся на полной скорости. Воспользуйтесь преимуществами ARM64EC, чтобы постепенно перевести приложение в работу с полной скоростью на базе ARM, даже если у вас есть зависимости или подключаемые модули, которые еще не поддерживают ARM. Ознакомьтесь с объявлением.

      Примеры

      Примеры приложений для Windows теперь доступны через GitHub. Вы можете просмотреть код на веб-сайте GitHub, клонировать личную копию репозитория из Git или скачать запакованный архив со всеми примерами. Для нас очень важен ваш отзыв. Поэтому при возникновении проблемы или вопроса относительно репозитория без колебаний сообщайте нам. Эти примеры предназначены для запуска на настольном, мобильном и будущих устройствах, которые поддерживают платформу универсальных приложений для Windows (UWP).

      Предыдущие версии пакетов SDK

      Ранее выпущенные пакеты SDK и эмуляторы, а также сведения об обновлениях см. на странице архивов.

      Активация API-интерфейсов

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

      Заметки о выпуске и известные проблемы

      Пакет SDK для Windows 10, версия 2104 Раскрыть заметки

      Пакет SDK для Windows 10, версия 2004 со служебным обновлением (выпущено 16.12.2020) Развернуть заметки

      Предоставить отзыв

      Запросы на новые функции для разработчиков можно подавать с помощью приложения Центра отзывов в категории "Платформа разработчиков/API".

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

      Загрузки и инструменты

      Получите новейшие выпуски средств разработки Visual Studio и Windows 10.

      Архив для пакета SDK

      Поиск предыдущих версий Window SDK и других инструментов.

      Блог Windows

      Подпишитесь на наш блог, чтобы быть в курсе актуальных новостей о пакетах SDK.

      Информационный бюллетень о жизненном цикле Windows

      Основные даты выхода обновлений для выпусков Windows и окончания поддержки.

      Буду использовать жаргонизмы и варваризмы, потому что пишу на русском, а русских аналогов нужных терминов нет или они не совсем точно передают смысл.

      Данная статья имеет задачу в первом приближении проинформировать интересующихся о возможностях расширения функционала Visual Studio — «технологии» Visual Studio Extensibility.

      Visual Studio Extensibility

      Как известно, Microsoft Visual Studio — среда для разработки (IDE). Причём расширяемая среда.

      В связи с тем, что среда непростая, имеет продолжительную историю и позволяет реализовывать серьёзные вещи на своей основе, появился термин Visual Studio Extensibility (VSX), который объединяет в себе всё, что относится к расширению функционала студии (буду называть её так).

      Ядро студии от версии к версии остаётся в основном тем же, что и у 2002-й версии, а большинство новых возможностей (VS2005, VS2008 и VS2010) реализованы с использованием мощи VSX.

      К сожалению, разработчику, который будет работать с VSX, придётся столкнуться с «очаровательным кодом», который разрабатывался на протяжении нескольких лет разными людьми, и перерабатывался множество раз. А если учесть природу студии и, возможно, сжатые сроки её разработки, можно представить сколько интересного и удивительного разработчик может увидеть. Всё к тому же сожалению, именование сущностей тоже несколько хромает.

      И, наконец, такой аспект, как наличие обширной и понятной документации, а точнее её отсутствие, рождает непонятное и магическое влечение к использованию VSX профессиональными разработчиками. Что может быть увлекательнее, чем исследование уже реализованных решений и изобретение новых на их основе?

      Зачем расширять студию?

      Сразу стоит заметить: расширение студии доступно в двух вариантах — Isolated Mode и Integrated Mode. Различие тут в том, что само ядро студии и её API доступно всегда, но функционал, который присутствует в обычной студии будет доступен только в интегрированном режиме (например, сишарп и вижуал-бейсик, веб-проекты, всяческие окна и инструменты). В изолированном мы получим исключительно оболочку, шелл.

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

      Если же мы хотим обойтись без приобретения дорогостоящей копии Visual Studio Standard, Professional или версии Team System, то специально для нас есть бесплатный Visual Studio Isolated Shell, который можно использовать для создания своих стендэлон-продуктов, например специфических редакторов.

      Возможности VSX

      • макрос (macros),
      • надстройка (add-in),
      • пэкедж (integration package).

      Вернёмся к расширениям. Макросы и надстройки доступны всегда, но создание пэкеджей требует наличие Visual Studio SDK.

      Для того чтобы получить полную отдачу от VS SDK лучше сначала поставить VS 2008 SDK 1.0, а уже потом VS 2008 SDK 1.1. В 1.1 по какой-то причине отсутствует Project Base, о котором будет рассказано позже.

      В общем, после установки VS SDK появится возможность создавать надстройки и пэкеджи, а после установки Visual Studio 2008 Shell (isolated mode) with SP1 — VS Shell-based-решения. Отмечу, что изолированный шелл существует в десяти локализациях.

      Исключительно тремя вариантами VSX ограничивается только технически. А так, есть ещё и визуалайзеры (Visualizers), окна (Tool Window), проекты (Project Templates), MSBuild-расширения, DSL Tools и уже упомянутый VS Shell Isolated.

      Основой VSX является Managed Package Framework (MPF). Он позволяет создавать пэкеджи с управляемым кодом. MPF содержит инкапсулированные имплементации множества интерфейсов пэкеджей, что позволяет обходиться меньшим количеством кода для создания собственных пэкеджей.

      MPF-неймспейсы


      Следующий список неймспейсов становится доступен после установки SDK:
      Неймспейс Описание
      Microsoft.VisualStudio Классы для работы с COM-ошибками, константам студии и вин32-окнами
      Microsoft.VisualStudio.Package Обёртки из управляемого кода для проектов студии, редакторов кода и MSBuild
      Microsoft.VisualStudio.Package.Automation Обёртки для объектов автоматизации
      Microsoft.VisualStudio.Shell Базовые классы MPF, имплементирующие множество основных объектов студии, от которых можно наследоваться
      Microsoft.VisualStudio.Shell.Design Расширения дизайнеров
      Microsoft.VisualStudio.Shell.Design.Serialization Расширения сериализации дизайнеров
      Microsoft.VisualStudio.Shell.Design.Serialization.CodeDom CodeDOM-расширения дизайнеров
      Microsoft.VisualStudio.Shell.Flavor Поддержка подтипов проектов

      VSXtra

      • неполное покрытие ключевых сервисов студии в MPF;
      • необходимость написания огромного количества дополнительного кода (тысячи строк для реализации реальных расширений);
      • использование устаревших подходов, отсутствие дженериков и LINQ.

      Главная задача этого продукта подтолкнуть команду разработчиков студии к созданию нового современного MPF. Ну, а побочная — помочь разработчикам и развлечь своего автора.

      Visual Studio 2010 SDK

      • шаблоны создания окон и команд;
      • новый набор шаблонов расширений редактора;
      • новые билд-таски для создания VSIX-манифестов и VSIX-контейнеров, которые можно загрузить в Visual Studio Gallery, позволяющую расшарить ваше расширение;
      • редактор VSIX-манифестов;
      • пустой VSIX-проект, который позволит завернуть в VSIX-контейнер уже существующие проекты расширений.
      • DSL Tools вынесены за пределы SDK и теперь доступны в самой студии;
      • примеры SDK доступны только онлайн;
      • документация SDK доступна только онлайн;
      • улучшение процесса разработки расширений;
      • добавление дополнительных шаблонов проектов для расширений;
      • создание дополнительных инструментов создания и отладки расширений;
      • появляются дополнительных примеров создания расширений для десятой студии.
      • использование пэкеджей совместно с Managed Extensibility Framework;
      • расширение функциональности дизайнера данных;
      • интеграция с системами управления версиями;
      • кастомизация дебаггера или создание нового;
      • создание инструментов для тестирования.

      Использование пэкеджей и MEF для расширения возможностей студии

      Редактор студии создан на основе пэкеджа, дополненного несколькими MEF-расширениями. Для расширения функциональности редактора можно создавать эти расширения самостоятельно.

      Расширение функциональности дизайнера данных для работы с внешними источниками

      Расширение возможностей дизайнера данных (Data Designer Extensibility, DDEX) позволяет работать с множеством внешних источников данных в режиме разработки. Иерархии этих источников отображаются в сервер-эксплорере (Server Explorer). DDEX даёт возможность получить функциональность по отношению к внешним источникам данных, работать с видимостью свойств и другие возможности дизайнеров студии.

      DDEX SDK предоставляет документацию, примеры и прочую информацию для помощи в создании собственных DDEX-провайдеров.

      Интеграция с системами управления версиями

      Студия поддерживает два типа интеграции: плагин, созданный на основе соответствующего апи (Source Control API, известный раньше как MSSCCI API), и предоставляющий базовую функциональность; решение, основанное на пэкеджах, с более широкими возможностями.

      Кастомизация или создание дебаггеров

      SDK позволяет кастомизировать компоненты студии, предназначенные для отладки или же создавать собственные компоненты для интеграции в IDE.

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

      • самой среде студии (Visual Studio IDE);
      • ;
      • ATL COM.

      Создание инструментов для тестирования

      Студия включает в себя инструментарий для тестирования, который глубоко интегрирован с другими возможностями среды. Инструментарий работает не только со своим собственным тестировочным фреймворком, но так же и с фреймворком инструментария жизненного цикла программного обеспечения.

      Эти инструменты позволяют создавать, управлать, редактировать и запускать ручные и автоматические тесты, сохраняя результаты тестирования. Имеется возможность создавать собственные типы тестов.

      Читайте также: