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

.NET *

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

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

CORS для собеседований и работы

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

Если вы видите эту ошибку — вы не одиноки:

Access to fetch at 'https://api.site.com' from origin 'http://localhost:3000' has been blocked by CORS policy.

Разберем, почему это происходит и как это починить. Что такое CORS и для чего он нужен. Кратко, понятно.

Читать далее

Новости

Кастомизируем xUnit: feature-toggles или API тесты не для всех (конечных точек)

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров859

У вас в проекте появились feature‑toggles, а API тесты никто не отменял?

В статье рассматривается практический пример кастомизации тестового фреймворка xUnit для написания API тестов с учётом feature‑toggles в условиях их конфликтующих состояний.

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

Читать далее

Автоматическая регистрация в контейнере по атрибутам — теперь с IServiceCollection и тестами

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

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

Читать далее

Строка из чисел

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

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

Читать далее

Как просто сделать линейку с помощью своей камеры?

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.1K

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

А что дальше?

Симуляция экосистемы с элементами ИИ

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров880

Собственная экосистема на твоем компьютере? Без проблем! А если добавить туда животных с примитивным ИИ, которые учатся, выживают и принимают решения сами?

А что же дальше?

C#, Логи которые пишут себя сами, 2

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

Всем привет.

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

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

Ниже я подробно опишу применение этого способа автоматического логирования.

Читать далее

Я у мамы программист, а не маркетолог: как я пытался продвинуть своего бота

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров5K

Вы когда-нибудь пытались собрать друзей на вечер настолок, но в итоге кто-то забыл, кто-то перепутал время, а кто-то вообще не пришёл? Я - да. И, как программист, я сделал то, что умею лучше всего - написал бота, который решает эту проблему. А потом понял, что писать код было проще, чем заставить людей им пользоваться.

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

И вот сегодня число пользователей дошло до 300, а количество групп выросло до 100 (на самом деле 98) и я хотел бы подвести некоторый итог по проекту. Плюс я пару дней назад выпустил обновление, в котором закончил все фичи, которые задумывал и бот переходит в режим поддержки. Если что я его не отключаю, будет работать, но об этом в конце.

Читать далее

Реализация собственного биллинг-сервиса на .NET: необходимость, особенности и архитектура

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.6K

Привет, меня зовут Павел, я являюсь разработчиком в DD Planet. Сегодня хочу поговорить об одной частой ситуации. Если ваш web сервис работает по подпискам или с регулярными платежами — рано или поздно встаёт вопрос: брать готовое решение или сделать своё.

Читать далее

Throw — это новый goto

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров32K

Помните ли вы о существовании goto?

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

Но почему-то я не встречал никакого негатива насчёт throw. А ведь это точно такая же фигня, если даже не хуже.

Читать далее

Stonks или not stonks. Проверка исходного кода трейдерского движка Lean

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров1.7K

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

Читать далее

Три ошибки в C#, которые лучше не допускать

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

Привет, Хабр!

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

Читать далее

(Не)случайные числа в VBA Excel Ч. 1

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

Первая часть из моего цикла исследований, посвященного генерации псевдослучайных чисел в скриптовом языке VBA, используемого в офисных приложениях от Microsoft.

Погрузиться в мир псевдослучайных чисел!

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

Как я добавлял таймзоны в своего бота (и выжил)

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров763

Я ненавижу работать с часовыми поясами. Такое себе откровение, мне кажется это бесит любого человека, который имел работу с пользователями в нескольких часовых поясах.

Мне кажется в аду есть специальный котёл, где грешникам нужно высчитывать время по разным часовым поясам на границы перехода дней.

Читать далее

C#, Кодогенерация и DDD Часть 3.2 — Добавляем шины, обработчики сообщений и реализацию обработчиков сообщений

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров2.5K

В прошлой статье мы сгенерировали Enpoint-ы WebApi по описанию на основе классов, свойств и атрибутов.

(первая часть, вторая часть, третья часть, четвертая часть)

В этой статье мы добавим генерацию абстракций EventHandler-ов, работающих с шиной, саму шину, реализацию EventHandler-ов для MassTransit, узнаем во сколько раз больше мы генерируем, чем пишем (на этот раз без ошибки).

Читать далее

Expression: всё что нужно для старта

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

Если поискать по Хабру статьи, связанные с Expression, то можно найти несколько десятков страниц статей. Однако, я решил написать еще одну. Цель с которой я решил это сделать‑ разобрать деревья выражений для разработчиков которые еще не имели с ними дела. Для тех кому это кажется магией. И самое главное, показать для чего они могут пригодиться.

Что же далее...

Валидация Delegate-регистраций в DI-контейнере

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

Использование DI-контейнеров часто приводит к появлению неприятных ошибок в рантайме. В таких случаях хочется, чтобы контейнер умел находить проблемы и уведомлять о них в момент сборки. 

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

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

Читать далее

DAX-style подход в C# для SUMMARIZECOLUMNS из Power BI

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

Привет, Хабр! Одной из важных функций в аналитическом языке DAX является SUMMARIZECOLUMNS, т.к. она готовит данные для дашбордов за счет декартова произведения полей группировки, если поля группировки из разных таблиц. Понятно, что на любом языке программирования можно реализовать логику, в чем-то аналогичную SUMMARIZECOLUMNS из DAX. Интересующимся DAX-style логикой для C# из NuGet пакета DaxSharp для функцииSUMMARIZECOLUMNS — добро пожаловать под кат :)

Читать далее

У нас был план: внедрить автоматизацию тестирования мобильного приложения

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров639

Хабр, привет! Меня зовут Мельников Станислав, руковожу группой автоматизированного тестирования. В статье расскажу, как мы организовали автоматизацию тестирования мобильного приложения и ушли от бесконечного ручного регресса к ферме устройств и авто-тестам, которые теперь живут в CI. Делюсь цифрами, граблями и планами. 

Читать далее

Книга: «.NET 8: приложения и сервисы. Практика создания проектов с использованием Blazor, .NET MAUI, gRPC, GraphQL.»

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

Привет, Харборожители! У нас есть для вас новое издание книги «.NET 8: приложения и сервисы» вы сможете поднять свои навыки владения C# и .NET на новый уровень.

В книге описаны практические приемы использования различных технологий, включая Web API, gRPC, GraphQL и SignalR, что выделяет ее среди других источников. Она познакомит вас с новой унифицированной моделью Blazor Full Stack и расскажет, как использовать .NET MAUI для разработки мобильных и десктопных приложений.

В новом издании представлены последние достижения, включая бесшовную реализацию веб-сервисов со встроенной поддержкой Ahead-of-Time (AOT) ADO. NET SqlClient. Помимо других популярных библиотек, в книге рассматриваются Humanizer и Noda Time. Совершенно новая глава расскажет об архитектуре, кэшировании, организации очередей и приемах построения надежных фоновых сервисов.

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

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