C# 8 и .NET Core. Разработка и оптимизация - Марк Прайс - E-Book

C# 8 и .NET Core. Разработка и оптимизация E-Book

Марк Прайс

0,0

Beschreibung

В издании рассмотрены все темы, связанные с разработкой на C#. В начале книги вы ознакомитесь с основами C#, в том числе с объектно-ориентированным программированием, а также с новыми возможностями C# 8.0. Несколько глав посвящено .NET Standard API, применяемым для запроса данных и управления ими, отслеживания производительности и ее повышения, работы с файловой системой, асинхронными потоками, сериализацией и шифрованием. Кроме того, на примерах кроссплатформенных приложений вы сможете собрать и развернуть собственные. Например, веб-приложения с использованием ASP.NET Core или мобильные приложения на Xamarin Forms. Также вы познакомитесь с технологиями, применяемыми при создании приложений Windows для ПК, в частности с Windows Forms, Windows Presentation Foundation (WPF) и Universal Windows Platform (UWP).

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 769

Veröffentlichungsjahr: 2024

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Переводчик С. Черников

Марк Прайс

C# 8 и .NET Core. Разработка и оптимизация. — СПб.: Питер, 2024.

ISBN 978-5-4461-1700-0

© ООО Издательство "Питер", 2024

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

Оглавление

Об авторе
О научном редакторе
Предисловие
Структура книги
Необходимое программное обеспечение
Условные обозначения
Скачивание примеров кода
Скачивание цветных изображений для книги
От издательства
1. Привет, C#! Здравствуй, .NET Core!
Настройка среды разработки
Знакомство с .NET
Разработка консольных приложений с использованием Visual Studio Code
Скачивание кода решения из репозитория GitHub
Поиск справочной информации
Практические задания
Резюме
2. Говорим на языке C#
Введение в C#
Основы языка C#
Работа с переменными
Работа со значениями null
Дальнейшее изучение консольных приложений
Практические задания
Резюме
3. Управление потоком исполнения и преобразование типов
Работа с переменными
Операторы выбора
Операторы цикла
Приведение и преобразование типов
Практические задания
Резюме
4. Разработка, отладка и тестирование функций
Написание функций в языке С#
Отладка в процессе разработки
Регистрация событий во время разработки и выполнения проекта
Модульное тестирование функций
Практические задания
Резюме
5. Создание пользовательских типов с помощью объектно-ориентированного программирования
Коротко об объектно-ориентированном программировании
Разработка библиотек классов
Хранение данных в полях
Запись и вызов методов
Управление доступом с помощью свойств и индексаторов
Практические задания
Резюме
6. Реализация интерфейсов и наследование классов
Настройка библиотеки классов и консольного приложения
Упрощение методов
Подъем и обработка событий
Реализация интерфейсов
Обеспечение безопасности многократного использования типов с помощью дженериков
Управление памятью с помощью ссылочных типов и типов значений
Наследование классов
Приведение в иерархиях наследования
Наследование и расширение типов .NET
Практические задания
Резюме
7. Описание и упаковка типов .NET
Введение в .NET Core 3.0
Использование компонентов .NET Core
Публикация и развертывание ваших приложений
Декомпиляция сборок
Упаковка библиотек для распространения через NuGet
Перенос приложений с .NET Framework на .NET Core
Практические задания
Резюме
8. Работа с распространенными типами .NET
Работа с числами
Работа с текстом
Сопоставление шаблонов с использованием регулярных выражений
Хранение данных с помощью коллекций
Работа с интервалами, индексами и диапазонами
Работа с сетевыми ресурсами
Работа с типами и атрибутами
Интернационализация кода
Практические задания
Резюме
9. Работа с файлами, потоками и сериализация
Управление файловой системой
Чтение и запись с помощью потоков
Кодирование и декодирование текста
Сериализация графов объектов
Практические задания
Резюме
10. Защита данных и приложений
Терминология безопасности
Шифрование и дешифрование данных
Хеширование данных
Подписывание данных
Генерация случайных чисел
Криптография: что нового
Аутентификация и авторизация пользователей
Практические задания
Резюме
11. Работа с базами данных с помощью Entity Framework Core
Современные базы данных
Настройка EF Core
Определение моделей EF Core
Запрос данных из моделей EF Core
Схемы загрузки данных при использовании EF Core
Управление данными с помощью EF Core
Практические задания
Резюме
12. Создание запросов и управление данными с помощью LINQ
Написание запросов LINQ
Работа с множествами с помощью LINQ
Использование LINQ с EF Core
Подслащение синтаксиса LINQ с помощью синтаксического сахара
Использование нескольких потоков и параллельного LINQ
Создание собственных методов расширения LINQ
Работа с LINQ to XML
Практические задания
Резюме
13. Улучшение производительности и масштабируемости с помощью многозадачности
Процессы, потоки и задачи
Мониторинг производительности и использования ресурсов
Асинхронное выполнение задач
Синхронизация доступа к общим ресурсам
Ключевые слова async и await
Практические задания
Резюме
14. Практическое применение C# и .NET
Модели приложений для C# и .NET
Нововведения ASP.NET Core
SignalR
Blazor
Дополнительные главы
Разработка модели данных объекта для Northwind
Резюме
15. Разработка сайтов с помощью ASP.NET Core Razor Pages
Веб-разработка
Обзор ASP.NET Core
Технология Razor Pages
Использование Entity Framework Core совместно с ASP.NET Core
Применение библиотек классов Razor
Практические задания
Резюме
16. Разработка сайтов с использованием паттерна MVC
Настройка сайта ASP.NET Core MVC
Изучение сайта ASP.NET Core MVC
Добавление собственного функционала на сайт ASP.NET Core MVC
Использование других шаблонов проектов
Практические задания
Резюме
17. Разработка сайтов с помощью системы управления контентом (CMS)
Преимущества CMS
Piranha CMS
Определение компонентов, типов контента и шаблонов
Тестирование сайта Northwind CMS
Практические задания
Резюме
18. Создание и использование веб-сервисов
Создание веб-сервисов с помощью Web API в ASP.NET Core
Документирование и тестирование веб-сервисов
Обращение к сервисам с помощью HTTP-клиентов
Реализация расширенных функций
Прочие коммуникационные технологии
Практические задания
Резюме
19. Разработка интеллектуальных приложений с помощью алгоритмов машинного обучения
Общие сведения о машинном обучении
Знакомство с ML.NET
Рекомендация товаров пользователю
Практические задания
Резюме
20. Разработка настольных Windows-приложений
Общие сведения об устаревших платформах Windows-приложений
Общие сведения о современной платформе Windows
Разработка современного Windows-приложения
Использование ресурсов и шаблонов
Привязка данных
Практические задания
Резюме
21. Разработка кросс-платформенных мобильных приложений с помощью Xamarin.Forms
Знакомство с Xamarin и Xamarin.Forms
Разработка мобильных приложений с помощью Xamarin.Forms
Взаимодействие мобильных приложений с веб-сервисами
Практические задания
Резюме
Послесловие
Приложение. Ответы на проверочные вопросы
Глава 1. Привет, C#! Здравствуй, .NET Core!
Глава 2. Говорим на языке C#
Глава 3. Управление потоками и преобразование типов
Глава 4. Разработка, отладка и тестирование функций
Глава 5. Создание пользовательских типов с помощью объектно-ориентированного программирования
Глава 6. Реализация интерфейсов и наследование классов
Глава 7. Описание и упаковка типов .NET
Глава 8. Работа с распространенными типами .NET
Глава 9. Работа с файлами, потоками и сериализация
Глава 10. Защита данных и приложений
Глава 11. Работа с базами данных с помощью Entity Framework Core
Глава 12. Создание запросов и управление данными с помощью LINQ
Глава 13. Улучшение производительности и масштабируемости с помощью многозадачности
Глава 15. Разработка сайтов с помощью ASP.NET Core Razor Pages
Глава 16. Разработка сайтов с использованием паттерна MVC
Глава 17. Разработка сайтов с помощью системы управления контентом (CMS)
Глава 18. Разработка и использование веб-сервисов
Глава 19. Разработка интеллектуальных приложений с помощью алгоритмов машинного обучения
Глава 20. Разработка настольных Windows-приложений
Глава 21. Разработка кросс-платформенных мобильных приложений с помощью Xamarin.Forms
Рекомендуем прочитать

Об авторе

Марк Дж. Прайс — обладатель сертификатов Microsoft Certified Trainer (MCT), Microsoft Spe­cialist: Programming in C# и Microsoft Specialist: Architecting Microsoft Azure Infrastructure Solu­tions. За его плечами более 20 лет практики в области обучения и программирования.

С 1993 года Марк сдал свыше 80 экзаменов корпорации Microsoft по программированию и специализируется на подготовке других людей к успеш­ному прохождению тестирования. Его студенты — как 16-летние новички, так и профессионалы с многолетним опытом. Марк ведет эффективные тренинги, делясь реальным опытом консультирования и разработки систем для корпораций по всему миру.

В период с 2001 по 2003 год Марк посвящал все свое время разработке официального обучающего программного обеспечения в штаб-квартире Microsoft в американском городе Редмонд. В составе команды он написал первый обучающий курс по C#, когда была только выпущена ранняя альфа-версия языка. Во время сотрудничества с Microsoft он преподавал на курсах повышения квалификации сертифицированных корпорацией специалистов, читая лекции по C# и .NET.

В настоящее время Марк разрабатывает и поддерживает обучающие курсы для системы Digital Experience Platform компании Episerver, лучшей .NET CMS в сфере цифрового маркетинга и электронной коммерции.

В 2010 году Марк получил свидетельство об окончании последипломной программы обучения, дающее право на преподавание. Он преподает старшеклассникам математику в двух средних школах в Лондоне. Кроме того, Марк получил сертификат Computer Science BSc. Hons. Degree в Бристольском университете (Англия).

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

О научном редакторе

Дамир Арх — профессионал с многолетним опытом разработки и сопровождения различного программного обеспечения: от сложных корпоративных программных проектов до современных потребительских мобильных приложений. Он работал со многими языками, однако его любимым остается C#. Стремясь к совершенствованию процессов, Дамир предпочитает разработку, основанную на тестировании, непрерывной интеграции и непрерывном развертывании. Он делится своими знаниями, выступая на конференциях, ведет блоги и пишет статьи. Дамир Арх семь раз подряд получал престижную премию Microsoft MVP за разработку технологий. В свободное время он всегда в движении: любит пеший туризм, геокэшинг, бег и скалолазание.

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

От издательства

Ваши замечания, предложения, вопросы отправляйте по адресу [email protected] (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.

1. Привет, C#! Здравствуй, .NET Core!

Эта глава посвящена настройке среды разработки; сходствам и различиям .NET Core, .NET Framework и .NET Standard; а также тому, как применять различные инструменты для создания простейших приложений с помощью C# и .NET Core, используя Microsoft Visual Studio Code.

После первой главы эту книгу можно разделить на три части: первая знакомит с грамматикой и терминологией языка C#; вторая содержит описание типов, доступных в .NET Core для создания функций приложения; третья включает примеры распространенных кросс-платформенных приложений, которые вы можете создавать с использованием C# и .NET. Последние две главы посвящены двум типам приложений, которые могут быть разработаны с помощью языка C#, однако первая не описывает разработку кросс-платформенных приложений, а вторая еще не задействует .NET Core, поэтому эти главы следует рассматривать в качестве дополнительных.

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

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

Выражаясь словами Сэмюэля Джонсона, составившего в 1755 году толковый словарь английского языка, я, вероятно, допустил «несколько диких промахов и забавных несуразиц, от которых не может быть свободна ни одна из работ подобной сложности». Я принимаю на себя полную ответственность за них и надеюсь, что вы оцените мою попытку «поймать ветер» и написать книгу о таких быстроразвивающихся технологиях, как C# и .NET Core, и приложениях, которые можете разработать с их помощью.

В этой главе:

• настройка среды разработки;

• знакомство с .NET;

• разработка консольных приложений с использованием Visual Studio Code;

• управление исходным кодом с помощью GitHub;

• поиск справочной информации.

Настройка среды разработки

Прежде чем приступать к программированию, вам нужно настроить редактор кода для C#. Microsoft предоставляет целое семейство редакторов и интегрированных сред разработки (Integrated Development Environment, IDE), содержащих редактор кода C#:

• Visual Studio Code;

• Visual Studio 2019;

• Visual Studio 2019 для Mac.

Использование Visual Studio Code для разработки кросс-платформенных приложений

Microsoft Visual Studio Code — cамая современная и упрощенная кросс-платформен-ная среда разработки, разработанная корпорацией Microsoft. Ее можно запустить во всех распространенных операционных системах, включая Windows, macOS и множество разновидностей Linux, таких как Red Hat Enterprise Linux (RHEL) и Ubuntu.

Visual Studio Code — хороший выбор для современной кросс-платфор­менной разработки, поскольку имеет обширный и развивающийся набор расширений для поддержки многих языков, помимо C#. И, будучи кросс-платформенной и простой средой разработки, Visual Studio Code может быть установлена на всех платформах, на которых будут установлены ваши приложения, для выполнения быстрых правок и прочих задач.

Visual Studio Code — редактор кода для разработки кросс-платформенных приложений. Поэтому я решил использовать данную программу во всех главах книги, кроме двух последних, где требуются недоступные в Visual Studio Code специальные функции для разработки приложений в операционной системе Windows и мобильных приложений.

О намерениях Microsoft в отношении Visual Studio Code можно прочитать на сайте github.com/Microsoft/vscode/wiki/Roadmap.

Если вы предпочитаете использовать Visual Studio 2019 или Visual Studio для Mac вместо Visual Studio Code, то, конечно, это возможно, но я предполагаю, что вы уже знакомы с данными приложениями, и потому не буду давать в книге пошаговые инструкции по их применению.

Информацию, касающуюся Visual Studio Code и Visual Studio 2019, можно получить на сайте www.itworld.com/article/3403683/visual-studio-code-stepping-on-visual-studios-toes.html.

Использование Visual Studio 2019 для разработки Windows-приложений

Программа Microsoft Visual Studio 2019 работает только в операционной системе Windows версии 7 SP1 или более поздней. Для создания приложений универсальной платформы Windows (Universal Windows Platform, UWP) вам необходимо запустить приложение в операционной системе Windows 10. Это единственный инструмент Microsoft для разработчиков, который может создавать приложения для Windows, поэтому мы будем ссылаться на него в главе 20.

Использование Visual Studio для Mac с целью разработки мобильных приложений

Разработка приложений для устройств под управлением операционной системы iOS и iPadOS требует наличия компьютера с установленной системой macOS и средой Xcode. Вы можете использовать Visual Studio 2019 на Windows с установленными расширениями для Xamarin для написания кросс-платформенного мобильного приложения, но для его компиляции все равно понадобятся macOS и Xcode.

Итак, мы будем использовать программу Visual Studio 2019 для Mac в операционной системе macOS в главе 21.

Рекомендуемые инструменты и операционные системы

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

Таблица 1.1

Глава

Среда разработки

Операционная система

1–19

Visual Studio Code

Windows, macOS или Linux

20

Visual Studio 2019

Windows 10

21

Visual Studio 2019 для Mac

macOS

Работая над этой книгой, я использовал MacBook Pro и следующее программное обеспечение:

• Visual Studio Code на macOS как мой основной редактор кода;

• Visual Studio Code в операционной системе Windows 10 (в виртуальной машине) для тестирования поведения, специфичного для операционной системы, например работы с файловой системой;

• Visual Studio 2019 в операционной системе Windows 10 (в виртуальной машине);

• Visual Studio 2019 для Mac в операционной системе macOS для создания мобильных приложений.

Google и Amazon — сторонники среды Visual Studio Code, о чем можно прочитать на сайте www.cnbc.com/2018/12/20/microsoft-cmo-capossela-says-google-employees-use-visual-studio-code.html.

Кросс-платформенное развертывание

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

Сейчас .NET Core поддерживает следующие платформы для развертывания:

• Windows — Windows 7 SP1 или версии выше. Windows 10 версия 1607 или выше; Windows Server 2012 R2 SP1 или версии выше. Nano Server версия 1803 или выше;

• Mac — macOS High Sierra (версия 10.13) или версии выше;

• Linux — RHEL 6 или версии выше. RHEL, CentOS, Oracle Linux версия 7 или выше. Ubuntu 16.04 или версии выше. Fedora 29 или версии выше. Debian 9 или версии выше. openSUSE 15 или версии выше.

С официальным списком поддерживаемых операционных систем можно ознакомиться на сайте github.com/dotnet/core/blob/master/release-notes/3.0/3.0-supported-os.md.

Знакомство с версиями Microsoft Visual Studio Code

Компания Microsoft почти каждый месяц выпускает релиз и обновляет программу Visual Studio Code. Например:

• Version 1.38, август 2019 года, функциональная версия;

• Version 1.38.1, август 2019 года, исправленная версия.

С последними версиями можно ознакомиться на сайте code.visualstu­dio.com/updates.

В книге используется версия 1.38.1, выпущенная 11 сентября 2019 года. Однако версия Microsoft Visual Studio Code менее важна, чем версия расширения C# for Visual Studio Code, которое вы установите позже.

Расширение C# не требуется, однако предоставляет технологию IntelliSense при вводе, навигации по коду и отладке, поэтому его весьма желательно установить. Для поддержки C# 8.0 вам необходимо установить расширение C# версии 1.21.3 или выше.

В этой книге я познакомлю вас с сочетаниями клавиш и интерфейсом программы Visual Studio Code в операционной системе macOS. Среды Visual Studio Code для операционных систем Windows и Linux практически идентичны, однако комбинации клавиш, скорее всего, будут отличаться.

В табл. 1.2 перечислены некоторые распространенные сочетания клавиш.

Таблица 1.2

Действие

В macOS

В Windows

Отобразить панель команд

Cmd+Shift+P,

F1

Ctrl+Shift+P,

F1

Переход к определению

F12

F12

Назад

Ctrl+–

Alt+←

Далее

Ctrl+Shift+–

Alt+→

Отобразить терминал

Ctrl+’

Ctrl+’

Новый терминал

Ctrl+Shift+’

Ctrl+Shift+’

Переключить на строчный комментарий

Ctrl+/

Ctrl+/

Переключить на блочный комментарий

Shift+Option+A

Shift+Alt+A

Я рекомендую вам скачать PDF-файл, в котором описаны сочетания клавиш для вашей операционной системы:

• Windows: code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf;

• macOS: code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf;

• Linux: code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf.

Узнать о привязках клавиш по умолчанию для Visual Studio Code и о том, как их настроить, можно на сайте code.visualstudio.com/docs/getstarted/keybindings.

Среда разработки Visual Studio Code совершенствовалась последние несколько лет благодаря компании Microsoft. Существует также версия Insiders, которая постоянно обновляется.

Скачивание и установка среды Visual Studio Code

Теперь вы готовы скачать и установить среду Visual Studio Code, ее расширение C#, среду .NET Core 3.0 и пакет SDK.

1. Скачайте и установите либо стабильную версию Stable, либо версию Insiders среды Visual Studio Code, перейдя по ссылке code.visualstudio.com.

2. Скачайте и установите среду .NET Core и пакет SDK, перейдя по ссылке www.micro­soft.com/net/download.

3. Для установки расширения C# вам необходимо сначала запустить приложение Visual Studio Code.

4. В Visual Studio Code нажмите значок Extensions (Расширения) или выберите View—>Extensions (Вид—>Расширения).

5. C# — одно из самых популярных доступных расширений, поэтому вы должны увидеть его в верхней части списка или можете ввести C# в поле поиска, как показано на рис. 1.1.

Рис. 1.1

6. Нажмите кнопку Install (Установить) и дождитесь скачивания и установки пакета.

Более подробно о поддержке средой разработки Visual Studio Code языка C# можно узнать на сайте code.visualstudio.com/docs/languages/csharp.

Установка расширений

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

Таблица 1.3

Расширение

Описание

C# для Visual Studio Code

(работает на OmniSharp)

мс-vscode.csharp

Поддержка редактирования C#, включая подсветку синтаксиса, IntelliSense, переход к определению, поиск ссылок, поддержка отладки для .NET Core (CoreCLR) и проектов project.json и csproj для операционных систем Windows, macOS и Linux

Документация XML в языке C#.

Комментарии k--kato.docomment

Создание комментариев документации XML для Visual Studio Code

Расширения C#

jchannon.csharpextensions

Добавление класса C#, интерфейса C#, поля и свойства из конструкторов, конструктора из свойств

REST-клиент

humao.rest-client

Отправка HTTP-запроса и просмотр ответа непосредственно в Visual Studio Code

Декомпилятор ILSpy .NET

icsharpcode.ilspy-vscode

Декомпиляция сборки MSIL — поддержка среды .NET Framework, .NET Core и .NET Standard

SharpPad

jmazouri.sharppad

Проверка результатов вашего кода. Код работает аналогично таким инструментам, как LinqPad и RoslynPad

Знакомство с .NET

.NET Framework, .NET Core, Xamarin и .NET Standard — связанные и зависимые друг от друга платформы для разработки приложений и сервисов. В данном разделе я познакомлю вас с каждой из этих платформ .NET.

Обзор .NET Framework

.NET Framework — платформа для разработки, включающая общеязыковую исполняющую среду (Common Language Runtime, CLR), которая управляет выполнением кода, и обширную библиотеку базовых классов (Base Class Library, BCL) для создания приложений. Платформа .NET Framework изначально проектировалась как кросс-платформенная, но впоследствии компания Microsoft сконцентрировалась на внедрении платформы и обеспечении максимально эффективной работы в операционной системе Windows.

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

Все приложения на компьютере, разработанные для .NET Framework, используют одну и ту же версию CLR и библиотек, хранящихся в глобальном кэше сборок (Global Assembly Cache, GAC), что может привести к неполадкам, если некоторым из них потребуется определенная версия для совместимости.

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

Проекты Mono и Xamarin

Сторонние разработчики создали .NET-проект под названием Mono. Хоть он и был кросс-платформенным, он значительно отставал от официальной реализации .NET Framework.

Более подробную информацию о проекте Mono можно найти на сайте www.mono-project.com.

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

Более подробную информацию о Unity можно получить на сайте docs.uni­ty3d.com.

В 2016 году корпорация Microsoft приобрела компанию Xamarin и теперь бесплатно предоставляет пользователям дорогостоящее решение Xamarin в качестве расширения для среды разработки Visual Studio 2019. Кроме того, корпорация переименовала инструментарий для разработчика Xamarin Studio в Visual Studioдля Mac и внедрила возможность создавать другие типы приложений. В Visual Studio 2019 для Mac корпорация Microsoft заменила части редактора Xamarin Studio на части из Visual Studio для Windows, чтобы обеспечить знакомый пользовательский опыт и производительность.

Обзор .NET Core

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

В итоге свет увидел новый продукт — .NET Core, включающий кросс-платфор­менную реализацию рабочей общеязыковой исполняющей среды под названием CoreCLR и набор библиотек классов CoreFX.

Скотт Хантер, директор .NET-подразделения Microsoft, утверждает: «Сорок процентов пользователей .NET Core — новые разработчики. Мы хотим привлекать новых людей».

Платформа .NET Core быстро развивается и ввиду возможности ее развертывания рядом с приложением может часто меняться, и эти изменения не повлияют на другие приложения .NET Core на той же машине. Обновления, которые Microsoft может внести в .NET Core, нельзя добавить в .NET Framework.

Узнать больше о позиционировании Microsoft .NET Core и .NET Framework можно на сайте devblogs.microsoft.com/dotnet/update-on-net-core-3-0-and-net-framework-4-8/.

Обзор последующих версий .NET

На конференции разработчиков Microsoft Build в мае 2019 года команда .NET объявила, что после выпуска .NET Core 3.0 в сентябре 2019 года .NET Core будет переименована в .NET, а в номере основной версии будет пропущен номер 4, чтобы избежать путаницы с NET Framework 4.x. Итак, следующей версией .NET Core будет версия .NET 5.0, выпуск которой запланирован на ноябрь 2020 года. После этого корпорация Microsoft планирует выпускать ежегодные основные версии каждый ноябрь, подобно тому как Apple выпускает основные версии iOS каждую вторую неделю в сентябре.

Более подробную информацию о планах корпорации Microsoft, каса­ющихся версии .NET 5.0, можно найти на сайте devblogs.microsoft.com/dotnet/introducing-net-5/.

В табл. 1.4 показано, когда были выпущены основные версии .NET Core, когда запланированы будущие выпуски и какая версия используется в этой книге.

Таблица 1.4

Версия

Дата выпуска

Издание

Выпуск

.NET Core RC1

Ноябрь 2015 года

Первое

Март 2016 года

.NET Core 1.0

Июнь 2016 года

.NET Core 1.1

Ноябрь 2016 года

.NET Core 1.0.4 и .NET Core 1.1.1

Март 2017 года

Второе

Март 2017 года

.NET Core 2.0

Август 2017 года

Обновление .NET Core для UWP в Windows 10 Fall Creators

Октябрь 2017 года

Третье

Ноябрь 2017 года

.NET Core 2.1

Май 2018 года

.NET Core 2.2

Декабрь 2018 года

.NET Core 3.0

Сентябрь 2019 года

Четвертое

Октябрь 2019 года

.NET Core 3.1 (текущая версия)

Декабрь 2019 года

Декабрь 2019 года

.NET 5.0

Ноябрь 2020 года

.NET 6.0

Ноябрь 2021 года

Я не могу обещать, что 5-е и 6-е издания этой книги будут соответствовать будущим выпускам .NET.

Поддержка .NET Core

Версии .NET Core сопровождаются либо долгосрочной поддержкой (long term support, LTS), либо текущей (current), как описано ниже.

• Релизы LTS стабильны и требуют меньше обновлений в течение срока их службы. Это хороший выбор для приложений, не требующих частых обновлений. Релизы LTS будут поддерживаться в течение трех лет после их выпуска. .NET Core 3.1 будет выпуском LTS.

Версии .NET Core 1.0 и 1.1 достигли конца срока службы и прекратили поддержку 27 июня 2019 года через три года после первоначального выпуска .NET Core 1.0.

• Текущие релизы включают функции, которые могут меняться в зависимости от обратной связи. Это хороший выбор для активно разрабатываемых приложений, поскольку они предоставляют доступ к последним обновлениям. После трех месяцев обслуживания предыдущая вспомогательная версия больше не будет поддерживаться. Например, после выпуска версии 1.2 у систем, работающих с версией 1.1, будет три месяца на обновление до версии 1.2, чтобы пользоваться поддержкой. Версия .NET Core 3.0 — текущий релиз, поэтому если вы еще не обновились хотя бы до .NET Core 3.1, необходимо сделать это как можно скорее.

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

В чем особенность .NET Core

.NET Core менее объемна, чем текущая версия .NET Framework, из-за того, что устаревшие технологии были удалены. Например, Windows Forms и Windows Presentation Foundation (WPF) можно использовать для создания приложений с графическим интерфейсом пользователя (graphical user interface, GUI), однако они тесно связаны с экосистемой операционной системы Windows, поэтому были удалены из .NET Core в операционных системах macOS и Linux.

Одна из новых функций .NET Core 3.0 — поддержка запуска старых приложений Windows Forms и WPF с помощью пакета Windows Desktop Pack, входящего в состав версии .NET Core 3.0 для операционной системы Windows, поэтому он считается более полным, чем пакет SDK для операционных систем macOS и Linux. При необходимости вы можете внести небольшие изменения в устаревшее приложение Windows, а затем перестроить его для .NET Core, чтобы воспользоваться новыми функциями и обновлениями. О поддержке разработки таких типов приложений Windows вы узнаете в главе 20.

Универсальная платформа Windows (Universal Windows Platform, UWP) — последняя технология, применяемая для создания Windows-приложений, построенная на измененной версии .NET Core. Платформа UWP не входит в состав .NET Core, поскольку не считается кросс-платформенной.

Компоненты ASP.NET Web Forms и Windows Communication Foundation (WCF) представляют собой устаревшие технологии для создания веб-приложений и сервисов, используемые сегодня лишь некоторыми разработчиками, ввиду чего эти компоненты также были удалены из .NET Core. Вместо этого разработчики предпочитают задействовать компоненты ASP.NET MVC и ASP.NET Web-API. Обе технологии были реорганизованы и объединены в новый продукт, ASP.NET Core, работающий на платформе .NET Core. Вы узнаете о них в главах 15, 16 и 18.

Некоторые разработчики .NET Framework озабочены тем, что в .NET Core отсутствуют веб-формы ASP.NET, WCF и Windows Work Flow (WF) и надеются, что корпорация Microsoft пересмотрит данный вопрос. Существуют проекты с открытым исходным кодом, позволяющие WCF и WF перейти на .NET Core. Более подробную информацию можно найти на сайте devblogs.microsoft.com/dotnet/supporting-the-community-with-wf-and-wcf-oss-projects/.

Entity Framework (EF)6 — технология объектно-реляционного отображения для работы с информацией, хранящейся в реляционных базах данных, таких как Oracle и Microsoft SQL Server. За годы развития данная технология погрязла в различных доработках, поэтому ее новый кросс-платформенный API был оптимизирован и стал поддерживать такие нереляционные базы данных, как Microsoft Azure Cosmos DB. Теперь технология называется Entity Framework Core. Об этом вы узнаете в главе 11.

Если у вас есть приложения, использующие устаревший EF, то его версия .NET поддерживается в .NET Core 3.0.

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

Основная цель корпорации Microsoft — не делать ядро .NET меньше, чем .NET Frame­work. Цель состоит в том, чтобы разбить .NET Core на компоненты для поддержки современных технологий и уменьшения числа зависимостей. Тогда для развертывания нужны будут только те пакеты, которые необходимы вашему приложению.

Обзор .NET Standard

В 2019 году с платформой .NET сложилась следующая ситуация: существует три вет­ви платформы .NET, все из которых разрабатываются корпорацией Microsoft:

• .NET Core — для кросс-платформенных и новых приложений;

• .NET Framework — для устаревших приложений;

• Xamarin — для мобильных приложений.

Все они имеют свои достоинства и недостатки, поскольку предназначены для разных ситуаций. Это привело к тому, что разработчик должен изучить три платформы, каждая из которых раздражает своими странностями и ограничениями. По этой причине Microsoft работает над .NET Standard: спецификацией для набора API, которая может быть реализована на всех платформах .NET. Например, указанием на наличие базовой поддержки является совместимость платформы с .NET Standard 1.4.

В рамках .NET Standard 2.0 и более поздних версий корпорация Microsoft привела все три платформы в соответствие с современным минимальным стандартом, что значительно упростило разработчикам совместное использование кода с любой разновидностью .NET.

Это позволило добавить в .NET Core 2.0 и более поздние версии ряд недостающих API, необходимых разработчикам для переноса старого кода, написанного для .NET Framework, в кросс-платформенный .NET Core. Однако некоторые API уже реализованы, но при работе выдают исключение о том, что фактически не должны использоваться! Обычно это происходит из-за различий в операционной системе, в которой вы запускаете .NET Core. Как обрабатывать эти исключения, вы узнаете в главе 2.

Важно понимать, что .NET Standard — это просто стандарт. Вы не можете установить .NET Standard так же, как не можете установить HTML5. Чтобы использовать HTML5, вам необходимо установить браузер, который реализует стандарт HTML5.

Чтобы использовать .NET Standard, необходимо установить платформу .NET, которая реализует спецификацию .NET Standard. .NET Standard 2.0 реализована в последних версиях .NET Framework, .NET Core и Xamarin.

Последняя версия .NET Standard 2.1 реализована только в .NET Core 3.0, Mono и Xamarin. Для некоторых функций C# 8.0 требуется .NET Standard 2.1. Она не реа­лизована в .NET Framework 4.8, поэтому мы рассматриваем .NET Framework как устаревшую.

Версии .NET Standard и поддерживаемые ими платформы .NET перечислены на сайте github.com/dotnet/standard/blob/master/docs/versions.md.

Платформы .NET в изданиях этой книги

В первом издании этой книги, написанном в марте 2016 года, я сосредоточился на функциональности .NET Core, но использовал .NET Framework, когда важные или полезные функции еще не были реализованы в .NET Core, поскольку это было еще до окончательного выпуска .NET Core 1.0. Visual Studio 2015 использовался для большинства примеров, Visual Studio Code описывался кратко.

Во втором издании все примеры кода .NET Framework были (почти) полностью убраны, чтобы читатели могли сосредоточиться на примерах .NET Core, которые действительно работают кросс-платформенно. Третье издание завершило переход. Оно было переписано так, чтобы весь код .NET Core был чистым. Но предоставление пошаговых инструкций для нескольких инструментов привело к ненужному усложнению.

В этом, четвертом, издании я продолжу тенденцию, показывая только примеры кодирования с использованием Visual Studio Code для всех глав, кроме двух последних. В главе 20 вам необходимо задействовать Visual Studio 2019, работающую в операционной системе Windows 10, а в главе 21 — Visual Studio 2019 для Mac.

Знакомство с промежуточным языком

Компилятор C# (под названием Roslyn), используемый инструментом командной строки dotnet, конвертирует ваш исходный код на языке C# в код на промежуточном языке (Intermediate Language, IL) и сохраняет его в сборке (DLL- или EXE-файле). Операторы кода на промежуточном языке (IL) похожи на код ассемблера, только выполняются с помощью виртуальной машины CoreCLR в .NET Core.

В процессе работы код IL загружается CoreCLR из сборки, динамически (Just-in-Time, JIT) компилируется компилятором в собственные инструкции CPU, а затем исполняется с помощью CPU на вашем компьютере. Преимущество такого трехэтапного процесса компиляции заключается в том, что Microsoft может создавать CLR не только для Windows, но и для Linux и macOS. Один и тот же код IL запускается в любой среде благодаря второму процессу компиляции, который генерирует код для конкретной операционной системы и набора команд CPU.

Независимо от того, на каком языке написан исходный код, например C#, Visual Basic или F#, все приложения .NET используют код IL для своих инструкций, хранящихся в сборке. Корпорация Microsoft и другие предоставляют инструменты дизассемблера, которые могут открывать сборку и раскрывать данный код IL, например расширение декомпилятора ILSpy .NET.

Обзор .NET Native

Технология .NET Native — еще одна инициатива в области .NET. С ее помощью код на языке C# компилируется в машинный код методом компиляции перед исполнением (ahead-of-time, AoT) вместо общеязыковой исполняющей среды, использующейся для динамической компиляции (just-in-time, JIT) в промежуточный язык IL, и только потом в машинный язык.

Технология .NET Native улучшает скорость выполнения приложений и уменьшает объемы выделяемой приложению памяти за счет генерации нативного кода во время сборки и последующего его развертывания вместо промежуточного кода.

Более подробную информацию о .NET Native можно найти на сайте github.com/dotnet/corert/blob/master/Documentation/intro-to-corert.md.

Сравнение технологий .NET

В табл. 1.5 перечисляются и сравниваются технологии .NET.

Таблица 1.5

Технология

Возможности

Хостовая ОС

.NET Core

Современный набор функций, полная поддержка C# 8.0, портирование существующих и создание новых приложений для Windows и веб-приложений и сервисов

Windows, macOS, Linux

.NET Framework

Устаревший набор функций, ограниченная поддержка C# 8.0, поддержка существующих приложений

Только Windows

Xamarin

Только для мобильных устройств

Android, iOS, macOS

Корпорация Microsoft обещает, что к концу 2020 года вместо трех будет одна платформа .NET. Планируется, что в .NET 5.0 будет одна библиотека BCL и две среды выполнения: одна оптимизирована для серверных или офисных сценариев, таких как сайты и офисные приложения Windows, основанные на среде выполнения .NET Core, а другая — для мобильных приложений на основе среды Xamarin.

Разработка консольных приложений с использованием Visual Studio Code

Цель данного раздела — разработка консольных приложений с помощью среды разработки Visual Studio Code. Инструкции и снимки экрана в этом разделе относятся к операционной системе macOS, но те же действия будут работать с Visual Studio Code в операционных системах Windows и Linux.

Основными отличиями послужат собственные действия командной строки, такие как удаление файла: как команда, так и путь, вероятно, будут разными для операционных систем Windows или macOS и Linux. Однако инструмент командной строки dotnet будет одинаковым на всех платформах.

Написание кода с помощью Visual Studio Code

Начнем писать код!

1. Запустите среду разработки Visual Studio Code.

2. В операционной системе macOS выберите File—>Open (Файл—>Открыть) или нажмите сочетание клавиш Cmd+O. В операционной системе Windows выберите File—>Open Folder (Файл—>Открыть папку) или нажмите сочетание клавиш Ctrl+K Ctrl+O. В обеих операционных системах вы можете нажать кнопку Open Folder (Открыть папку) на панели EXPLORER (Проводник) или щелкнуть кнопкой мыши на ссылке Open Folder (Открыть папку) на странице приветствия, как показано на рис. 1.2.

Рис. 1.2

3. В открывшемся диалоговом окне перейдите к своей пользовательской папке в macOS (моя папка называется markjprice), к папке Documents в операционной системе Windows или к любому каталогу или диску, на котором хотите сохранить свои проекты.

4. Нажмите кнопку New Folder (Новая папка) и назовите папку Code.

5. В папке Code создайте подпапку Chapter01.

6. В папке Chapter01 создайте подпапку HelloCS.

7. Выберите папку HelloCS и нажмите кнопку Open (Открыть) в системе macOS или Select Folder (Выбрать папку) в системе Windows.

8. Выберите View—>Terminal (Вид—>Терминал) или в системе macOS нажмите сочетание клавиш Ctrl+` (обратный апостроф) и в системе Windows нажмите Ctrl+' (одинарная кавычка). В операционной системе Windows вводит в заблуждение комбинация клавиш Ctrl+` (обратный апостроф), которая разделяет текущее окно!

9. На панели TERMINAL (Терминал) введите следующую команду:

dotnet new console

10. Вы увидите, что инструмент командной строки dotnet создает в текущей папке проект ConsoleApplication, а на панели EXPLORER (Проводник) отображаются два созданных файла, HelloCS.proj и Program.cs, как показано на рис. 1.3.

Рис. 1.3

11. На панели EXPLORER (Проводник) выберите файл Program.cs, чтобы открыть его в окне редактора. При первом выполнении Visual Studio Code, возможно, придется загружать и устанавливать зависимые объекты C#, такие как OmniSharp, Razor Language Server и отладчик .NET Core, если это не было сделано при установке расширения C#.

12. Если вы видите предупреждение о том, что необходимые ресурсы отсутствуют, то нажмите кнопку Yes (Да), как показано на рис. 1.4.

Рис. 1.4

13. Через несколько секунд на панели EXPLORER (Проводник) появится папка .vscode. Более подробно о ней вы узнаете в главе 4.

14. В файле Program.cs измените строку 9 так, чтобы текст, который выводится в консоль, сообщал: Hello, C#!.

15. Выберите File—>Auto Save (Файл—>Автосохранение). Она избавит вас от необходимости каждый раз вспоминать о сохранении перед повторным обновлением приложения.

Компиляция и запуск кода с использованием инструмента командной строки dotnet

Следующая задача — это компиляция и запуск кода.

1. Выберите View—>Terminal (Вид—>Терминал) и введите следующую команду:

dotnet run

2. На панели TERMINAL (Терминал) отобразится результат запуска вашего приложения, как показано на рис. 1.5.

Рис. 1.5

Скачивание кода решения из репозитория GitHub

Git — широкоиспользуемая система управления исходным кодом. GitHub — компания, веб-сайт и настольное приложение, которое облегчает работу с Git. Корпорация Microsoft недавно приобрела GitHub, поэтому интеграция GitHub с инструментами Microsoft будет усиливаться.

Я использовал веб-сервис GitHub для хранения ответов ко всем упражнениям, приведенным в конце каждой главы этой книги. Получить к ним доступ можно по ссылке github.com/markjprice/cs8dotnetcore3.

Использование системы Git в Visual Studio Code

Среда разработки Visual Studio Code имеет встроенную поддержку системы Git, но требует установки Git в используемой операционной системе, поэтому вам необходимо установить Git 2.0 или более позднюю версию, прежде чем получить доступ к этим функциям. Вы можете скачать дистрибутив Git по ссылке git-scm.com/download.

Если хотите использовать графический интерфейс, то можете скачать GitHub Desktop по ссылке desktop.github.com.

Клонирование репозитория с примерами из книги

Клонируем репозиторий с примерами из книги.

1. Создайте папку Repos в пользовательской папке, или папке Documents, или там, где вы хотите хранить свои репозитории Git.

2. В программе Visual Studio Code откройте папку Repos.

3. Выберите View—>Terminal (Вид—>Терминал) и введите следующую команду:

git clone https://github.com/markjprice/cs8dotnetcore3.git

4. Клонирование всех решений для всех глав займет примерно минуту, как показано на рис. 1.6.

Дополнительную информацию об управлении версиями исходного кода с помощью Visual Studio Code можно получить на сайте code.visualstu­dio.com/Docs/editor/versioncontrol.

Рис. 1.6

Поиск справочной информации

Этот раздел главы посвящен тому, как найти достоверную информацию о программировании в Интернете.

Знакомство с Microsoft Docs

Главным ресурсом, позволяющим получить справочные сведения об инструментах и платформах Microsoft, ранее был Microsoft Developer Network (MSDN). Теперь это Microsoft Docs, и вы можете найти его по адресу docs.microsoft.com/ru-ru/.

Получение справки для инструмента dotnet

В командной строке вы можете запросить справочную информацию об инструмен­те dotnet.

1. Чтобы открыть в окне браузера официальную документацию для команды dotnetnew, введите в командной строке или на панели TERMINAL (Терминал) программы Visual Studio Code следующую команду:

dotnet help new

2. Чтобы вывести справочную информацию в командной строке, используйте ключ -h или --help, как показано ниже:

dotnet new console -h

3. Вы увидите следующий вывод (фрагмент):

Console Application (C#)

Author: Microsoft

Description: A project for creating a command-line application that can run on .NET Core on Windows, Linux and macOS

Options:

  --langVersion  Sets langVersion in the created project file

                 text - Optional

  --no-restore   If specified, skips the automatic restore of the project on create.

                 bool - Optional

                 Default: false / (*) true

* Indicates the value used if the switch is provided without a value.

Получение определений типов и их элементов

Одна из наиболее полезных клавиш в Visual Studio Code — F12 для перехода к определению. Нажав эту клавишу, вы увидите, как выглядит общедоступное определение типа или элемента, полученное при чтении метаданных в скомпилированной сборке. Некоторые инструменты, такие как ILSpy .NET Decompiler, могут даже выполнить реверс-инжиниринг метаданных и кода IL в C#.

1. В программе Visual Studio Code откройте папку HelloCS.

2. В файле Program.cs в методе Main введите следующий код, чтобы объявить целочисленную переменную z:

int z;

Щелкните на слове int, а затем нажмите клавишу F12 или щелкните правой кнопкой мыши и выберите пункт Go To Definition (Перейти к определению) в контекстном меню. В появившемся окне вы можете увидеть определение типа данных int, как показано на рис. 1.7.

Рис. 1.7

Вы можете видеть, что int:

• определяется с помощью ключевого слова struct;

• находится в сборке System.Runtime;

• находится в пространстве имен System;

• называется Int32;

• является псевдонимом для типа System.Int32;

• реализует интерфейсы, такие как IComparable;

• имеет постоянные значения для своих максимальных и минимальных значений;

• имеет такие методы, как Parse.

При попытке использовать команду Go To Definition (Перейти к определению) иногда появляется сообщение об ошибке No definition found (Определение не найдено). Это связано с тем, что расширение C# «не знает» о текущем проекте. Выберите View—>Command Palette (Вид—>Палитра команд), найдите пункт OmniSharp:Select Project и выберите его, а затем и правильный проект, с которым вы хотите работать.

В настоящее время функция Go To Definition (Перейти к определению)не очень полезна для вас, поскольку вы еще не знаете, что означают эти термины.

К концу первой части книги, в которой рассказывается о C#, вы будете знать достаточно, чтобы эта функция стала полезной.

3. Прокрутите окно редактора кода вниз, чтобы найти метод Parse с параметром string, начинающимся со строки 86, как показано на рис. 1.8.

Рис. 1.8

В комментарии вы увидите, что Microsoft задокументировала возникшие при вызове этого метода исключения, включая ArgumentNullException, FormatException и OverflowException. Теперь мы знаем, что нам необходимо обернуть вызов данного метода в оператор try и какие исключения необходимо перехватить.

Я надеюсь, вам уже не терпится узнать, что все это значит! Наберитесь терпения! Вы почти дошли до конца главы и уже в следующей главе погрузитесь в детали языка C#. Но сначала посмотрим, куда еще вы можете обратиться за получением справочной информации.

Ищем ответы на Stack Overflow

StackOverflow — самый популярный сторонний сайт, на котором можно найти ответы на сложные вопросы по программированию. Он настолько популярен, что поисковые системы, такие как DuckDuckGo, поддерживают специальный режим поиска на этом сайте.

1. Запустите браузер.

2. Перейдите на сайт DuckDuckGo.com и введите такой запрос:

!so securestring

Результаты отображены на рис. 1.9.

Рис. 1.9

Поисковая система Google

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

1. Перейдите в Google.

2. Например, если вы ищете в Google информацию о garbagecollection с помощью обычного запроса, то увидите ссылку на термин в «Википедии», а также список коммунальных служб, как показано на рис. 1.10.

Рис. 1.10

3. Повысить эффективность поиска можно, ограничив его полезным сайтом, например StackOverflow, и удалив языки, которые могут быть неактуальны в момент поиска, такие как C++, Rust и Python, или добавив C# и .NET, как показано в следующем поисковом запросе:

garbage collection site:stackoverflow.com +C# -Java

Подписка на официальный блог .NET

Отличный блог, на который рекомендую подписаться, чтобы быть в курсе новостей .NET. Его ведут группы разработчиков .NET. Доступен по адресу blogs.msdn.micro­soft.com/dotnet/.

Практические задания

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

1.1. Проверочные вопросы

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

1. Почему на платформе .NET Core для разработки приложений программисты могут использовать разные языки, например C# и F#?

2. Какие команды нужно ввести для создания консольного приложения?

3. Какие команды нужно ввести в окне консоли для сборки и запуска исходного кода на языке C#?

4. Какое сочетание клавиш используется для открытия в программе Visual Studio Code панели TERMINAL (Терминал)?

5. Среда разработки Visual Studio 2019 превосходит Visual Studio Code?

6. Платформа .NET Core лучше .NET Framework?

7. Что такое .NET Standard и почему он так важен?

8. Как называется метод точки входа консольного приложения .NET и как его объявить?

9. Как найти справочную информацию по ключевому слову в C#?

10. Как найти решения общих проблем программирования?

1.2. Практическое задание

Вам не нужно устанавливать среду разработки Visual Studio Code, Visual Studio 2019 или Visual Studio 2019 для Mac, чтобы практиковаться в программировании на языке C#. Посетите сайт .NET Fiddle — dotnetfiddle.net — и начните кодирование в онлайн-режиме.

Корпорация Microsoft также работает над созданием онлайн-версии Visual Studio Code, которая может работать в любом браузере, однако в настоящее время она доступна только в деморежиме. После релиза версия будет доступна всем по следующей ссылке: online.visualstudio.com.

1.3. Дополнительные ресурсы

Посетите следующие сайты, чтобы получить дополнительную информацию по темам, рассмотренным в этой главе:

• знакомство с .NET Core: dotnet.github.io;

• инструменты интерфейса командной строки (CLI) .NET Core: aka.ms/dotnet-cli-docs;

• CoreCLR, общеязыковая исполняющая среда .NET Core: github.com/dotnet/coreclr/;

• путеводитель по .NET Core: github.com/dotnet/core/blob/master/roadmap.md;

• часто задаваемые вопросы о .NET Standard: github.com/dotnet/standard/blob/master/docs/faq.md;

• Stack Overflow: stackoverflow.com;

• расширенный поиск Google: www.google.com/advanced_search;

• виртуальная академия Microsoft: mva.microsoft.com;

• Microsoft Channel 9: видеоуроки для разработчиков: channel9.msdn.com.

Резюме

В этой главе мы настроили среду разработки, обсудили различия между .NET Framework, .NET Core, Xamarin и .NET Standard, вы научились пользоваться средами разработки Visual Studio Code и .NET Core SDK для создания простого консольного приложения. Кроме того, вы узнали, как загрузить код решения из данной книги из репозитория GitHub и, что наиболее важно, научились находить справочную информацию.

В следующей главе вы научитесь изъясняться на языке C#.