Обновить
137.68

C# *

Объектно-ориентированный язык программирования

Сначала показывать
Период
Уровень сложности

Как построить управление анимациями персонажа в Unigine

Время на прочтение5 мин
Количество просмотров2.7K

Всем привет, не так давно я перешел на Unigine, и хотел бы поделиться опытом создания системы анимаций персонажа, так как релевантных материалов по теме как-то не нашлось, а примеры разработчиков мне показались чересчур сложными. Пример будет написан на C#.

Читать

PowerShell, HTML Agility Pack: получение значения атрибута HTML-элемента

Время на прочтение8 мин
Количество просмотров1.5K

Рассмотрено два способа получения значения атрибута HTML-элемента на HTML-странице в скрипте на языке PowerShell с помощью методов объектов из библиотеки HTML Agility Pack.

Показан прямой доступ к значениям атрибутов с помощью выражения вида $node.Attributes. Далее большая часть статьи посвящена методам GetAttributeValue из библиотеки HTML Agility Pack. Освежаю в памяти, что такое «полиморфизм» и как он реализован в библиотеке для данного метода. Также будет немного затронуто понятие «обобщенного метода» («generic method») в языке C#.

Читать далее

Как фидбек помог улучшить наш C++ квиз

Время на прочтение3 мин
Количество просмотров2.1K

Ранее в нашем блоге мы рассказывали о квизе для C++ разработчиков. С момента запуска мы тщательно собирали обратную связь. Часть из неё касалась ошибок в работе квиза, которые мы естественно решили исправить.


0985_fix_the_quiz_ru/image1.png

Читать дальше →

Гадание на кишках или визуализация спринтов

Время на прочтение2 мин
Количество просмотров2.9K

Всем привет! В данной статье я расскажу о том как забавы ради сделал простенькую визуализацию спринтов из джиры. Кто не любит читать много букв может сразу посмотреть на результат или же на исходники.

Читать далее

Иммутабельность в C#

Время на прочтение13 мин
Количество просмотров25K

В разработке программного обеспечения иммутабельным (immutable — неизменяемым) называется объект, который после своего создания не может быть изменен. Зачем вам может понадобиться такой объект? Чтобы ответить на этот вопрос, давайте проведем анализ проблем, которые могут возникнуть в результате мутации (изменения) объектов. Вернемся к основам того, что делает каждое приложение: создает, извлекает, обновляет и удаляет данные (CRUD-операции). Ядро любого приложения манипулирует объектами. Ответ на вопрос о том, работает ли приложение в соответствии со своей спецификацией, в первую очередь определяется правильностью обработки данных. Вам необходимо быть уверенными, что код работает правильно, каждый раз, когда он затрагивает какой-либо объект. 

Но что, если бы существовали объекты, которые не могли бы изменяться? Исходя из вышеизложенного, очевидно, что если объект не может измениться, то либо не будет кода, пытающегося изменить его, либо, если такой код все-таки написан, он не будет работать.

Если ваше приложение является многопоточным, иммутабельность должна быть фундаментальной частью вашей архитектуры, поскольку неизменяемые объекты по своей природе являются потокобезопасными и невосприимчивыми к состояниям гонки. Если ваше приложение использует data transport objects (DTO — объекты передачи данных), вам также следует серьезно подойти к иммутабельности ваших объектов. Предметом дискуссий остается лишь то, как наиболее эффективно реализовать и работать с иммутабельными объектами, поскольку C# не предлагает встроенной поддержки таких объектов. Эта статья предлагает ответ на этот вопрос.

Читать далее

Интерфейсы в C#: зачем они нужны?

Время на прочтение10 мин
Количество просмотров43K

Интерфейсы — одна из самых важных фич в C# для реализации объектно-ориентированного программирования в целом. Однако, основываясь на моем опыте чтения онлайн-статей об интерфейсах (включая и книги по программированию), я могу с уверенностью сказать, что в большинстве случаев в этих статьях подробно раскрывается вопрос, как использовать интерфейсы, но очень скупо — зачем.

Поэтому сегодня я хочу поделиться с вами своим опытом. А именно — чем интерфейс так полезен в повседневной разработке.

Читать далее

Архитектура платформы для проектирования интерактивного видеоконтента

Время на прочтение9 мин
Количество просмотров2.3K

Интерактивный видеоконтент позволяет своим зрителям взаимодействовать с контентом и влиять на дальнейшее его повествование. Это уникальное направление видеоконтента, которое активно развивается в последнее время в различных сферах.

В данной статье мы хотим поделиться опытом создания платформы для проектирования интерактивного видеоконтента.

Use-case

Для формализации функциональных требований применяются диаграммы использования (use-case). Диаграмму вариантов использования есть смысл строить во время изучения технического задания, она состоит из графической диаграммы, описывающей действующие лица и прецеденты (варианты использования - сервисы, которые наша система предоставляет акторам), а также спецификации, представляющего собой текстовое описание конкретных последовательностей действий (потока событий), которые выполняет пользователь при работе с системой. 

Прецеденты нашего пользователя:

Читать далее

Пример микросервисной архитектуры с Saga на MassTransit

Время на прочтение9 мин
Количество просмотров22K

Привет, Хабр! В общем работаю я значит Архитектором Программных Решений. Мы тут монолиты на микросервисы переводим поэтому я решил для наших разработчиков написать пример проекта с сагой и за одно может оно и вам понадобиться поэтому выложил сюда. Статья будет дополняться по мере поступления вопросов от вас и от наших разработчиков

Читать далее

Утилизация «мусорщиком» сессий с истекшим сроком годности

Время на прочтение11 мин
Количество просмотров3.7K

Соглашаясь с мнением, что stateful-сервер ограничен в масштабируемости, всё же считаю, что инструмент должен соответствовать задаче. Для высоконагруженной системы с миллионами запросов в секунду важна распределённость, но за неё мы платим необязательностью предоставления актуальных данных в конкретный момент. Ни того ни другого нельзя сказать о системе, в которой при самых оптимистичных предположениях будет работать сотня операторов.

Так что предположим, что запрос на полноценные сессии всё же имеется. И эти сессии надо как-то утилизировать после окончания их срока жизни. Навскидку можно предложить следующие решения.

Запуск параллельной задачи при очередном запросе с клиента.

Запуск специального потока.

Использование таймера.

Всё же осмелюсь предложить ещё одну идею.

Обновление: благодарю @Politura - комментарий о MemoryCache оказался очень полезным! Проверил и решил так и сделать.

Читать далее

Поиск случайной точки на PolygonCollider2D Unity

Время на прочтение3 мин
Количество просмотров3K

В этой статья я расскажу, как найти случайную точку на многоугольнике с очень странной формы без циклов!

Узнать

RabbitMQ в ASP.NET Core. Быстрый старт

Время на прочтение7 мин
Количество просмотров77K

RabbitMQ – это брокер сообщений, служба, отвечающая за обмен сообщениями между разными программными сервисами.

RabbitMQ держит сообщения в очереди (Queue), которая является именованным буфером, хранящим адресованные ему сообщения.

Программа, посылающая сообщения в очередь RabbitMQ, называется поставщиком (Producer).

Программа, принимающая сообщения, называется подписчиком (Consumer). Такие программы подписываются на события поступления сообщения в очередь, и всегда находятся в ожидании новых сообщений.

Множество поставщиков могут отправлять сообщения в очередь, и множество подписчиков могут считывать сообщения из очереди.

Читать далее

Проверка контрагентов. Парсинг fedresurs

Время на прочтение6 мин
Количество просмотров6.9K

В этой статье хочу познакомить читателя с таким ресурсом, как «Единый федеральный реестр сведений о фактах деятельности юридических лиц» (fedresurs.ru), рассказать о его применимости и показать возможность прошерстить ресурс не руками по большому количеству клиентов, а с использованием C# (в вашем случае можете использовать любой другой язык, который вам нравится, подходы, думаю, не изменятся) и море проксей, ну разумеется будем парсить. Возможно, тем кто этим займется, пригодятся статья, идеи или, чем черт не шутит, куски кода, а тем, кто просто проводит проверку контрагентов сможет либо понять, что можно взять с сайта либо придумает, что можно еще проверить.

Периодически возникает потребность в получении данных для анализа клиентов/заемщиков/контрагентов и эти данные мы можем получить из этого сайта. Что же нам предлагается?!

Возникновение обременений (залог, лизинг и т.д.) – посмотреть, например, на возможность заключения фиктивных договоров лизинга или на уже заложенное имущество и т.д.

Различные сообщения по клиенту, например, сообщения о банкротстве и уже с ними – проверка, все ли сообщает клиент и может пора пошевелиться в сторону него и предпринять какие-либо меры.

Торги и т.д.

Читать далее

Интегрированный чат в Live Share для Visual Studio 2022

Время на прочтение1 мин
Количество просмотров2.3K

В нашей популярной фиче Live Share, доступной уже несколько лет в Visual Studio, не было чата... до сегодняшнего дня! Теперь, если есть такая необходимость, вы можете в live-режиме обсуждать с коллегами в чате работу над кодом. И для этого больше не обязательно созваниваться.

Читать далее

Ближайшие события

Что такое AddScoped и его отличие от AddTransient в .NET и ASP.NET

Время на прочтение6 мин
Количество просмотров11K

Всего есть 3 типа жизни (ServiceLifetime) экземпляра:

Singleton - одиночка, создается один раз и используется во время использования всего процесса, метод .AddSingleton<T>().

Transient - временный, создается каждый раз при запросе его из провайдера, метод .AddTransient<T>().

Scoped - ограниченный, новый экземпляр создается в определённой области видимости (scope) в интерфейсе IServiceScope. Добавляется методом .AddScoped<T>().

Ссылка на картинку: https://stackoverflow.com/a/64776798

Читать далее

AltUnity Tester для автоматизации Unity проектов

Время на прочтение3 мин
Количество просмотров6.2K

AltUnity Tester - это инструмент автоматизации тестирования на основе пользовательского интерфейса с открытым исходным кодом, который помогает находить объекты в вашей игре Unity и взаимодействовать с ними с помощью тестов, написанных на C #, Python или Java.

Читать далее

Мониторинг и наблюдаемость в облачных приложениях ASP.NET Core

Время на прочтение5 мин
Количество просмотров5.7K

Распределенные приложения сложны и влекут за собой свой собственный караван трудностей с отладкой и исправлением проблем в продакшене. Хотя микросервисная архитектура и дает возможность справляться силами меньшей команды, которая работает автономно и фокусируется на разных областях бизнеса, из-за своего распределенного характера она подкидывает нам новые проблемы. Например, в случае возникновения проблемы во время бизнес-транзакции, запрос необходимо отслеживать от начала и до конца, что может охватывать несколько служб и инфраструктур. Некоторые из трудностей таковы:

Читать далее

Обновления .NET за июль 2021 – 5.0.8 и 3.1.17

Время на прочтение1 мин
Количество просмотров4.1K

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

Вы можете скачать версии 5.0.8 , 3.1.17 для Windows, macOS, и Linux, для x86, x64, Arm32, и Arm64.

Читать далее

Как обновить все сцены в Unity за один клик? Автоматизируем рутину

Время на прочтение20 мин
Количество просмотров6.8K

Надоело тратить часы за обновлением уровней в Unity? Давайте автоматизируем это!

В этой статье мы напишем простой и понятный инструмент, благодаря которому вы сможете делать всё, что вам угодно, за считанные клики: сериализовать поля, менять иерархию на сценах, настраивать Fuse/IClone/DAZ и других персонажей, добавлять новые префабы, менять интерфейс и многое другое!

Погнали!

Тир. Стрельба рейкастами на Unity 3D

Время на прочтение6 мин
Количество просмотров17K

В этом проекте рассмотрим процесс работы:

с рейкастами и векторами;
с методами других пользовательских классов;
с AudioSource и с Rigidbody через код;
три основных составляющих выстрела, психологически действующих на игрока (звук, свет и свечение, анимация и след от выстрела);
инстанцирование префабов.

Читать далее

Как проходить собеседования на Unity разработчика

Время на прочтение7 мин
Количество просмотров80K

Собеседование на юнити-разработчика состоит в основном из трёх частей. Процесс выглядит практически один в один как и на любую другую техническую специальность в IT. Сначала собеседование с HR или рекрутером, потом техническое интервью с Team Leader команды разработки. В конце, если предыдущие этапы успешно пройдены, вас ждет финальный босс - Project Manager(или Product Owner). Эта статья будет полезна для джунов и мидлов, а также людей которые недавно познакомились с Unity. Бородатые синьоры и лиды - буду рад увидеть от вас в комментариях ваш опыт.

Читать далее

Вклад авторов