О технических рецензентах
Аарон Стенли Кинг — опытный разработчик, который трудился в сфере цифрового маркетинга и помогал строить платформы SaaS на протяжении более 20 лет. Он считает программирование не только своей профессией, но и хобби, ставшим частью жизни. Аарон полагает, что компьютеры и технологии помогают вести ему более полноценную жизнь и максимально эффективно использовать свое время. Ему нравится рассказывать в группах пользователей и на конференциях о своем опыте и умениях. Аарон также вносит вклад в технологию открытого исходного кода. Он ведет блог на www.aaronstanleyking.com, и его можно отслеживать в Триггере (@trendoid).
Брендон Робертс десять лет проработал помощником шерифа, и это привело к тому, что он стал детективом, занимающимся компьютерно-технической экспертизой. В данной роли он обнаружил, что ему нравится работать в сфере технологий. Получив травму при исполнении служебных обязанностей, Брендон решил взять инвалидность и заняться изучением разработки ПО. Он уже пять лет как профессиональный разработчик.
Эрик Смит — консультант в компании Strategic Data Systems (Шаронвилл, Огайо), работающий в команде проектов .NET. В 2017 году он окончил учебный курс по .NET от MAX Technical Training, а до того в 2014 году получил степень магистра по германистике в Университете Цинциннати. Эрик занимается разработкой ПО, начиная с середины 1990-х годов, и до сих пор любит писать код непосредственно для оборудования, когда появляется такая возможность. Помимо компьютеров большую часть времени он проводит за чтением, работой в своей механической мастерской и велоспортом на выносливость.
Благодарности
Я хочу поблагодарить издательство Apress и всю команду, вовлеченную в работу над данной книгой. Как я и ожидал в отношении всех книг, издаваемых в Apress, меня впечатлил тот уровень поддержки, который мы получали в процессе написания. Я благодарю вас, читатель, и надеюсь, что наша книга окажется полезной в вашей карьере, как было в моем случае. Наконец, я не сумел бы сделать эту работу без моей семьи и поддержки, которую получал от них. Без вашего понимания того, сколько времени занимает написание и вычитывание, мне никогда не удалось бы завершить работу! Люблю вас всех!
Филипп Джепикс
Введение
Авторы и читатели — одна команда
Авторам книг по технологиям приходится писать для очень требовательной группы людей (по вполне понятным причинам). Вам известно, что построение программных решений с применением любой платформы или языка исключительно сложно и специфично для отдела, компании, клиентской базы и поставленной задачи. Возможно, вы работаете в индустрии электронных публикаций, разрабатываете системы для правительства или местных органов власти либо сотрудничаете с NASA или какой-то военной отраслью. Вместе мы трудимся в нескольких отраслях, включая разработку обучающего ПО для детей (Oregon Trail/Amazon Trail), разнообразных производственных систем и проектов в медицинской и финансовой сферах. Написанный вами код на месте вашего трудоустройства почти на 100% будет иметь мало общего с кодом, который мы создавали на протяжении многих лет.
По указанной причине в книге мы намеренно решили избегать демонстрации примеров кода, свойственного какой-то конкретной отрасли или направлению программирования. Таким образом, мы объясняем язык С#, объектно-ориентированное программирование, .NET Runtime и библиотеки базовых классов .NET Core с использованием примеров, не привязанных к отрасли. Вместо того чтобы заставлять каждый пример наполнять сетку данными, подчитывать фонд заработной платы или выполнять другую задачу, специфичную для предметной области, мы придерживаемся темы, близкой каждому из нас: автомобили (с добавлением умеренного количества геометрических структур и систем расчета заработной платы для сотрудников). И вот тут наступает ваш черед.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})
Наша работа заключается в как можно лучшем объяснении языка программирования C# и основных аспектов платформы .NEXT 5. Мы также будем делать все возможное для того, чтобы снарядить вас инструментами и стратегиями, которые необходимы для продолжения обучения после завершения работы с данной книгой.
Ваша работа предусматривает усвоение этой информации и ее применение к решению своих задач программирования. Мы полностью отдаем себе отчет, что ваши проекты с высокой вероятностью не будут связаны с автомобилями и их дружественными именами, но именно в том и состоит суть прикладных знаний.
Мы уверены, что после освоения тем и концепций, представленных в настоящей книге, вы сможете успешно строить решения .NET 5, которые соответствуют вашей конкретной среде программирования.
Краткий обзор книги
Книга логически разделена на девять частей, каждая из которых содержит связанные друг с другом главы. Ниже приведено краткое содержание частей и глав.
Часть I. Язык программирования C# и платформа .NET 5
Глава 1. Введение в C# и . NET (Core) 5
Первая глава выступает в качестве основы для всего остального материала. Ее основная цель в том, чтобы представить вам набор строительных блоков .NET Core, таких как исполняющая среда .NET Runtime, общая система типов CTS, общеязыковая спецификация CLS и библиотеки базовых классов (BCL). Здесь вы впервые взглянете на язык программирования С#, пространства имен и формат сборок .NET 5.
Глава 2. Создание приложений на языке C#
Целью этой главы является введение в процесс компиляции файлов исходного кода С#. После установки .NET 5 SDK и исполняющей среды вы узнаете о совершенно бесплатном (но полнофункциональном) продукте Visual Studio Community, а также об исключительно популярном (и тоже бесплатном) продукте Visual Studio Code. Вы научитесь создавать, запускать и отлаживать приложения .NET 5 на языке C# с использованием Visual Studio и Visual Studio Code.
Часть II. Основы программирования на C#
Темы, представленные в этой части книги, очень важны, поскольку они связаны с разработкой ПО .NET 5 любого типа (например, веб-приложений, настольных приложений с графическим пользовательским интерфейсом, библиотек кода, служб и т.д.). Здесь вы узнаете о фундаментальных типах данных .NET 5, освоите манипулирование текстом и ознакомитесь с ролью модификаторов параметров C# (включая необязательные и именованные аргументы ).
Глава 3. Главные конструкции программирования на С#; часть 1
В этой главе начинается формальное исследование языка программирования С#. Здесь вы узнаете о роли метода Main(), операторах верхнего уровня (нововведение в версии C# 9.0), а также о многочисленных деталях, касающихся внутренних типов данных платформы .NET 5 и объявления переменных. Вы будете манипулировать текстовыми данными с применением типов System.String и System.Text.StringBuilder. Кроме того, вы исследуете итерационные конструкции и конструкции принятия решений, сопоставление с образцом, сужающие и расширяющие операции и ключевое слово unchecked.
Глава 4. Главные конструкции программирования на С#; часть 2