Изучите C# за 7 дней
В этой книге используется уникальный подход к обучению C# абсолютных новичков. Вы изучите основы языка за семь дней. В книге используется практический подход к объяснению важных концепций, на которых строится фундамент языка программирования C#.
Книга начинается с обучения базовым основам на реальных практических примерах и знакомит вас с программированием на C#. Мы рассказываем о некоторых важных особенностях и нюансах языка в практической манере, помогая вам быстро усвоить концепции.
Позже вы изучите концепции объектно-ориентированного программирования (ООП) на реальном примере. Затем мы погрузимся в концепции продвинутого уровня, такие как дженерики и коллекции, и вы познакомитесь с объектами и LINQ. В конце вы создадите приложение, которое охватывает все концепции, объясненные в книге.
К концу этой книги у вас будут навыки нового уровня и хорошее знание основ C#.
Глава 1. День 01 – Обзор .NET Framework
Это первый день нашего семидневного путешествия по изучению C#. Сегодня мы начнем со знакомства с новым миром программирования и обсудим все основные понятия, необходимые для изучения этого языка программирования. Мы также обсудим .NET Framework и фреймворк .NET Core, рассмотрев важные концепции фреймворка. Мы также получим базовое понимание управляемого и неуправляемого кода. В конце дня мы начнем с простой программы Hello World.
Сегодня мы изучим следующие темы:
- Что такое программирование?
- Что такое .NET Core?
- Что такое стандарт .NET?
Что такое программирование?
Могут существовать различные определения или различные мысли для определения слова программирование. На мой взгляд, программирование – это написание решения таким образом, чтобы машина (компьютер) могла его понять, чтобы изобразить решение, которое вы можете определить вручную.
Например, допустим, у вас есть постановка задачи: найти общее количество гласных букв из этой книги . Если вы хотите найти решение этой задачи, что вы будете делать?
Вероятные шаги для решения этой задачи следующие:
- Во-первых, возьмите нужную книгу. Я предполагаю, что вы знаете гласные ( a , e , i , o , и u ).
- Сколько гласных вы нашли в книге? –0 (ноль).
- Откройте текущую страницу (изначально наша текущая страница – 1) и начните читать, чтобы найти гласные буквы.
- Если буква совпадает с a , e , i , o , или u (обратите внимание, что регистр не имеет значения, поэтому буквы могут быть A , E , I , O , и U ), то увеличьте количество гласных на одну.
- Закончена ли текущая страница?
- Если ответ на шаг 5 положительный, проверьте, последняя ли это страница книги:
- Если да, то у нас в руках общее количество гласных, которое равно n, где n – общее количество гласных, найденных в текущей главе. Перейдите к шагу 8 для получения результата.
- Если это не последняя глава, перейдите к следующей главе, прибавив 1 к номеру текущей главы. Таким образом, мы должны перейти к 1 + 1 = 2 (глава 2).
Предыдущие шаги только что описали, как мы достигли идеального решения для нашей постановки задачи. Эти шаги показали, как мы вручную нашли ответ на нашу проблему подсчета всех гласных букв в главах книги.
В мире программирования такие шаги известны как алгоритм.
Алгоритм – это не что иное, как процесс решения проблемы путем определения набора правил.
Когда мы записываем предыдущий шаг(ы)/алгоритм таким образом, что машина/компьютер сможет следовать инструкциям, это называется программированием. Эти инструкции должны быть написаны на языке, понятном машине/компьютеру, и именно он называется языком программирования.
В этой книге мы будем использовать C# 7.0 в качестве языка программирования и . NET Core в качестве фреймворка.
Что такое .NET?
Хотя мы ссылаемся на .NET (произносится как dot NET), это .NET Full, поскольку у нас есть .NET Core, и мы используем .NET Core в примерах нашей книги с C# 7.0 в качестве языка. Прежде чем двигаться дальше, вы должны знать о .NET, поскольку вместе с .NET Core существует .NET Standard, то есть API-серверы как для .NET Framework, так и для .NET Core. Таким образом, если вы создали проект с использованием .NET Standard, он будет действителен как для .NET Framework, так и для .NET Core.
.NET – это комбинация языков, среды выполнения и библиотек, с помощью которых мы можем разрабатывать управляемые программы/приложения. Программное обеспечение, написанное на .NET, является управляемым или находится в управляемой среде. Чтобы понять, что такое управляемая среда, нам нужно разобраться в том, как двоичные исполняемые файлы становятся доступными для операционных систем. Это включает в себя три более широких этапа:
- Написание кода (исходного кода).
- Компилятор компилирует исходный код.
- Операционная система немедленно выполняет двоичный исполняемый файл:
Более широкие этапы – как появляется двоичный исполняемый файл?
Предыдущий процесс – это стандартный процесс, изображающий, как компиляторы компилируют исходный код и создают исполняемые двоичные файлы, но в случае .NET компилятор (компилятор C# для нашего кода) не предоставляет непосредственно двоичный исполняемый файл; он предоставляет сборку, и эта сборка состоит из метаданных и кода промежуточного языка, также известного как Microsoft Intermediate Language ( MSIL ) или Intermediate Language ( IL ). Этот MSIL является языком высокого уровня и не может быть понят машиной напрямую, поскольку MSIL не является машинным кодом или байт-кодом. Для правильного выполнения он должен быть интерпретирован. Эта интерпретация с MSIL или IL на машинный язык происходит с помощью JIT. Другими словами, JIT компилирует MSIL, IL в машинный язык, также называемый родным кодом. Более подробную информацию можно найти на сайте https://msdn.microsoft.com/en-us/library/ht8ecch6(v=vs.90).aspx.
Для 64-битной компиляции Microsoft анонсировала RyuJIT (https://blogs.msdn.microsoft.com/dotnet/2014/02/27/ryujit-ctp2-getting-ready-for-prime-time/). В следующих версиях 32-битная компиляция также будет осуществляться RyuJIT (https://github.com/dotnet/announcements/issues/10). После этого мы сможем иметь единую кодовую базу для обоих CoreCLR.
Промежуточный язык – это высокоуровневый компонентный язык ассемблера.
В нашей семидневной программе обучения мы не будем концентрироваться на фреймворке, а больше сосредоточимся на языке C# с использованием .NET Core. В следующих разделах мы обсудим важные моменты .NET Core таким образом, чтобы, работая с программой на C#, мы понимали, как наша программа общается с op
Что такое .NET Core?
Кроссплатформенность: В настоящее время .NET Core можно запускать на Windows, Linux и macOS; в будущем их может стать больше. Более подробную информацию см. в дорожной карте (https://github.com/dotnet/core/blob/master/roadmap.md).
Наличие удобных инструментов командной строки : Для выполнения упражнений с .NET Core можно использовать инструменты командной строки. Подробнее см. раздел Инструменты CLI на https://docs.microsoft.com/en-us/dotnet/articles/core/tools/index.
Совместимость: Благодаря использованию стандартной библиотеки .NET, .NET Core совместим с .NET Frameworks, Xamarin и Mono.
Открытый исходный код : платформа .NET Core выпущена под лицензией MIT License и является проектом .NET Foundation (https://dotnetfoundation.org/).
- Что представляет собой .NET Core?
- .NET Core – это сочетание coreclr , corefx , cli и roslyn . Вот основные компоненты состава .NET Core.
- Coreclr : Это среда выполнения .NET, обеспечивающая загрузку сборок, сборщик мусора и многое другое. Более подробную информацию о coreclr вы можете найти на сайте https://github.com/dotnet/coreclr.
- Corefx : Это библиотека фреймворка; более подробную информацию о corefx можно найти на сайте https://github.com/dotnet/corefx.
Cli : Это не что иное, как инструмент интерфейса командной строки, а roslyn – компилятор языка (в нашем случае языка C#). Более подробную информацию о cli (https://github.com/dotnet/cli) и Roslyn можно найти на https://github.com/dotnet/roslyn.
Что такое .NET Standard?
- Стандарт .NET – это набор API, который решает проблемы совместного использования кода при написании кросс-платформенных приложений. В настоящее время Microsoft работает над .NET Standard 2.0, чтобы сделать его более упорядоченным, и эти стандарты будут реализованы всеми, то есть .NET Framework, .NET Core и Xamarin. Используя .NET Standard (то есть набор API), вы гарантируете, что ваша программа и библиотека классов будут доступны для всех целевых .NET Frameworks и .NET Core. Другими словами, .NET Standard заменит Portable Class Libraries (PCL). Для получения дополнительной информации см. https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/.
- Репозиторий .NET Standard 2.0 доступен по адресу https://github.com/dotnet/standard.
- До сих пор вы имели представление о .NET Core и некоторых других вещах, которые помогают создавать кроссплатформенные приложения. В следующих разделах мы подготовим среду, чтобы начать изучение языка C# с помощью Visual Studio 2017 (предпочтительно community edition).
Доступные IDE и редакторы для C#
Интегрированная среда разработки (IDE) – это не что иное, как программное обеспечение, облегчающее разработку приложений. С другой стороны, редакторы в основном предназначены для добавления/обновления предопределенного или нового контента. Когда мы говорим о редакторе C#, мы имеем в виду редактор, который помогает писать программы на C#. Некоторые редакторы поставляются с большим количеством дополнений или плагинов и могут компилировать или запускать программы.
Мы будем использовать Visual Studio 2017 в качестве предпочтительной C# IDE; однако существует еще несколько C# IDE
JetBrain Rider: Это кроссплатформенная IDE от JetBrains. Для получения дополнительной информации посетите сайт .
Zeus IDE: Это IDE, разработанная для платформы Windows. Вы можете начать использовать Zeus с сайта .
Текстовый редактор: Этот способ можно использовать без установки; просто используйте текстовый редактор по своему выбору. Я использую Notepad++ ) и C ommand Line Interface (CLI) для создания кода. Обратитесь к https://docs.microsoft.com/en-us/dotnet/articles/core/tools/, чтобы узнать больше о том, как начать работу с CLI.
Возможно, есть и другие альтернативные IDE и редакторы, но они не так важны для нас.
- Настройка окружения
- В этом разделе мы рассмотрим шаг за шагом, как инициировать установку Visual Studio 2017 (предпочтительно community edition) на Windows 10:
- Перейдите по адресу (вы также можете получить преимущества Dev Essentials по адресу .
- Скачайте Visual Studio Community ):
- Запустите установку Visual Studio.
В разделе Workloads выберите опции, которые вы хотите установить. Для нашей книги нам нужны .NET desktop development и .NET Core:
Нажмите на Install, чтобы начать установку:
После завершения установки нажмите Launch.
- Зарегистрируйтесь в Visual Studio, используя свой Live ID.
- Выберите Visual C# в качестве параметра разработки.
- Вы увидите стартовую страницу следующим образом:
- Мы готовы приступить к первому шагу.
- Практические упражнения
- Ответьте на следующие вопросы, охватывая понятия сегодняшнего урока.
- Что такое программирование? Запишите алгоритм для определения количества гласных из всех страниц книги “Выучить C# за 7 дней”.
- Что такое .NET Core и .NET Standard?
- Что делает .NET Core эволюционным программным обеспечением?
Вспоминая день 01
Сегодня мы ознакомили вас с некоторыми важными понятиями .NET Core и .NET Standard. Вы узнали, что такое программы и алгоритмы в мире программирования.
Гаурав Арораа – серийный предприниматель и наставник стартапов. Он получил степень магистра философии в области компьютерных наук. Является обладателем награды Microsoft MVP. Является пожизненным членом Компьютерного общества Индии (CSI), консультантом и старшим наставником в IndiaMentor, сертифицирован как тренер/коуч по Scrum, сертифицирован по ITIL-F, сертифицирован по PRINCE-F и PRINCE-P. Он является разработчиком открытых исходных кодов и участником сообщества Microsoft TechNet. Недавно Гаурав был удостоен награды “Икона года за выдающиеся достижения в наставничестве технологических стартапов” за 2018-19 годы от Radio City, инициативы Jagran, за его выдающуюся работу в течение 22-летней карьеры в индустрии в области технологического наставничества.
- Отчаянно нуждается в редактировании – что вообще означает этот абзац? “. Прежде чем двигаться дальше, вы должны знать о .NET, потому что вместе с .NET Core существует .NET Standard, то есть API-серверы как для .NET Framework, так и для .NET Core. Таким образом, если вы создали проект с использованием .NET Sta