C#

You're viewing blog posts that cotains C# tag

See all posts
0 11K 13 min read

Как правильно выбрать коллекцию в .NET?

.NET Framework содержит множество классов коллекций. Это может затруднить решение, когда какой использовать. Группировка их вместе на основе их свойств может значительно облегчить выбор для конкретного сценария. Именно это мы и сделаем в этой статье

0 3.1K 10 min read

Портирование desktop приложений на .NET Core 3.0

В этой статье мы рассматриваем, как перенести desktop приложение с .NET Framework на .NET Core. Мы выбрали приложение WinForms в качестве примера. Шаги для приложения WPF схожи, и мы опишем, что нужно сделать для WPF по-другому. Мы также покажем, как вы можете продолжать использовать конструктор WinForms в Visual Studio, даже если он находится в стадии разработки и еще не доступен для проектов .NET Core.

0 9K 3 min read

Как правильно выбрать название для Unit тестов

Часто бывает что вам нужно протестировать какую то функцию или метод, однако подобрать имя для теста бывает часто затруднительно. Для этого в этой статье мы рассмотрим  несколько самых используемых подходов к именованию Unit тестов.

0 14.3K 5 min read

Принципы объектно-ориентированного проектирования

SOLID принципы:

  • The Single Responsibility Principle​ (SRP)
  • The Open Closed Principle​ (OCP)
  • The Liskov Substitution Principle​ (LSP)
  • The Interface Segregation Principle​ (ISP)
  • The Dependency Inversion Principle​ (DIP)

Другие принципы:

  • Release Equivalence Principle (REP)
  • Сommon Closure Principle (CCP)
  • Сommon Reuse Principle (CRP)
  • Acyclic Dependencies Principle (ADP)
  • Stable Dependencies Principle (SDP)
  • Stable Abstractions Principle (SAP)
1 7.6K 3 min read

Поведенческие паттерны: Хранитель (Memento) C#

В данной статье мы рассматриваем Поведенческий шаблон проектирования "Memento" и его реализацию на .NET

Назначение:

Паттерн Хранитель (Memento) — позволяет выносить внутреннее состояние объекта за его пределы для последующего возможного восстановления объекта без нарушения принципа инкапсуляции.

  • Не нарушая инкапсуляции, паттерн Memento получает и сохраняет за пределами объекта его внутреннее состояние так, чтобы позже можно было восстановить объект в таком же состоянии.
  • Является средством для инкапсуляции "контрольных точек" программы.
  • Паттерн Memento придает операциям "Отмена" (undo) или "Откат" (rollback) статус "полноценного объекта".

Когда использовать Memento?

  • Когда нужно сохранить состояние объекта для возможного последующего восстановления;

  • Когда сохранение состояния должно проходить без нарушения принципа инкапсуляции;