Интеграция с Яндекс Метрикой и выгрузка данных .NET

В этой статье рассмотрим пример реализации .NET сервиса для работы с API Яндекс Метрики, включая авторизацию, получение данных и их синхронизацию с БД.

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

В этой статье рассмотрим пример реализации .NET сервиса для работы с API Яндекс Метрики, включая авторизацию, получение данных и их синхронизацию с БД.

Рано или поздно каждый программист должен задуматься о вопросах архитектуры приложения. Архитектура это про выделение ответственностей, определение компонентов их реализующих и связей между ними. Начинается все с ответственностей, а грани тонки. Очень часто будет сложно определить где начинается одна роль и заканчивается другая, сформулировать признаки по которым мы разделяем. Человеку требуются ориентиры, точки опоры и чем проще тем лучше.

В этой статье я расскажу о том, как я создал систему безопасности для своего проекта. Здесь я описываю этапы реализации, проблемы которые я решил, и как я устранил обнаруженные уязвимости.

В этой статье мы поговорим о математических основах вращения объектов, Эйлеровых углах и проблематике их использования, а также о Кватернионах и причинах выбрать Кватернионы перед Эйлеровыми углами.

C# — один из самых популярных языков программирования, используемый для разработки приложений, веб-сервисов и игр. В этой статье мы заглянем в его историю: рассмотрим ключевые изменения от версии к версии и различные инструменты, без которых C# трудно представить.
Привет, Хабр! Меня зовут Никита, мне 14 лет, и я владелец телеграмм канала NikitaTech Nexus. С детства мечтал создавать игры, но со временем мои амбиции выросли - теперь я планирую разрабатывать не только игры, но и серьезные десктопные приложения. В этой статье хочу поделиться своим прогрессом, текущими проектами и планами на будущее.

Рассказываю чем заменить Swashbuckle, который убрали из .Net 9, для создания страницы похожей на Swagger UI.

Dependency Injection (или DI) — концепция, которая настолько естественно вплелась в повседневную практику программирования, что, кажется, её игнорирование можно смело записать в список смертных грехов наравне с отсутствием контроля версии. Но почему же DI стал столь важным?
DI — это один из ключевых принципов, позволяющих создавать гибкие и сопровождаемые приложения. Философия подхода заключается в том, чтобы избавить код от ненужных деталей, которые связывают логические компоненты приложения слишком плотно. Компоненты перестают быть зависимыми от конкретных реализаций других частей системы — они лишь говорят, что им требуется, а DI предоставляет необходимые зависимости.
Теперь о цели: DI — это вовсе не про навык освоения модной технологии, а про универсальный архитектурный инструмент, понятие которого пересекается в совершенно разных экосистемах. Изучение DI в нескольких языках и средах помогает не просто улучшить понимание самой концепции, но и значительно расширяет взгляд на проектирование систем, приходит понимание, что, несмотря на разницу в синтаксисе, фундаментальные идеи стремятся к одним и тем же архитектурным целям.
Кому будет полезна эта статья? Если вы давно уже подружились с .NET с его IServiceCollection, но всегда хотели разобраться, что из себя представляют Angular Injectors, — добро пожаловать. И наоборот, если вы пишете код в TypeScript, но слово "Transient" у вас вызывает только вопросы, — прошу к прочтению. Мы разберемся, как похожие концепции адаптируются в двух разных мирах и почему их изучение в обеих экосистемах позволит вам лучше проектировать свои приложения.

Привет, друзья! На связи снова Кирилл Пронин из PIX Robotics, и у меня для вас новая статья-сенсация!
Мы сейчас открыли новый набор стажеров нашу команду разработки RPA, и коллеги попросили рассказать, как проходила стажировка по C# в прошлом году. А я что – я только за, потому что: а) благодаря прошлой стажировке мы заполучили двух талантливых джунов; б) для меня стажировка стала первым опытом в роли TeamLead’a; в) это было весёлое и необычное путешествие с неожиданными результатами (саму крутую цифру я уже вынес в заголовок, об остальных – ниже).
Для нашей команды это был первый опыт запуска стажировки, так что, как бы ни готовились, мы все равно не учли некоторые нюансы. Назвать их громко ОШИБКАМИ пальцы не поднимаются, а вот неожиданностями и нюансами – вполне. А так как для меня это все стало еще и первым опытом «тимлидства», то поделиться всем этим хочется вдвойне. Так что в этой статье расскажу, как организовать продуктивную стажировку, как отбирать лучших из лучших, какие ошибки нам удалось избежать и, конечно, о ключевых особенностях работы.

Я сделал простейшую утилиту для регистрации реализаций в контейнере.
Теперь можно легко и быстро тянуть все из сборок одной командой.

Всем привет!
Меня зовут Яков, не сказал бы, что я супер разработчик игр (в общей сумме у меня 20 тыс игроков со всех игр выложенных на Яндекс.Игры), но хотел бы поделиться опытом создания гибкой архитектуры игр в Unity с использованием DI-контейнера Zenject.
В статье не будет основ работы с Zenject, поэтому я надеюсь что вы уже знаете данный фреймворк.

В этой статье Вы узнаете, как создать легковесную систему комбо-атаки для 2D и 3D проектов с использованием машины состояний в Unity. Статья включает примеры кода и ссылку на репозиторий с полным проектом, что делает её полезной как для новичков, так и для опытных разработчиков, стремящихся улучшить свои навыки в создании игровых систем.
Разбираемся с async/await без магии и скуки. Зачем вообще нужна асинхронность? Как устроена асинхронность в .NET внутри? Как работают await, Task, ValueTask, и многое другое?

Посмотрел я наканунеэто видео и «вдохновился»… тем, что в видео показан очень сложный способ сделать очень простую вещь — миграцию пользовательских данных.
Если интересен контекст моего баттхерта, то стоит посмотреть оригинальное видео, если же нет — можно перейти сразу сюда к моей реализации...

Личный взгляд программиста с стажем на то, как Microsoft переманил Хейлсберга, создал .NET и вытеснил Delphi с технологической сцены. История предательства, перехода эпох и чемодана, который до сих пор скрипит в углу.

Когда вы в последний раз чувствовали себя настоящим экспертом в разработке? Лично я — где-то в тот момент, когда впервые написал программу, которая завершилась без ошибок. Программирование — это как бесконечный ремонт дома, в котором ты уже живёшь. Ещё вчера тебе казалось, что новая крыша будет решением всех проблем. А сегодня оказалось, что появились окна с автоподогревом, и без них дом вообще не дом. И, конечно, все соседи уже поставили такие.
Краткий туториал, как организовать обработку фоновых задач с приоритетами для условного SaaS продукта с разделением клиентских данных.

Привет, Хабр!
Наверняка вы сталкивались с out, ref и in, но вот в чём штука — хотя выглядят они похоже, под капотом у них совершенно разные намерения. Один любит брать всё на себя, другой ждёт готового, третий — как библиотекарь: знает много, но не вмешивается. Сегодня разберёмся, когда и кого стоит звать в метод

Привет, Хабр! Когда речь заходит о сравнении объектов, все почему-то решают, что это элементарный вопрос: ну есть же == и есть .Equals(), в чём проблема? На практике — проблема порой вырастает в целое шапито. Сегодня поговорим о весьма противоречивой парочке. Почему иногда, написав var a = b; if (a == b) { ... }, мы проверяем одно, а вызвав a.Equals(b) — совершенно другое? И главное: как это может довольно жестоко подставить нас в реальном коде, когда «ой, ну мы же не ожидали, что кто‑то переопределит оператор == так хитро».