Сама по себе эта статья не является самостоятельным произведением. По факту она служит дополнением к основной, обзорной, статье по новой библиотеке ActiveSession. Эта библиотека предназначена для использования в веб-приложениях, серверная часть которых написана на ASP.NET Core. В основной статье рассказано, какую задачу решает эта библиотека, и как подключить ее к приложению. А эта статья рассказывает более подробно, как использовать эту библиотеку в обработчиках запросов к серверной части приложения из браузера.
Если вы уже заинтересовались библиотекой ActiveSession, то добро пожаловать дальше. Только перед этим рекомендуется прочитать основную статью: в ней объяснены те понятия, которые нужны для лучшего понимания того, что написано в этой статье.

C# *
Объектно-ориентированный язык программирования
Поймай уязвимость своими руками: пользовательские аннотации C# кода

Думаю, для многих не секрет, что уязвимости в проекте могут оказать на него крайне негативное влияние. Существует ряд способов по борьбе с уязвимостями, начиная с ручного поиска и заканчивая использованием специализированных инструментов. Об одном из таких инструментов пойдёт речь в статье.
Как и зачем использовать Template Method в C#

Template Method (он же «Шаблонный метод») — это паттерн проектирования, который определяет скелет алгоритма в методе, оставляя определенные шаги подклассам. Проще говоря, есть базовый алгоритм, но мы можно менять детали, переопределяя части этого алгоритма в наследниках.
Классический пример — процесс заказа товара в интернет-магазине. Независимо от того, какой у вас магазин, шаги примерно одинаковые: проверка наличия товара, оплата, упаковка и доставка. Но в зависимости от специфики магазина, эти шаги могут отличаться в деталях.
Template Method позволяет создать базовую структуру этих шагов и менять конкретные реализации без изменения самой структуры. В этой статье мы рассмотрим, как реализовать этот паттерн на C#.
Обзор нововведений в C# 13

Совсем скоро выйдет новая версия языка C#, а мы продолжаем серию ежегодного обзора нововведений. Изменений в этом году больше, чем в прошлом, что радует. Есть как важные изменения, так и весьма узкоспециализированные. Давайте посмотрим на них более детально.
К чистому коду через рефакторинг
Чистые функции
— это такие методы, при выполнении которых не возникает побочных эффектов. В функциональном программировании чистые функции — скорее правило, чем исключение. Но в большинстве объектно-ориентированных языков с ними приходится сталкиваться нечасто, или, как минимум, они редко считаются предпочтительным вариантом. В дотнет-среде серьёзный акцент делается на внедрении зависимостей и более-менее обширных абстракциях, использующих интерфейсы.В данной статье будет продемонстрировано, как перейти от базы кода, характеризующейся значительной опосредованностью такого рода, к более простой версии, из которой большей частью удалена избыточная сложность.
Валидация модели данных в ASP.NET Core 8.0 на основе HTMX

Валидация данных на стороне сервера с HTMX 2.0. Разбираемся с валидацией модели данных на основе платформы ASP.NET Core.
В статье мы освоим базовую реализацию валидации данных на стороне сервера. На стороне сервера мы используем самый простой способ коммуникации - HTTP.
EnJoyTheVR: доступная виртуальная реальность на базе смартфонов

Всем привет! Меня зовут Евгений, я разработчик приложения EnJoyTheVR – приложения, которое позволяет погружаться в виртуальную реальность с 6DOF отслеживанием движений головы и рук прямо через ваш смартфон. В этой статье хотел бы рассказать о проекте, его задумке, этапах разработки, а также поделиться положительными и отрицательными моментами.
Сейчас почти каждый знает, что такое VR, но не у всех есть возможность приобрести дорогостоящее оборудование для полного погружения в виртуальную реальность. Уже давно существует такая штука, как Google Cardboard, но большинство приложений, созданных под него, обладают ограниченным функционалом — они предлагают лишь базовое отслеживание головы и зачастую простое взаимодействие. В отличие от них, EnJoyTheVR предоставляет полноценное 6DOF-отслеживание как головы, так и рук, что делает опыт гораздо более реалистичным и насыщенным.
Именно эта идея и легла в основу моего школьного проекта :) Посмотрим, насколько удалось ее реализовать.
Гибкая фильтрация EFCore с помощью Expression
Фильтрация данных в EntityFramework — это довольно простая задача, которую можно легко решить с помощью метода Where()
в LINQ. Однако если поля для фильтрации как и значения приходят к нам динамически, и тем более если фильтровать приходится по вычисляемым в рантайме значениям - возникают некоторые трудности с их обработкой. В статье рассказываю как я делал динамическую фильтрацию по вычисляемым в рантайме полям с помощью Expression trees и EntityFramework.
Как сократить размеры логов без потери функциональности

Разработчики периодически разрываются между желанием логировать как можно больше информации и необходимостью сделать объём логов разумно компактным.
Когда речь идёт о небольшом локальном сервисе с нагрузкой 10 запросов в день, можно позволить себе писать в логи всё: от полного текста запроса до полного текста ответа с кучей промежуточной информации (что пришло из базы, какой запрос послали во внешний сервис и что получили в ответ и т.д.). Когда же речь об относительно высоконагруженном сервисе, обрабатывающем порядка 1000 rps даже малая часть этой информации за пару дней запросто может вызвать переполнение современного жёсткого диска.
Возникает логичный вопрос: как логировать только нужную информацию?
Что нового в Unity 6? Обзор нововведений и ошибок в исходном коде

Наконец, состоялся релиз Unity 6! Разработчики называют эту версию самой стабильной версией за всё время существования движка. Почему бы нам не убедиться в этом с помощью статического анализатора кода? А заодно проведём краткий обзор основных фич и улучшений, привнесённых обновлением.
Как сделать управление персонажем в Unity – урок для детей и подростков

Сегодняшний урок подойдет для ребят 10–14 лет с минимальным опытом. Благодаря пошаговой инструкции можно разобраться в управлении персонажами на простых примерах и понять, как работать с некоторыми важными инструментами среды Unity.
Платформа «Юнити» предназначена для разработки игр. Она обрела популярность и стала востребованной благодаря ряду известных проектов, скажем, Pokémon GO с аудиторией более 65 млн игроков в месяц.
Сегодня хотим рассказать, как сделать движение персонажа в Юнити. Чтобы разобраться в этом, давайте изучим наглядную пошаговую инструкцию: в ней представлено описание основных действий и представлены картинки для простоты восприятия. В конце опубликовали видео: ролик поможет, если текстовый гайд покажется сложным.
Готовы? Тогда поехали. Впереди 3 интересных и важных шага.
Реализуем паттерн Unit of Work в ASP.NET Core

Привет, Хабр!
Сегодня разберём, как реализовать паттерн Unit of Work в ASP.NET Core. Вместо долгих теоретических рассуждений, посмотрим, зачем он вообще нужен, и как правильно его применить на практике.
Нейросети против Тинькоф-контеста

Недавно я проходил контест задач от т-банка и это было не слишком сложно, поэтому я решил посмотреть, как наши нейросети, а именно GigaChat от сбера и алиса от яндекса(платная версия), справятся с ними...
Ближайшие события
Исходный код на прощание: разбор ошибок в проектах закрывшейся инди-студии

Инди-студия StarlightLabsCo закрылась, а разработчик и её основатель Харрис Ротаермель опубликовал исходный код своих проектов. Теперь желающие могут улучшать эти проекты или разрабатывать на их основе новые. Мы решили не оставаться в стороне и решили поискать ошибки в его проекте.
Экспорт данных из базы данных в Excel на C#: 5 проверенных методов

Экспорт данных из базы данных в Excel - важнейшая задача для многих организаций, позволяющая пользователям легко анализировать, визуализировать и обмениваться информацией. Этот процесс обеспечивает беспрепятственный перенос данных, сохраняя целостность и структуру исходного набора данных и предоставляя удобный для пользователя формат.
В этой статье я расскажу о пяти уникальных подходах к экспорту данных из базы данных MySQL в файл Excel, используя различные библиотеки C# Excel. Я также приведу краткое сравнение этих библиотек, подчеркнув их особенности, производительность, цену и другие важные моменты.
Название имеет значение: как отладить Blazor WebAssembly приложение, переименовав браузер
У нашей команды появилась необходимость отлаживать Blazor WebAssembly приложения в Яндекс.Браузере. Но возникла проблема: Visual Studio упорно не хотел вставать на точки останова. Таких проблем не было ни с Edge, ни с Chrome, хотя все три браузера основаны на Chromium. Полез разбираться, как и что там происходит, хотя в успех особо не верил.
ConcurrentBag в C#

Привет, Хабр!
В многопоточном программирование постоянно нужно решать задачи, связанные с доступом к данным из нескольких потоков одновременно. И тут очень кстати ConcurrentBag — коллекция, которая была добавлена в .NET Framework 4.0 специально для таких случаев. Она подходит для ситуаций, где порядок элементов не важен. Если нужно просто кидать данные в мешок, пока куча потоков их туда же добавляет.
Поэтому ConcurrentBag создана для сценариев, где один и тот же поток часто и добавляет, и извлекает данные. Поэтому эта коллекция идеальна для паттернов типа Producer-Consumer, где один поток наполняет коллекцию, а другой извлекает данные для дальнейшей обработки. Но самое классное, что работает она по принципу work-stealing.
Осваиваем Playables API для анимации в Unity

Думаю, многим, кто работает с Unity, приходилось работать с анимациями. После кропотливой работы с аниматором, на выходе получалось такое:
Как я переходил с Built-In на URP в Unity и обратно с помощью Chat GPT
Недавно я решил перевести свой проект с классического Built-In рендеринга на URP (Universal Render Pipeline) в Unity. Как и многие разработчики, я был вдохновлён обещаниями улучшенной производительности и современного внешнего вида графики, особенно для мобильных устройств. Однако, после нескольких дней экспериментов, я был вынужден вернуться обратно на Built-In Pipeline. В этом процессе мне активно помогал Chat GPT, который стал настоящим ассистентом и даже спасителем в самых сложных ситуациях. Вот мой опыт и основные причины, которые привели меня к возврату на старую систему.
Пул объектов и фабрика в Unity. От теории к практике

Всем привет, сегодня вместе с вами попробуем разобраться, что такое фабрика, пулы объектов и как с ними работать. Ну и напишем код, который можно будет переносить между вашими проектами.
Вклад авторов
sidristij 1681.2SergVasiliev 1163.0olegchir 1001.8Stefanio 735.2n0mo 667.0sahsAGU 656.0marshinov 654.6tguev 652.6kekekeks 623.4DreamWalker 566.0