Dependency Injection (DI) — это ключевая концепция, позволяющая разделять создание объектов и их использование, что делает архитектуру приложения гибкой и удобной для тестирования.
Разберемся как внедрить DJ в картинках выше
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29🤝22👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Learncs — сайт, который позволяет изучать C# прямо в браузере. Отлично подходит как для новичков, так и для более опытных разработчиков.
📌 Ссылочка: https://learncs.org/
➡️ C# Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍4🤝1
Отличный справочник, в котором разобраны все темы LINQ.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥5
Паттерны проектирования — это проверенные решения типичных задач разработки, помогающие организовать код.
1. Паттерн Singleton: Один экземпляр для всей жизни.
Гарантирует, что у класса будет только один экземпляр, например, для управления настройками приложения:
public class Singleton
{
private static readonly Singleton _instance = new Singleton();
private Singleton() { }
public static Singleton Instance => _instance;
}
2. Паттерн Factory Method: Гибкое создание объектов.
Используется для создания объектов без указания их конкретного класса, что упрощает расширяемость:
public abstract class Creator
{
public abstract IProduct FactoryMethod();
}
3. Паттерн Repository: Изолируем доступ к данным.
Этот паттерн обеспечивает абстракцию доступа к данным, упрощая тестирование и поддержку:
public interface IRepository<T>
{
T Get(int id);
void Add(T entity);
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥6🤝5
Media is too big
VIEW IN TELEGRAM
Serilog — Гибкая библиотека для логирования, поддерживает множество источников и форматирование логов.
➡️ C# Ready | #репозиторий
📌 Ссылочка на репозиторий: Github😸
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3
•
Regex.Match
— позволяет найти первую подстроку, которая совпадает с заданным шаблоном.•
Regex.Replace
— позволяет заменить все совпадения с шаблоном на новое значение.🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38🤝14👍3
Охватывает ключевые технологии и инструменты, такие как C#, ASP.NET, Entity и Azure, направленные на разработку масштабируемых и производительных приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍3👎1
Практическое руководство по оптимизации приложений на .NET для повышения их производительности и эффективности.
Автор: Бен Уотсон
Год: 2019
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍4🤝2
Рефлексия в C# позволяет получать информацию о типах во время выполнения программы, что полезно для динамического создания объектов, вызова методов и работы с атрибутами.
Этот механизм особенно удобен для задач, требующих высокой гибкости и расширяемости кода.
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥37🤝17👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Programming skills — платформа, на которой вы найдете много теоретических тестов по, C#, Java, PHP, а так же популярным фреймворкам для этих языков.
⛓ Ссылочка: https://www.pskills.org/
➡️ C# Ready | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥5
•
String.Concat
— объединяет два или более строковых значения в одну строку. Это простой способ соединить строки без дополнительных разделителей.•
String.Join
— объединяет массив строк с указанным разделителем. Это полезно, когда необходимо создать строку из массива или списка значений.🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝25🔥23👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁48🔥10
Суть:
Когда нужно, чтобы объект (наблюдаемый) уведомлял других (наблюдателей) об изменениях, на помощь приходит паттерн "Наблюдатель".
Простой пример — приложение, где данные обновляются, а пользователи сразу видят новые сообщения или уведомления.
1. Основы паттерна "Наблюдатель"
Он определяет отношения "один ко многим". Класс "наблюдаемый" хранит список объектов-наблюдателей и уведомляет их обо всех изменениях:
public interface IObserver
{
void Update(string data);
// Метод для уведомления
}
public class Subject
{
private List<IObserver> observers = new(); // Список наблюдателей
public void Attach(IObserver observer) => observers.Add(observer);
public void Notify(string data) => observers.ForEach(o => o.Update(data));
// Уведомление всех
}
2 .Реакция на события:
Наблюдатели подписываются на уведомления и реализуют метод Update, чтобы среагировать на изменения:
public class ConcreteObserver : IObserver
{
public void Update(string data) => Console.WriteLine($"Обновлено: {data}");
}
3. В действии:
Создаем объект Subject, добавляем пару наблюдателей и уведомляем их о новом событии.
var subject = new Subject();
var observer1 = new ConcreteObserver();
var observer2 = new ConcreteObserver();
subject.Attach(observer1);
subject.Attach(observer2);
subject.Notify("Новая информация");
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍7🤝5
📖 ASP.Net Core в действии
⬇️ Скачать книгу
➡️ C# Ready | #книга
Практическое руководство по созданию веб-приложений с использованием ASP.NET Core, включая ключевые концепции, такие как маршрутизация, middleware, и работа с API.
Автор: Эндрю Лок
Год: 2024
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4🤝4