Goal abandoned
The author does not write in the goal 2 years 6 months 10 days
Выучить C# и освоить web программирование на asp.net core
Кручусь в IT мире уже порядка 7-8 лет. Но за данный приличный срок выше простых скриптов и слабых десктоп приложений не поднялся.
За этот период я начинал и бросал кучу технологий C#, C++, Python, web stack (css+html+JS), React
Прыгая от технологии к технологии конечно же в голове получится лютая каша. особенно, когда нет цели и какого то направления в работе.
Спустя такой приличный срок я собрался с мыслями и твёрдо решил освоить fullstack web направление в виде asp.net core + React.
Конечно же frontend на react - это вторая цель.
Поставив себе цель я решил плотно заняться определенной технологией и её направлением.
Как говорится: вижу цель - не вижу препятствий!
Goal Accomplishment Criteria
целевое Web-приложение написано и запущено используя технологию asp.net core
-
Основы программирования на C#
- Переменные и константы
- Литералы
- Типы данных
- Консольный ввод-вывод
- Арифметические операции
- Поразрядные операции
- Операции присваивания
- Преобразования базовых типов данных
- Условные выражения
- Конструкция if..else и тернарная операция
- Циклы
- Массивы
- Задачи с массивами
- Методы
- Параметры методов
- Возвращение значения и оператор return
- Передача параметров по ссылке и значению. Выходные параметры
- Массив параметров и ключевое слово params
- Рекурсивные функции
- Локальные функции
- Конструкция switch
- Перечисления enum
-
Классы, структуры и пространства имен
- Классы и объекты
- Конструкторы, инициализаторы и деконструкторы
- Класс Program и метод Main. Программы верхнего уровня
- Структуры
- Типы значений и ссылочные типы
- Область видимости (контекст) переменных
- Пространства имен
- Глобальные пространства имен
- Подключение пространств имен по умолчанию
- Создание библиотеки классов
- Модификаторы доступа
- Свойства
- Перегрузка методов
- Статические члены и модификатор static
- Поля и структуры для чтения
- Null и ссылочные типы
- Null и значимые типы
- Проверка на null, операторы ?. и ??
- Псевдонимы типов и статический импорт
-
Объектно-ориентированное программирование
- Наследование
- Преобразование типов
- Виртуальные методы и свойства
- Скрытие методов и свойств
- Различие переопределения и скрытия методов
- Абстрактные классы
- Класс System.Object и его методы
- Обобщенные типы
- Ограничения обобщений
- Наследование обобщенных типов
-
Обработка исключений
- Конструкция try..catch..finally
- Блок catch и фильтры исключений
- Типы исключений. Класс Exception
- Генерация исключения и оператор throw
- Создание классов исключений
- Поиск блока catch при обработке исключений
-
Делегаты, события и лямбды
- Делегаты
- Применение делегатов
- Анонимные методы
- Лямбды
- События
- Ковариантность и контравариантность делегатов
- Делегаты Action, Predicate и Func
- Замыкания
-
Интерфейсы
- Определение интерфейсов
- Применение интерфейсов
- Явная реализация интерфейсов
- Реализация интерфейсов в базовых и производных классах
- Наследование интерфейсов
- Интерфейсы в обобщениях
- Копирование объектов. Интерфейс ICloneable
- Сортировка объектов. Интерфейс IComparable
- Ковариантность и контравариантность обобщенных интерфейсов
-
Дополнительные возможности ООП в C#
- Определение операторов
- Перегрузка операций преобразования типов
- Индексаторы
- Переменные-ссылки и возвращение ссылки
- Методы расширения
- Частичные классы и методы
- Анонимные типы
- Кортежи
- Records
-
Паттерны
- Паттерн типов
- Паттерн свойств
- Паттерны кортежей
- Позиционный паттерн
- Реляционный и логический паттерны
- Паттерны списков
-
Коллекции
- Список List<T>
- Двухсвязный список LinkedList<T>
- Очередь Queue<T>
- Стек Stack<T>
- Словарь Dictionary<T, V>
- Класс ObservableCollection
- Интерфейсы IEnumerable и IEnumerator
- Итераторы и оператор yield
-
Работа со строками
- Строки и класс System.String
- Операции со строками
- Форматирование и интерполяция строк
- Класс StringBuilder
- Регулярные выражения
-
Дополнительные классы и структуры .NET
- Отложенная инициализация и тип Lazy
- Математические вычисления и класс Math
- Преобразование типов и класс Convert
- Класс Array и массивы
- Span
- Индексы и диапазоны
-
Многопоточность
- Введение в многопоточность. Класс Thread
- Создание потоков. Делегат ThreadStart
- Потоки с параметрами и ParameterizedThreadStart
- Синхронизация потоков
- Мониторы
- Класс AutoResetEvent
- Мьютексы
- Семафоры
-
Параллельное программирование и библиотека TPL
- Задачи и класс Task
- Работа с классом Task
- Задачи продолжения
- Класс Parallel
- Отмена задач и параллельных операций. CancellationToken
-
Aсинхронное программирование. Task-based Asynchronous Pattern
- Асинхронные методы, async и await
- Возвращение результата из асинхронного метода
- Последовательное и параллельное выполнение. Task.WhenAll и Task.WhenAny
- Обработка ошибок в асинхронных методах
- Асинхронные стримы
-
LINQ
- Основы LINQ
- Проекция данных
- Фильтрация коллекции
- Сортировка
- Объединение, пересечение и разность коллекций
- Агрегатные операции
- Получение части коллекции
- Группировка
- Соединение коллекций
- Проверка наличия и получение элементов
- Отложенное и немедленное выполнение LINQ
- Делегаты в запросах LINQ
- Parallel LINQ. Метод AsParallel
- Метод AsOrdered
- Обработка ошибок и отмена параллельных операции
-
Рефлексия
- Введение в рефлексию. Класс System.Type
- Применение рефлексии и исследование типов
- Исследование методов и конструкторов с помощью рефлексии
- Исследование полей и свойств с помощью рефлексии
- Динамическая загрузка сборок и позднее связывание
- Атрибуты в .NET
-
Dynamic Language Runtime
- DLR в C#. Ключевое слово dynamic
- DynamicObject и ExpandoObject
- Использование IronPython в .NET
-
Сборка мусора, управление памятью и указатели
- Сборщик мусора в C#
- Финализируемые объекты. Метод Dispose
- Конструкция using
- Указатели
- Указатели на структуры, члены классов и массивы
-
Работа с файловой системой
- Работа с дисками
- Работа с каталогами
- Работа с файлами. Классы File и FileInfo
- FileStream. Чтение и запись файла
- Чтение и запись текстовых файлов. StreamReader и StreamWriter
- Бинарныефайлы. BinaryWriter и BinaryReader
- Архивация и сжатие файлов
-
Работа с JSON
- Сериализация в JSON. JsonSerializer
-
Работа с XML в C#
- XML-Документы
- Работа с XML с помощью классов System.Xml
- Изменение XML-документа
- XPath
- Linq to Xml. Создание Xml-документа
- Выборка элементов в LINQ to XML
- Изменение XML-документа в LINQ to XML
- Сериализация в XML. XmlSerializer
-
Процессы и домены приложения
- Процессы
- Домены приложений
- AssemblyLoadContext и динамическая загрузка и выгрузка сборок
-
Валидация модели
- Основы валидации модели
- Атрибуты валидации
- Создание своих атрибутов валидации
- Самовалидация модели
-
Основы в ASP.NET Core
- Создание и запуск приложения. WebApplication и WebApplicationBuilder
- Конвейер обработки запроса и middleware
- Метод Run и определение терминального middleware
- HttpResponse. Отправка ответа
- HttpRequest. Получение данных запроса
- Отправка файлов
- Отправка форм
- Переадресация
- Отправка и получение json
- Создание простейшего API
- Загрузка файлов на сервер
- Метод Use
- Создание ветки конвейера. UseWhen и MapWhen
- Метод Map
- Классы middleware
- Построение конвейера обработки запроса
- IWebHostEnvironment и окружение
-
Dependency Injection
- Внедрение зависимостей и IServiceCollection
- Создание сервисов
- Получение зависимостей
- Жизненный цикл зависимостей
- Применение сервисов в классах middleware
- Scoped-сервисы в singleton-объектах
- Множественная регистрация сервисов
-
Маршрутизация
- Конечные точки. Метод Map
- Параметры маршрута
- Ограничения маршрутов
- Создание ограничений маршрутов
- Передача зависимостей в конечные точки
- Сопоставление запроса с конечной точкой
- Сочетание конечных точек с другими middleware
-
Статические файлы
- Установка каталога статических файлов. UseStaticFiles
- Работа со статическими файлами
-
Конфигурация
- Основы конфигурации
- Нефайловые провайдеры конфигурации
- Конфигурация в файлах JSON, XML и Ini
- Конфигурация по умолчанию и объединение конфигураций
- Анализ конфигурации
- Создание провайдера конфгурации
- Проекция конфигурации на классы
- Передача конфигурации через IOptions
-
Логгирование
- Ведение лога и ILogger
- Фабрика логгера и провайдеры логгирования
- Конфигурация и фильтрация логгирования
- Создание провайдера логгирования
-
Состояние приложения. Куки. Сессии
- HttpContext.Items
- Куки
- Сессии
-
Обработка ошибок
- Обработка исключений
- Обработка ошибок HTTP
-
Results API
- Введение в Results API
- Отправка текста и json в Results API
- Переадресация в Results API
- Отправка статусных кодов в Results API
- Отправка файлов в Results API
- Определение своего типа IResult
-
Работа с базой данных и Entity Framework
- Подключение Entity Framework
- Основные операции с данными в Entity Framework Core
-
Аутентификация и авторизация
- Введение в аутентификацию и авторизацию
- Аутентификация с помощью JWT-токенов
- Авторизация с помощью JWT-токенов в клиенте JavaScript
- Аутентификация с помощью куки
- HttpContext.User, ClaimPrincipal и ClaimsIdentity
- ClaimPrincipal и объекты Claim
- Авторизация по ролям
- Авторизация на основе Claims
- Создание ограничений для авторизации
- 1005
- 09 May 2022, 11:47
Don't miss new posts!
Subscribe for the Goal and follow through to its completion