Данный репозиторий содержит решения лабораторных работ по курсу программирования на языке C#. Каждая лабораторная работа представляет собой самостоятельный проект, в котором последовательно добавляются новые технологии и концепции программирования.
Обучение и практика современных технологий разработки на C#, начиная с основ и заканчивая архитектурными паттернами.
- C# (.NET)
- LINQ
- Асинхронное программирование
- Работа с файлами и базами данных
- Паттерны проектирования
Цель: Ознакомление с синтаксисом и базовыми возможностями C#. Технологии: Основы C# — базовые конструкции языка, работа с переменными, условия, циклы, методы.
Технологии: Введение ООП (классы, объекты, наследование).
- Создание классов и объектов (class, new)
- Модификаторы доступа (public, private, protected)
- Свойства (get, set)
- Конструкторы классов
- Наследование (: BaseClass)
- Полиморфизм (виртуальные методы с virtual и override)
- Абстрактные классы и интерфейсы (abstract, interface)
Преимущества: Улучшение организации кода, повторное использование и расширяемость.
Что добавлено: Переход от процедурного к объектно-ориентированному стилю. Инкапсуляция данных и логики в классах.
Технологии: Коллекции и LINQ: работа с динамическими структурами данных и запросами.
- Коллекции List, Dictionary<TKey, TValue>, ArrayList, итерация с помощью foreach
- LINQ-запросы:
- Операторы from, where, select
- Методы расширения: .Where(), .Select(), .OrderBy()
- Анонимные типы и лямбда-выражения (x => x.Property > 10)
Преимущества: Ускорение разработки при работе с данными, повышение читаемости и компактности кода, эффективный поиск и фильтрация.
Что добавлено: Эффективная работа с наборами данных. Удобный синтаксис для фильтрации и проекции данных.
Технологии: Асинхронное программирование (async/await), работа с файлами.
- Асинхронные методы (async Task, await)
- Работа с файлами (FileStream, StreamReader, StreamWriter)
- Обработка исключений (try-catch-finally)
- Работа с потоками ввода-вывода без блокировки основного потока
Преимущества: Улучшение производительности при операциях ввода-вывода.
Что добавлено: Асинхронное выполнение операций для повышения отзывчивости. Чтение и запись данных в файлы.
Технологии: Работа с базами данных (Entity Framework или ADO.NET).
- Подключение к базе данных (ADO.NET или Entity Framework)
- Использование SQL-запросов или LINQ to Entities
- Контекст базы данных (DbContext)
- Моделирование сущностей базы данных через классы
- CRUD операции (Create, Read, Update, Delete)
Преимущества: Возможность создавать полноценные приложения с постоянным хранением данных, упрощение доступа к данным, ORM для удобной работы с БД.
Что добавлено: Интеграция с базой данных. Сохранение и извлечение данных из внешнего хранилища.
Технологии: Паттерны проектирования и архитектура: DI, паттерны, улучшение структуры приложения.
- Внедрение паттернов проектирования (Singleton, Factory, Repository и др.)
- Использование Dependency Injection (DI) — внедрение зависимостей через конструкторы или свойства
- Интерфейсы и абстракции для слабого связывания компонентов
- Логирование и обработка ошибок на уровне архитектуры
Преимущества: Код становится более гибким и поддерживаемым. Улучшение масштабируемости и тестируемости кода.
Что добавлено: Улучшение архитектуры приложения. Повышение тестируемости и масштабируемости.
- Клонируйте репозиторий:
git clone https://github.com/iDemetr/Course-CSharp.git
- Откройте нужную лабораторную работу в вашей IDE (например, Visual Studio).
- Изучайте и запускайте код, экспериментируйте с изменениями.
Проект открыт для изучения и использования.