Перевод книги ".NET Фреймворк заметки для профессионалов" / ".NET Framework Notes for Professionals" Перевод
Перевод книги https://books.goalkicker.com/DotNETFrameworkBook/
Содержание
О книге
Глава 1: Начало работы с .NET Framework
Раздел 1.1: Hello World на C#
Раздел 1.2: Hello World на F#
Раздел 1.3: Hello World в Visual Basic .NET
Раздел 1.4: Hello World на C++/CLI
Раздел 1.5: Hello World в IL
Раздел 1.6: Hello World в PowerShell
Раздел 1.7: Hello World в Nemerle
Раздел 1.8: Hello World на Python (IronPython)
Раздел 1.9: Hello World в Oxygene
Раздел 1.10: Hello World в Boo
Глава 2: Строки
Раздел 2.1: Подсчет символов
Раздел 2.2: Считать отдельные символы
Раздел 2.3: Преобразование строки в/из другой кодировки
Раздел 2.4: Сравнение строк
Раздел 2.5: Подсчет вхождений символа
Раздел 2.6: Разбиение строки на блоки фиксированной длины
Раздел 2.7: Виртуальный метод Object.ToString()
Раздел 2.8: Неизменяемость строк
Глава 3: Разбор DateTime
Раздел 3.1: ParseExact
Раздел 3.2: TryParse
Раздел 3.3: TryParseExact
Глава 4: Словари
Раздел 4.1: Инициализация словаря с помощью инициализатора коллекции
Раздел 4.2: Добавление в словарь
Раздел 4.3: Получение значения из словаря
Раздел 4.4: Создание Dictionary с чувствительными к регистру ключами
Раздел 4.5: преобразование IEnumerable в словарь (≥ .NET 3.5)
Раздел 4.6: Перечисление словаря
Раздел 4.7: ConcurrentDictionary (из .NET 4.0)
Раздел 4.8: От словаря к списку
Раздел 4.9: Удаление из словаря
Раздел 4.10: ContainsKey(TKey)
Раздел 4.11: ConcurrentDictionary, дополненный Lazy'1, уменьшает дублирование вычислений
Глава 5: Коллекции
Раздел 5.1: Использование инициализаторов коллекций
Раздел 5.2: Стек
Раздел 5.3: Создание инициализированного списка с помощью пользовательских типов
Раздел 5.4: Очередь
Глава 6: ReadOnlyCollections
Раздел 6.1: Создание коллекции ReadOnlyCollection
Раздел 6.2: Обновление коллекции ReadOnlyCollection
Раздел 6.3: Предупреждение: Элементы в коллекции ReadOnlyCollection не являются по своей природе доступными только для чтения
Глава 7: Stack и Heap
Раздел 7.1: Используемые типы значений
Раздел 7.2: Используемые ссылочные типы
Глава 8: LINQ
Раздел 8.1: SelectMany (плоская карта)
Раздел 8.2: Where (фильтр)
Раздел 8.3: Any
Раздел 8.4: GroupJoin
Раздел 8.5: Except
Раздел 8.6: Zip
Раздел 8.7: Aggregate
Раздел 8.8: ToLookup
Раздел 8.9: Intersect
Раздел 8.10: Concat
Раздел 8.11: All
Раздел 8.12: Sum
Раздел 8.13: SequenceEqual
Раздел 8.14: Min
Раздел 8.15: Distinct
Раздел 8.16: Count
Раздел 8.17: Cast
Раздел 8.18: Range
Раздел 8.19: ThenBy
Раздел 8.20: Repeat
Раздел 8.21: Empty
Раздел 8.22: Select (map)
Раздел 8.23: OrderBy
Раздел 8.24: OrderByDescending
Раздел 8.25: Contains
Раздел 8.47: DefaultIfEmpty
Раздел 8.48: Join
Раздел 8.49: Left Outer Join
Глава 9: ForEach
Раздел 9.1: Метод расширения для IEnumerable
Раздел 9.2: Вызов метода для объекта в списке
Глава 10: Отражение
Раздел 10.1: Что такое сборка?
Раздел 10.2: Сравнение двух объектов с помощью отражения
Раздел 10.3: Создание объекта и установка свойств с помощью отражения
Раздел 10.4: Как создать объект T с помощью отражения
Раздел 10.5: Получение атрибута перечисления с помощью отражения (и его кэширование)
Глава 11: Деревья выражений
Раздел 11.1: построение предиката формы field == value
Раздел 11.2: простое дерево выражений, сгенерированное компилятором C#
Раздел 11.3: Выражение для извлечения статического поля
Раздел 11.4: Класс InvocationExpression
Глава 12: Пользовательские типы
Раздел 12.1: Определение структуры
Раздел 12.2: Определение класса
Глава 13: Контракты кода
Раздел 13.1: Контракты для интерфейсов
Раздел 13.2: Установка и включение кодовых контрактов
Раздел 13.3: Предварительные условия
Раздел 13.4: Постусловия
Глава 14: Настройки
Глава 14: Настройки
Раздел 14.1: AppSettings из ConfigurationSettings в .NET 1.x
Раздел 14.2: Чтение AppSettings из ConfigurationManager в .NET 2.0 и более поздних версиях
Раздел 14.3: Введение в поддержку сильно типизированных приложений и пользовательских настроек в Visual Studio
Раздел 14.4: Чтение сильнотипизированных настроек из пользовательской секции конфигурационного файла
Глава 15: Регулярные выражения (System.Text.RegularExpressions)
Раздел 15.1: Проверка соответствия шаблона вводимым данным
Раздел 15.2: Удаление неалфавитно-цифровых символов из строки
Раздел 15.3: Передача параметров
Раздел 15.4: Сопоставление в группах
Раздел 15.5: Найти все совпадения
Раздел 15.6: Простое совпадение и замена
Глава 16: Ввод/вывод файлов
Раздел 16.1: C# File.Exists()
Раздел 16.2: VB WriteAllText
Раздел 16.3: VB StreamWriter
Раздел 16.4: C# StreamWriter
Раздел 16.5: C# WriteAllText()
Глава 17: System.IO
Раздел 17.1: Чтение текстового файла с помощью StreamReader
Раздел 17.2: Последовательные порты с помощью System.IO.SerialPorts
Раздел 17.3: Чтение/запись данных с помощью System.IO.File
Глава 18: Класс System.IO.File
Раздел 18.1: Удаление файла
Раздел 18.2: Удаление ненужных строк из текстового файла
Раздел 18.3: Преобразование кодировки текстового файла
Раздел 18.4: Перечисление файлов старше заданного количества
Раздел 18.5: Перемещение файла из одного места в другое
Глава 19: Чтение и запись Zip-файлов
Раздел 19.1: Вывод содержимого ZIP-файла
Раздел 19.2: Извлечение файлов из ZIP-файлов
Раздел 19.3: Обновление ZIP-файла
Глава 20: Управляемая платформа расширяемости
Раздел 20.1: Подключение (базовое)
Раздел 20.2: Экспорт типа (базовый)
Раздел 20.3: Импорт (базовый)
Глава 21: Класс SpeechRecognitionEngine для распознавания речи
Раздел 21.1: Асинхронное распознавание речи на основе ограниченного набора фраз
Раздел 21.2: Асинхронное распознавание речи для диктовки свободного текста
Глава 22: System.Runtime.Caching.MemoryCache (ObjectCache)
Раздел 22.1: Добавление элемента в кэш (Set)
Раздел 22.2: System.Runtime.Caching.MemoryCache (ObjectCache)
Глава 23: Пространство имен System.Reflection.Emit
Раздел 23.1: Динамическое создание сборки
Глава 24: .NET Core
Раздел 24.1: Базовое консольное приложение
Глава 25: ADO.NET
Раздел 25.1: Лучшие практики — выполнение Sql-выражений
Раздел 25.2: Выполнение операторов SQL в качестве команды
Раздел 25.3: Использование общих интерфейсов для абстрагирования от специфических классов поставщика
Глава 26: Инъекция зависимостей
Раздел 26.1: Как инъекция зависимостей упрощает модульное тестирование
Раздел 26.2: Инъекция зависимостей — простой пример
Раздел 26.3: Почему мы используем контейнеры инъекции зависимостей (IoC-контейнеры)
Глава 27: Platform Invoke
Раздел 27.1: Маршалинг структур
Раздел 27.2: Маршалинг союзов
Раздел 27.3: Вызов функции Win32 dll
Раздел 27.4: Использование Windows API
Раздел 27.5: Маршаллинг массивов
Глава 28: Система упаковки NuGet
Раздел 28.1: Удаление пакета из одного проекта в решении
Раздел 28.2: Установка определенной версии пакета
Раздел 28.3: Добавление источника пакетов (MyGet, Klondike, ect)
Раздел 28.4: Установка менеджера пакетов NuGet
Раздел 28.5: Управление пакетами через пользовательский интерфейс
Раздел 28.6: Управление пакетами через консоль
Раздел 28.7: Обновление пакета
Раздел 28.8: Деинсталляция пакета
Раздел 28.9: Деинсталляция определенной версии пакета
Глава 29: Глобализация в ASP.NET MVC с помощью Smart internationalization for ASP.NET
Раздел 29.1: Базовая конфигурация и настройка
Глава 30: System.Net.Mail
Раздел 30.1: MailMessage
Раздел 30.2: Почта с вложением
Глава 31: Использование Progress и IProgress
Раздел 31.1: Простой отчет о прогрессе
Раздел 31.2: Использование IProgress
Глава 32: Сериализация JSON
Раздел 32.1: Десериализация с помощью System.Web.Script.Serialization.JavaScriptSerializer
Раздел 32.2: Сериализация с помощью Json.NET
Раздел 32.3: Сериализация-дезериализация с помощью Newtonsoft.Json
Раздел 32.4: Десериализация с помощью Json.NET
Раздел 32.5: Динамическое связывание
Раздел 32.6: Сериализация с помощью Json.NET с JsonSerializerSettings
Глава 33: JSON в .NET с помощью Newtonsoft.Json
Раздел 33.1: Десериализация объекта из текста JSON
Раздел 33.2: Сериализация объекта в JSON
Глава 34: XmlSerializer
Раздел 34.1: Форматирование: Пользовательский формат DateTime
Раздел 34.2: Сериализация объекта
Раздел 34.3: Десериализация объекта
Раздел 34.4: Поведение: Сопоставление имени массива со свойством (XmlArray)
Раздел 34.5: Поведение: Сопоставление имени элемента со свойством
Раздел 34.6: Eciently Создание нескольких сериализаторов с производными типами, задаваемыми динамически
Глава 35: Формы VB
Раздел 35.1: Hello World в VB.NET Forms
Раздел 35.2: Для начинающих
Раздел 35.3: Таймер форм
Глава 36: JIT-компилятор
Раздел 36.1: Пример компиляции IL
Глава 37: CLR
Раздел 37.1: Введение в Common Language Runtime
Глава 38: TPL Dataflow
Раздел 38.1: Асинхронный производитель-потребитель с ограничением BuerBlock
Раздел 38.2: Постинг в ActionBlock и ожидание завершения
Раздел 38.3: Связывание блоков для создания конвейера
Раздел 38.4: Синхронный производитель/потребитель с BuerBlock
Глава 39: Потоки
Раздел 39.1: Доступ к элементам управления формы из других потоков
Глава 40: Процесс и поток anity настройка
Раздел 40.1: Получение маски процесса anity
Раздел 40.2: Установка маски процесса anity
Глава 41: Параллельная обработка с использованием .Net framework
Раздел 41.1: Параллельные расширения
Глава 42: Параллельная библиотека задач (TPL)
Раздел 42.1: Базовый цикл производитель-потребитель (BlockingCollection)
Раздел 42.2: Parallel.Invoke
Раздел 42.3: Task: Возвращение значения
Раздел 42.4: Parallel.ForEach
Раздел 42.5: Parallel.For
Раздел 42.6: Задача: базовое инстанцирование и Wait
Раздел 42.7: Task.WhenAll
Раздел 42.8: Перетекающий контекст выполнения с AsyncLocal
Раздел 42.9: Parallel.ForEach в VB.NET
Раздел 42.10: Task: WaitAll и захват переменных
Раздел 42.11: Задача: WaitAny
Раздел 42.12: Задача: обработка исключений (с помощью Wait)
Раздел 42.13: Задача: обработка исключений (без использования Wait)
Раздел 42.14: Задача: отмена с использованием CancellationToken
Раздел 42.15: Task.WhenAny
Глава 43: Обзоры API библиотеки параллельных задач (TPL)
Раздел 43.1: Выполнение работы в ответ на нажатие кнопки и обновление пользовательского интерфейса
Глава 44: Контексты синхронизации
Раздел 44.1: Выполнение кода в потоке пользовательского интерфейса после выполнения фоновой работы
Глава 45: Управление памятью
Раздел 45.1: Использование SafeHandle при обертывании неуправляемых ресурсов
Раздел 45.2: Неуправляемые ресурсы
Глава 46: Сборка мусора
Раздел 46.1: Базовый пример сбора (мусора)
Раздел 46.2: Живые объекты и мертвые объекты — основы
Раздел 46.3: Несколько мертвых объектов
Раздел 46.4: Слабые ссылки
Раздел 46.5: Dispose() против финализаторов
Раздел 46.6: Правильное удаление и финализация объектов
Глава 47: Исключения
Раздел 47.1: Перехват и перебрасывание пойманных исключений
Раздел 47.2: Использование блока finally
Раздел 47.3: Фильтры исключений
Раздел 47.4: Отбрасывание исключения в блоке catch
Раздел 47.5: Выброс исключения из метода dierent с сохранением информации о нем
Раздел 47.6: Перехват исключения
Глава 48: System.Diagnostics
Раздел 48.1: Выполнение команд оболочки
Раздел 48.2: Отправка команды в CMD и получение вывода
Раздел 48.3: Секундомер
Глава 49: Шифрование / криптография
Раздел 49.1: Шифрование и дешифрование с помощью криптографии (AES)
Раздел 49.2: RijndaelManaged
Раздел 49.3: Шифрование и дешифрование данных с помощью AES (на C#)
Раздел 49.4: Создание ключа из пароля / случайного SALT (на C#)
Глава 50: Работа с SHA1 в C#
Раздел 50.1: #Генерируем контрольную сумму SHA1 файла
Раздел 50.2: #Генерирование хэша текста
Глава 51: Юнит-тестирование
Раздел 51.1: Добавление проекта модульного тестирования MSTest в существующее решение
Раздел 51.2: Создание примера метода тестирования
Глава 52: Запись в поток StdErr и чтение из него
Раздел 52.1: Запись в стандартный вывод ошибок с помощью консоли
Раздел 52.2: Чтение из стандартной ошибки дочернего процесса
Глава 53: Загрузка файла и POST-данных на веб-сервер
Раздел 53.1: Загрузка файла с помощью WebRequest
Глава 54: Работа в сети
Раздел 54.1: Базовый TCP-чат (TcpListener, TcpClient, NetworkStream)
Раздел 54.2: Базовый SNTP-клиент (UdpClient)
Глава 55: HTTP-серверы
Раздел 55.1: Базовый файловый HTTP-сервер только для чтения (ASP.NET Core)
Раздел 55.2: Базовый файловый HTTP-сервер только для чтения (HttpListener)
Глава 56: HTTP-клиенты
Раздел 56.1: Чтение GET-ответа в виде строки с помощью System.Net.HttpClient
Раздел 56.2: Базовый HTTP-загрузчик с использованием System.Net.Http.HttpClient
Раздел 56.3: Чтение GET-ответа как строки с помощью System.Net.HttpWebRequest
Раздел 56.4: Чтение GET-ответа как строки с помощью System.Net.WebClient
Раздел 56.5: Отправка POST-запроса со строковой полезной нагрузкой с помощью System.Net.HttpWebRequest
Раздел 56.6: Отправка POST-запроса со строковой полезной нагрузкой с помощью System.Net.WebClient
Раздел 56.7: Отправка POST-запроса со строковой полезной нагрузкой с помощью System.Net.HttpClient
Глава 57: Последовательные порты
Раздел 57.1: Основные операции
Раздел 57.2: Список доступных имен портов
Раздел 57.3: Асинхронное чтение
Раздел 57.4: Синхронный сервис текстового эха
Раздел 57.5: Асинхронный приемник сообщений
Приложение A: Глоссарий сокращений
Раздел A.1: Аббревиатуры, связанные с .Net
Кредиты
Вам также может понравиться