Как стать автором
Поиск
Написать публикацию
Обновить
107.17

.NET *

Хаб со знаниями про .NET

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

Автомаппер для бедных

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров8.4K

После первого знакомства с библиотекой AutoMapper многие испытали вау-эффект. Круто, можно маппить обьекты, можно писать запросы поверх DTO (проекции) и все магическим образом работает (ну или приходится верить, что работает). Это ли не чудо?

Однако, с опытом, стали очевидны недостатки использования этой библиотеки и их достаточное количество. А что если обойтись без автомаппера?

Читать далее

Подключаем SignalR к Unity

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

Часто в играх необходимо получать обновления игрового баланса, обновлять профиль игрока, сохранять достижения и выдавать награды. Если хранить данные прямо в клиенте, то придется ждать публикации нового патча командой. Как более гибкое решение - получать конфигурацию и ресурсы для игры с внешнего сервера. В посте рассмотрим как можно из клиента Unity подключиться к простейшему сервису для получения от него сообщения. Для реализации сервиса возьмем библиотеку SignalR.

Читать далее

UI Роутер в Unity

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

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. Обсуждая по работе архитектуру речь зашла про UI. Есть много разных подходов к тому как работать с графическим пользовательским интерфейсом в Unity. Хотелось предложить один вариант реализации переходов по интерфейсу плюс заодно показать пример использования атрибутов и рефлексии в C#.

Читать далее

Наш опыт в распознавании наличия подписи на .NET + EmguCV (OpenCV). Ч. 2

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

Привет, Хабр! Это продолжение статьи о нашем опыте распознавания подписей. В ней мы рассказывали о первой итерации нашего алгоритма распознавания, полагающегося на поиск контуров прямоугольника, в котором должна была располагаться подпись. Запущенный на бою алгоритм успешно обрабатывал немногим меньше 80% документов. Однако мы на этом не остановились, так как одним из предъявляемых к нам требований была отметка в 95%.

Читать далее

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

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

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

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

Читать далее

iPad Pro M1 не создан для работы с видео на YouTube и RuTube, смотреть можно, а работать нет

Время на прочтение3 мин
Количество просмотров13K
Работаю на стационарных машинах, MacBook использовал как походный инструмент, но у «МакБука» есть один минус, который меня раздражает — это затирка дисплея от клавиатуры. Раньше это решалось просто — раз в год менял на новый, до момента сильной затирки. Думаю, что я мучаюсь? Вышел iPad Pro на M1 — это же решение! Тогда я не знал, что мобильная iPadOS — это не то, что мне нужно.

image

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

Интегрированный чат в 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

Читать далее

Опыт создания сценариев в платформе электронной коммерции Virto Commerce с «Low Code» сервисом Azure Logic Apps

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

Low code development — это претендующий на тренд подход к созданию и настройке приложений. Считается, что здесь не требуется глубокого знания языков программирования. Платформы Low code используют визуальные интерфейсы для построения алгоритмов,подобно конструктору Lego. В этой статье — общие понятия о Low code development и пример интеграции программного обеспечения middleware на платформе электронной коммерции Virto Commerce, используя Azure Logic Apps.

Читать далее ...

Сравнение RPA от UiPath и ROBIN 2.0 как способ полюбить российское ПО

Время на прочтение5 мин
Количество просмотров7.2K
Принято считать, что российское ПО традиционно уступает западным программам. Для многих это если не аксиома, то достаточно давно доказанная теорема. В особенности, когда речь идёт о корпоративных продуктах. Я был также уверен в этом и считал, что в большинстве случаев российские продукты корпоративного уровня делают для госсектора. Т.е. для того, чтобы выполнить требования по импортозамещению. Так было до недавнего времени, когда в моей компании не понадобилось автоматизировать рутинные процессы и я не озадачился выбором RPA.

Под катом хочу поделиться результатами анализа, который мы провели с коллегами. Статья не претендует на детальный сравнительный обзор, скорее кейс по выбору RPA под конкретные требования, который познакомит с некоторыми востребованными сегодня функциями таких платформ.
Читать дальше →

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

CI/CD для Dynamics CRM на базе Azure DevOps. Часть 2. Continuous Deployment

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

В прошлой статье я рассказал как собрать CI часть пайплайна непрерывной поставки CI/CD на базе Azure DevOps Pipelines для Microsoft Dynamics CRM. Сегодня же поговорим о CD (Continuous Deployment) части.

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

Автоматическое управление номером версии c помощью Azure DevOps

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

В этой статье я расскажу, как мы организовали последовательное автоматическое увеличение номера версии приложения при выполнении коммита в ветку main с помощью Azure DevOps Pipeline.

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

Читать далее

Регистрируйтесь на закрытое тестирование Visual Studio 2022 for Mac

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

Сегодня мы приглашаем вас опробовать Visual Studio 2022 для Mac, ведь мы представляем нашу первую предварительную версию. Это первый выпуск нашей .NET IDE с полностью обновленным пользовательским интерфейсом macOS. Мы будем рады, если вы скачаете его, опробуете и поделитесь своими отзывами, чтобы помочь нам сформировать следующий крупный выпуск Visual Studio для Mac.

Зарегистрируйтесь сейчас!

Предварительную версию Visual Studio 2022 для Mac можно установить вместе с более ранними версиями Visual Studio для Mac, и ее можно использовать бесплатно.

Наша цель в Visual Studio 2022 для Mac - создать современную среду разработки .NET IDE, адаптированную для Mac, которая обеспечит продуктивную работу, которая вам так полюбилась в Visual Studio.

Читать далее

Обновления .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.

Читать далее

Возможные неопределенности в карьере программиста. Часть 2

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

Доброго времени суток, Хабровчане!

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

Что начал делать Ваня чтобы повысить свои навыки? Как прошел интервью в новую компанию? Обо всем по порядку.

Читать далее

Cоздание переиспользуемых Linq фильтров (построителей предикатов для Where), которые можно применять для разных типов

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

Способ создания переиспользуемых Linq фильтров (построителе предикатов для условия Where), которые можно применять для разных типов объектов. Поля объектов для фильтрации указываются с помощью MemberExpression.

Способ подходит для Entity Framework, включая Async операции.

Читать далее

Обновление Angular Language Service для Visual Studio

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

В августе прошлого года команда инструментов JavaScript/TypeScript выпустила Angular Language Service для пользователей Visual Studio. Этим мы хотели обратиться ко многим пользователям ASP.NET/ASP.NET Core, которые создают свои клиентские проекты с помощью Angular. Хотя это расширение вызвало много хвалебных отзывов, не для всех пользователей оно было таким удобным. Мы хотим, чтобы вы знали, что мы вас услышали и внесли некоторые изменения. Немного подробностей под катом.

Читать далее

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