Раньше вам приходилось мудрить с кодом, чтобы реализовать уведомления в веб-приложении?😔
С SignalR все становится проще! Давайте разберем, как настроить эту библиотеку на примере чата и обеспечить асинхронное общение между сервером и веб-приложениями.🦾
После открытого онлайн-урока 31 июля в 20:00 мск вы сможете легко создавать хабы и контракты сообщений, отправлять уведомления пользователям и многое другое.
➡️ Регистрируйтесь сейчас, чтобы не пропустить бесплатный урок: https://clck.ru/3BxuJ3
Встречаемся в преддверии старта курса C# ASP.NET Core разработчик. До 31.07 на курс действует скидка 10%. 🔥
С SignalR все становится проще! Давайте разберем, как настроить эту библиотеку на примере чата и обеспечить асинхронное общение между сервером и веб-приложениями.🦾
После открытого онлайн-урока 31 июля в 20:00 мск вы сможете легко создавать хабы и контракты сообщений, отправлять уведомления пользователям и многое другое.
Встречаемся в преддверии старта курса C# ASP.NET Core разработчик. До 31.07 на курс действует скидка 10%. 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
❓Какая из строк (помечены комментариями) вызовет ошибку компиляции?
interface IList
{
int Count { get; set; }
}
interface ICounter
{
void Count(int i);
}
interface IListCounter:IList, ICounter { }
class C
{
void Test(IListCounter x) //1
{
x.Count(1); //2
x.Count = 1; //3
}
}
public class Program
{
private static void Main(string[] args)
{
}
}
Когда используется ключевое слово value?
Anonymous Quiz
21%
Для передачи значений в базовый конструктор
62%
Для получения ссылки на значение, которое присваивается свойству
10%
Для обобщения входных данных параметров методов
7%
Для получения ссылки на текущий экземпляр класса
Что такое сборщик мусора и как он работает?
Ответ:
Сборка мусора – это низкоприоритетный процесс, который служит в качестве автоматического менеджера памяти, управляющего распределением и освобождением памяти для приложений.
Каждый раз, когда создается новый объект, среда выполнения общего языка выделяет память для этого объекта из управляемой кучи. Пока в управляемой куче есть свободное пространство памяти, среда выполнения продолжает выделять место для новых объектов. Однако память не бесконечна, и как только приложение заполняет пространство, в дело вступает сборщик мусора (Garbage Collector), который освобождает часть памяти.
Когда сборщик мусора выполняет очистку, он проверяет объекты в управляемой куче, которые больше не используются приложением, и выполняет необходимые операции. Сборщик мусора останавливает все запущенные потоки, находит все объекты в куче, к которым не обращается основная программа, и удаляет их. Затем он собирает все объекты, оставшиеся в куче, чтобы освободить место, и корректирует все указатели на эти объекты в стеке и в куче.
Чтобы запустить сборку мусора в коде вручную, выполняем следующую команду:
#questions
Ответ:
Сборка мусора – это низкоприоритетный процесс, который служит в качестве автоматического менеджера памяти, управляющего распределением и освобождением памяти для приложений.
Каждый раз, когда создается новый объект, среда выполнения общего языка выделяет память для этого объекта из управляемой кучи. Пока в управляемой куче есть свободное пространство памяти, среда выполнения продолжает выделять место для новых объектов. Однако память не бесконечна, и как только приложение заполняет пространство, в дело вступает сборщик мусора (Garbage Collector), который освобождает часть памяти.
Когда сборщик мусора выполняет очистку, он проверяет объекты в управляемой куче, которые больше не используются приложением, и выполняет необходимые операции. Сборщик мусора останавливает все запущенные потоки, находит все объекты в куче, к которым не обращается основная программа, и удаляет их. Затем он собирает все объекты, оставшиеся в куче, чтобы освободить место, и корректирует все указатели на эти объекты в стеке и в куче.
Чтобы запустить сборку мусора в коде вручную, выполняем следующую команду:
System.GC.Collect();
#questions
💪 Пройди тест по C++ и проверь свои знания!
Ответишь — пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь 64 записи открытых уроков от преподавателей курса бесплатно!🎁.
➡️ ПРОЙТИ ТЕСТ: https://clck.ru/3CUYke
✅ Получи бонусы и успей присоединится к августовской группе!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Ответишь — пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь 64 записи открытых уроков от преподавателей курса бесплатно!🎁.
✅ Получи бонусы и успей присоединится к августовской группе!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос на засыпку. Чем отличаются управляемый и неуправляемый код?
Ответ опубликуем завтра.
Пишите в комментариях ваш вариант!
#questions
Ответ опубликуем завтра.
Пишите в комментариях ваш вариант!
#questions
Чем отличаются управляемый и неуправляемый код?
Ответ:
Управляемый код – это код, созданный компилятором .NET. Он не зависит от архитектуры целевой машины, поскольку выполняется CLR (Common Language Runtime), а не самой операционной системой. CLR и управляемый код предлагают разработчикам несколько преимуществ, таких как сборка мусора, проверка типов и обработка исключений.
С другой стороны, неуправляемый код напрямую компилируется в родной машинный код и зависит от архитектуры целевой машины. Он выполняется непосредственно операционной системой. В неуправляемом коде разработчик должен убедиться, что он вручную решает вопросы использования и выделения памяти (особенно из-за утечек памяти), безопасности типов и исключений.
В .NET компилятор Visual Basic и C# создает управляемый код. Чтобы получить неуправляемый код, приложение должно быть написано на C или C++.
#questions
Ответ:
Управляемый код – это код, созданный компилятором .NET. Он не зависит от архитектуры целевой машины, поскольку выполняется CLR (Common Language Runtime), а не самой операционной системой. CLR и управляемый код предлагают разработчикам несколько преимуществ, таких как сборка мусора, проверка типов и обработка исключений.
С другой стороны, неуправляемый код напрямую компилируется в родной машинный код и зависит от архитектуры целевой машины. Он выполняется непосредственно операционной системой. В неуправляемом коде разработчик должен убедиться, что он вручную решает вопросы использования и выделения памяти (особенно из-за утечек памяти), безопасности типов и исключений.
В .NET компилятор Visual Basic и C# создает управляемый код. Чтобы получить неуправляемый код, приложение должно быть написано на C или C++.
#questions
✅ Пора разобраться, как работает lock-free программирование в C++ и как оно влияет на производительность многопоточных приложений. Узнайте, как избежать блокировок и сделать ваше приложение быстрым и отзывчивым!
⚡️ Присоединяйтесь к открытому вебинару 19 августа в 20:00 мск! Вы узнаете о преимуществах и потенциальных проблемах этого подхода по сравнению с традиционными методами синхронизации + ответим на ВСЕ вопросы!
➡️ Зарегистрируйтесь сейчас, чтобы не пропустить бесплатный урок: https://clck.ru/3CQ5Bi
Кстати, вот еще промокод на 10% скидку курса C++ Developer. Professional: otus10
Кстати, вот еще промокод на 10% скидку курса C++ Developer. Professional: otus10
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Задачка: Следующее число больше a и b и делится на b
Даны два числа
Примеры:
Пишите ваши варианты в комментариях. Ответ будет в канале сегодня вечером.
#задача
Даны два числа
a
и b
. Создайте функцию, которая возвращает следующее число, большее a
и b
и кратное b
.Примеры:
DivisibleByB(17, 8) ➞ 24
DivisibleByB(98, 3) ➞ 99
DivisibleByB(14, 11) ➞ 22
Пишите ваши варианты в комментариях. Ответ будет в канале сегодня вечером.
#задача
Вопрос на засыпку. В чем разница между интерфейсом и абстрактным классом в .NET?
Ответ опубликуем вечером.
Пишите в комментариях ваш вариант!
#questions
Ответ опубликуем вечером.
Пишите в комментариях ваш вариант!
#questions
В чем разница между интерфейсом и абстрактным классом в .NET?
Ответ:
Интерфейс просто объявляет поведение, которым должны обладать реализующие классы. Он объявляет только свойства, методы и события без модификаторов доступа. Все объявленные члены должны быть реализованы.
Абстрактный класс предоставляет частичную реализацию функциональности и некоторые абстрактные/виртуальные члены, которые должны быть реализованы сущностями, которые наследуют класс. Он также объявляет поля.
Интерфейс и абстрактный класс не могут быть инстанцированы.
#questions
Ответ:
Интерфейс просто объявляет поведение, которым должны обладать реализующие классы. Он объявляет только свойства, методы и события без модификаторов доступа. Все объявленные члены должны быть реализованы.
Абстрактный класс предоставляет частичную реализацию функциональности и некоторые абстрактные/виртуальные члены, которые должны быть реализованы сущностями, которые наследуют класс. Он также объявляет поля.
Интерфейс и абстрактный класс не могут быть инстанцированы.
#questions
Задачка: Рекурсия для повторения строки n количество раз
Напишите рекурсивную функцию, которая принимает два параметра и повторяет строку
Примеры:
Пишите ваши варианты в комментариях. Ответ будет в канале завтра.
#задача
Напишите рекурсивную функцию, которая принимает два параметра и повторяет строку
n
раз. Первый параметр txt
- это повторяемая строка, а второй параметр - количество повторений строки.Примеры:
Repetition("ab", 3) ➞ "ababab"
Repetition("kiwi", 1) ➞ "kiwi"
Repetition("cherry", 2) ➞ "cherrycherry"
Пишите ваши варианты в комментариях. Ответ будет в канале завтра.
#задача
Вебинар «Обработка исключений в C#»: Спотыкайтесь, но оставайтесь на ногах!
Приходите, чтобы:
- Разобраться с основами класса System.Exception и его производными
- Научиться применять ключевые конструкции для перехвата исключений
- Открыть для себя лучшие практики обработки ошибок, которые используют профи
Что вас ждёт:
- Узнаете, какие типы исключений существуют в C# и научитесь создавать свои
- Поймёте, когда и почему возникают ошибки, и как их избежать
- И самое важное – узнаете, каких ошибок стоит бояться, а какие можно спокойно игнорировать!
Регистрируйтесь сейчас: https://otus.pw/JlVl/
2 главных преимущества курса C# Developer:
Охватывает все ключевые аспекты программирования на C#. Вы научитесь разрабатывать сложные клиент-серверные приложения, что позволит претендовать на позиции уровня Middle.
Вы создадите полноценное приложение с нуля, используя Docker, CI/CD, React или Razor, и современные API технологии (GraphQL, gRPC, SignalR). Это не просто обучение — вы выходите с реальным проектом в портфолио!
Познакомьтесь с преподавателем на уроке: https://otus.pw/JlVl/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Приходите, чтобы:
- Разобраться с основами класса System.Exception и его производными
- Научиться применять ключевые конструкции для перехвата исключений
- Открыть для себя лучшие практики обработки ошибок, которые используют профи
Что вас ждёт:
- Узнаете, какие типы исключений существуют в C# и научитесь создавать свои
- Поймёте, когда и почему возникают ошибки, и как их избежать
- И самое важное – узнаете, каких ошибок стоит бояться, а какие можно спокойно игнорировать!
Регистрируйтесь сейчас: https://otus.pw/JlVl/
2 главных преимущества курса C# Developer:
Охватывает все ключевые аспекты программирования на C#. Вы научитесь разрабатывать сложные клиент-серверные приложения, что позволит претендовать на позиции уровня Middle.
Вы создадите полноценное приложение с нуля, используя Docker, CI/CD, React или Razor, и современные API технологии (GraphQL, gRPC, SignalR). Это не просто обучение — вы выходите с реальным проектом в портфолио!
Познакомьтесь с преподавателем на уроке: https://otus.pw/JlVl/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Какой из следующих вариантов неверный в контексте использования Dispose в C#?
Anonymous Quiz
35%
Метод Dispose вызывается автоматически сборщиком мусора, когда объект больше не используется
14%
Интерфейс IDisposable предоставляет метод Dispose для освобождения ресурсов, используемых объектом
25%
Блок using гарантирует, что метод Dispose будет вызван, даже если в блоке произойдёт исключение
26%
Неуправляемые ресурсы должны быть освобождены вручную, чтобы избежать утечек памяти
Из примера выше, что будет выведено на экран?
Anonymous Quiz
26%
Ford, Volvo, BMW
11%
Toyota, Volvo, BMW
63%
Ford, Toyota, BMW
Что поможет обеспечить стабильную работу высоконагруженной системы?
Эффективный мониторинг.
О том, как лучше отслеживать и поддерживать стабильность систем под высокой нагрузкой, вы узнаете на открытом уроке «Мониторинг в высоконагруженных проектах»
👨💻🛠👨🏻💻 Будет интересно: девопсам, сисадминам, бэкенд-разработчикам, тимлидам.
Вы научитесь:
Настраивать мониторинг для высоконагруженных проектов
Настраивать мониторинг для выявления и предотвращения проблем
Использовать данные мониторинга для повышения стабильности и производительности системы
Усиливать отказоустойчивость архитектуры
А ещё получите ценные советы для оптимизации мониторинга в реальных проектах.
Урок проведёт Олег Мифле, бэкенд-разработчик VK с 15-летним опытом в IT
🆓 Участие бесплатное. Урок в рамках старта курса «Highload Architect»
🔴 Записаться на открытый урок
Эффективный мониторинг.
О том, как лучше отслеживать и поддерживать стабильность систем под высокой нагрузкой, вы узнаете на открытом уроке «Мониторинг в высоконагруженных проектах»
👨💻🛠👨🏻💻 Будет интересно: девопсам, сисадминам, бэкенд-разработчикам, тимлидам.
Вы научитесь:
Настраивать мониторинг для высоконагруженных проектов
Настраивать мониторинг для выявления и предотвращения проблем
Использовать данные мониторинга для повышения стабильности и производительности системы
Усиливать отказоустойчивость архитектуры
А ещё получите ценные советы для оптимизации мониторинга в реальных проектах.
Урок проведёт Олег Мифле, бэкенд-разработчик VK с 15-летним опытом в IT
🆓 Участие бесплатное. Урок в рамках старта курса «Highload Architect»
🔴 Записаться на открытый урок
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576