Все потоки
Поиск
Написать публикацию
Обновить
269.12

C# *

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

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

Xamarin.Forms — определение координат нажатия на экран

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

Некоторые элементы управления в приложении могут реагировать на жесты - например кнопки, CollectionView, выезжающее сбоку меню у FlyoutPage. Ещё есть распознаватели жестов (GestureRecognizers), которые можно добавить элементам управления, не умеющим реагировать на касания. Можно использовать эффекты (Effects).

Но иногда надо узнать о касании в любом месте экрана и координаты этого касания. Например, для рисования пальцем или для написания пользовательских элементов управления. На андроид и iOS есть способ это сделать при помощи DependencyService. Это странно, но часть такого полезного и можно сказать базового функционала надо писать самому или покупать (https://www.mrgestures.com/).

Читать далее

Чем опасны уязвимые зависимости в проекте и как с этим помогает SCA?

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

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

Читать далее

Unity3d: Как сделать дверь с полного нуля

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

Начинающий разработчик часто задается вопросом: а как сделана та или иная вещь в игре? Даже на первый взгляд простые вещи такие как дверь вызывают затруднения, поэтому сегодня разберем то, как можно создать автоматизированную дверь в Unity с полного нуля.

Читать далее

Поваренная книга миграции данных между БД или как перенести данные из одной БД в другую с минимальной болью V1.1

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

Одно я могу сказать точно: миграция данных между двумя БД - это одна из, если не самая сложная часть при смене СУБД или схемы базы данных. И что-то мне подсказывает, что Вы не фанат громоздких, чрезвычайно трудно отлаживаемых, SQL конструкций.

Читать далее

Две главные ошибки при использовании MediatR

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

MediatR является, безусловно, очень успешным и популярным open-source проектом, который глубоко проник в недры коммерческой разработки. Однако, сколь популярен инструмент столь много способов его применения рождается среди сообщества. В этой статье я покажу два самых главных способа использовать этот инструмент неправильно вместе со способами решения проблемы

Читать далее

Модульное тестирование унаследованного кода

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

Если вы уже устали читать статьи о том, как применять модульное тестирование в новых приложениях, в то время как ваша жизнь в основном занята расширением и улучшением унаследованного кода – изложу вам план, который (наконец-то) поможет воспользоваться возможностями автоматизированного тестирования при работе с имеющимися приложениями. Это проще, чем кажется, особенно, если вы переложите на Visual Studio и JustMock всю тяжелую работу.

Люблю читать статьи о том, как приступить к автоматизированному модульному тестированию, потому что они полностью оторваны от реальности. Во всех таких статьях предполагается, что вы выстраиваете некое свежее приложение с чистого листа, но такого – будем честны – практически не бывает. Все мы знаем, что от 70% до 90% времени разработчика тратится на улучшение, расширение, модификацию и (иногда) исправление приложений, которые уже работают в продакшене. А я еще я добавлю, что никто не захочет вам платить за обвязку модульными тестами таких «уже существующих/унаследованных» приложений.

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

Читать далее

Парсинг сайта Госзакупок (ЕИС закупки)

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

Для оценки контрагента довольно полезную информацию можно получить с сайта «ЕИС закупки», в частности из реестра недобросовестных поставщиков. Расскажу, как быстро проверить контрагентов, имея список ИНН.

Читать далее

Давай дружить. OpenId Connect и Yarp

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

Сегодня в этой статье я хочу поделиться личным опытом работы и решением конкретного кейса. Как подружить сервер авторизации на протоколе OpenId Connect и веб-приложения, накрытых обратным прокси-сервером YARP.

Читать далее

Кривые и что это такое

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

Всем привет!
Итак, тема статьи - кривые, их разбор, собственные примеры и как их можно использовать в геймдев.

Читать далее

Как подружить MATLAB DLL и C#

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

Когда есть желание пользоваться m-файлами на стороне, например, впихнуть хорошо работающие методы аппроксимации из Curve Fitting Toolbox в какую нибудь стороннюю свою разработку, можно скомпилировать dll-библиотеку и использовать ее по своему разумению.

Данная статья - кратко по шагам действия.

Читать далее

Секреты .Net-приложения в Яндекс.Облаке: Lockbox

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

Наверное, в любых проектах есть необходимость использования различных секретных данных - строки подключения к БД, АПИ-ключи внешних сервисов и т.д.. К сожалению, до сих пор далеко не всегда разработчики заботятся о соответствующей защите этих данных: на прошлой неделе Гитхаб даже выкатил функцию push protection, чтобы у пользователя был ещё один рубеж защиты от проникновения этих данных в репозиторий.

Несмотря на то, что на рынке довольно много облачных сервисов для хранения и управления секретами, ввиду их зарубежного происхождения с недавних пор их использование стало затруднительно. Но мы не унываем, потому что на наших просторах появился Яндекс.Облако Локбокс.

Давайте добавим работу с секретами из Яндекс.Облака в .Net Core приложение в виде одного из источников конфигурации.

Интересненько

Как пользоваться Microsoft Dataverse Web API и не плеваться

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

Обычно для решения рабочих задач хватает примера кода из своего или соседнего проекта. Дополнительные сведения можно найти на страницах официальной документации, в профильных блогах или на StackOverflow. Но вот про реализацию работы Azure Functions c базой данных Dataverse, которая относится к облачной Power Apps (часть Power Platform), вы найдете крупицы информации.

Автор этой статьи – Борис Шимберев, .NET-разработчик в EPAM. Борис на практике разобрался со всеми мыслимыми и немыслимыми проблемами, с которыми можно столкнуться при работе с Microsoft Dataverse. В статье он рассказывает об особенностях использования этой СУБД и делится полезными находками.

Читать далее

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

Координаты курсора сцены в редакторе

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

Очень давно была необходимость отображать координаты курсора в редакторе сцены. Unity, на сколько я понимаю, до сих пор этого не умеет. Написал давно. Выглядит просто. Сегодня в очередной раз пригодилось, так как нужно было половить пиксели на сцене в режиме паузы.

Читать далее

Повысьте свою продуктивность с помощью расширений Productivity Power Tools в Visual Studio 2022

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

Visual Studio 2022 уже здесь, и ее можно настраивать еще удобнее, чем когда-либо. Однако этот опыт может быть неполным без необходимых расширений, которые вы знаете и любите. Поскольку существующие расширения продолжают переноситься, мы рады сообщить, что один из самых популярных и ожидаемых наборов расширений теперь доступен для загрузки: инструменты повышения производительности для Visual Studio 2022!

Пакет Productivity Power Tools (PPT), разработанный командой VS, представляет собой набор расширений, которые повышают вашу общую продуктивность и эффективность в Visual Studio. Этот пакет расширений бустит вашу продуктивность с самого начала, позволяя установить весь пакет сразу, а не по отдельности. Не уверены, подходят ли вам расширения PPT? Давайте посмотрим на некоторые расширения пакета, которые могут сэкономить ваше время и снизить утомление при работе в VS.

Read more

Производительность средства выделения объектов .NET

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

С выпуском Visual Studio 16.10 появился новый механизм анализа для профилировщика производительности, при этом .NET Object Allocation Tool (средство выделения объектов .NET) стало первым встроенным инструментом. Это дает инструменту некоторые новые функции и значительное повышение производительности. Попробуйте это в своем приложении C# и посмотрите, какие ложные выделения вы можете удалить, чтобы ускорить работу вашего приложения.

Читать далее

Шаблоны, или что общего у приходного кассового ордера и метода ToString()

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

Задачу генерации текстовых строк по шаблону никак нельзя назвать новой, даже с натяжкой. Сюда можно отнести и заполнение стандартных форм наподобие приходных кассовых ордеров, и экспорт XML/JSON во внешние системы, когда состав данных меняется реже формы их представления. Если основательно задуматься в момент натягивания совы на глобус, то в ту же категорию можно отнести и задачу формирования отчетов, и настраиваемые реализации метода ToString(), и… да много еще чего.

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

В общем, оставим сову в покое и признаем, что в некоторых случаях шаблоны – это хорошо. А вот что нам может предложить .NET для того, чтобы воспользоваться преимуществами этой идеи?

Действительно, что?

Microsoft Build 2021 — прямая трансляция на русском языке (начало в 18:45 МСК)

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

Конференция Build – ключевое событие года для Microsoft. На мероприятии выступают первые лица компании, в том числе, ее глава Сатья Наделла. Они анонсируют глобальные планы на ближайшее будущее, рассказывают о новых продуктах, технологиях и инновационных разработках.

Заглядывайте под кат, там вы найдёте плеер трансляции!

Вы также сможете записаться на индивидуальную консультацию во время мероприятия, чтобы получить ответы на интересующие вас технические вопросы. Регистрация бесплатна. Зарегистрироваться на Build 2021: https://mybuild.microsoft.com/home

Читать далее

Что из себя представляет класс Startup и Program.cs в ASP.NET Core

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

Program.cs — это место, с которого начинается приложение. Файл Program.cs в ASP.NET Core работает так же, как файл Program.cs в традиционном консольном приложении .NET Framework. Файл Program.cs является точкой входа в приложение и отвечает за регистрацию и заполнение Startup.cs, IISIntegration и создания хоста с помощью инстанса IWebHostBuilder, метода Main.

Global.asax больше не входит в состав приложения ASP.NET Core. В ASP.NET Core заменой файла Global.asax является файл Startup.cs. 

Файл Startup.cs - это также точка входа, и он будет вызываться после выполнения файла Program.cs на уровне приложения. Он обрабатывает конвейер запросов. Класс Startup запускается в момент запуска приложения.

Читать далее

Модифицируем паттерн Filter с помощью обобщенных лямбда-выражений

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

Мы можем оптимизировать паттерн Pipeline & Filter (конвейер и фильтры), сократив количество кода, необходимое на его реализацию, используя лямбда-выражение (упрощенную запись анонимных методов) в качестве конкретного условия фильтрации. В качестве примера для демонстрации этой концепции, было выбрано WPF-приложение с пользовательским интерфейсом. Вот его исходный код.

Читать далее

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