Skip to content

iDemetr/Course-CSharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Решение курса по С#

Данный репозиторий содержит решения лабораторных работ по курсу программирования на языке C#. Каждая лабораторная работа представляет собой самостоятельный проект, в котором последовательно добавляются новые технологии и концепции программирования.

Цель

Обучение и практика современных технологий разработки на C#, начиная с основ и заканчивая архитектурными паттернами.

Технологии

  • C# (.NET)
  • LINQ
  • Асинхронное программирование
  • Работа с файлами и базами данных
  • Паттерны проектирования

Структура проекта

1. Формирование базовых навыков программирования.

Цель: Ознакомление с синтаксисом и базовыми возможностями C#. Технологии: Основы C# — базовые конструкции языка, работа с переменными, условия, циклы, методы.

2. Модификация Л1

Технологии: Введение ООП (классы, объекты, наследование).

  • Создание классов и объектов (class, new)
  • Модификаторы доступа (public, private, protected)
  • Свойства (get, set)
  • Конструкторы классов
  • Наследование (: BaseClass)
  • Полиморфизм (виртуальные методы с virtual и override)
  • Абстрактные классы и интерфейсы (abstract, interface)

Преимущества: Улучшение организации кода, повторное использование и расширяемость.

Что добавлено: Переход от процедурного к объектно-ориентированному стилю. Инкапсуляция данных и логики в классах.

3. Модификация Л2

Технологии: Коллекции и LINQ: работа с динамическими структурами данных и запросами.

  • Коллекции List, Dictionary<TKey, TValue>, ArrayList, итерация с помощью foreach
  • LINQ-запросы:
    • Операторы from, where, select
    • Методы расширения: .Where(), .Select(), .OrderBy()
  • Анонимные типы и лямбда-выражения (x => x.Property > 10)

Преимущества: Ускорение разработки при работе с данными, повышение читаемости и компактности кода, эффективный поиск и фильтрация.

Что добавлено: Эффективная работа с наборами данных. Удобный синтаксис для фильтрации и проекции данных.

4. Модификация Л3

Технологии: Асинхронное программирование (async/await), работа с файлами.

  • Асинхронные методы (async Task, await)
  • Работа с файлами (FileStream, StreamReader, StreamWriter)
  • Обработка исключений (try-catch-finally)
  • Работа с потоками ввода-вывода без блокировки основного потока

Преимущества: Улучшение производительности при операциях ввода-вывода.

Что добавлено: Асинхронное выполнение операций для повышения отзывчивости. Чтение и запись данных в файлы.

5. Модификация Л4

Технологии: Работа с базами данных (Entity Framework или ADO.NET).

  • Подключение к базе данных (ADO.NET или Entity Framework)
  • Использование SQL-запросов или LINQ to Entities
  • Контекст базы данных (DbContext)
  • Моделирование сущностей базы данных через классы
  • CRUD операции (Create, Read, Update, Delete)

Преимущества: Возможность создавать полноценные приложения с постоянным хранением данных, упрощение доступа к данным, ORM для удобной работы с БД.

Что добавлено: Интеграция с базой данных. Сохранение и извлечение данных из внешнего хранилища.

6. Модификация Л5

Технологии: Паттерны проектирования и архитектура: DI, паттерны, улучшение структуры приложения.

  • Внедрение паттернов проектирования (Singleton, Factory, Repository и др.)
  • Использование Dependency Injection (DI) — внедрение зависимостей через конструкторы или свойства
  • Интерфейсы и абстракции для слабого связывания компонентов
  • Логирование и обработка ошибок на уровне архитектуры

Преимущества: Код становится более гибким и поддерживаемым. Улучшение масштабируемости и тестируемости кода.

Что добавлено: Улучшение архитектуры приложения. Повышение тестируемости и масштабируемости.

Как использовать

  1. Клонируйте репозиторий:
    git clone https://github.com/iDemetr/Course-CSharp.git
    
  2. Откройте нужную лабораторную работу в вашей IDE (например, Visual Studio).
  3. Изучайте и запускайте код, экспериментируйте с изменениями.

Лицензия

Проект открыт для изучения и использования.

About

Проект курса по С#

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published