Как стать автором
Обновить
93.22
Рейтинг

C# *

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Реализуем рефлексию при помощи source generators

Высокая производительность *Ненормальное программирование *.NET *C# *

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

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.2K
Комментарии 12

Делаем быстрый поиск по неточному совпадению среди 100 миллионов товаров

Поисковые технологии *.NET *Алгоритмы *C# *Разработка под e-commerce *
Tutorial

Это четвертая статья с этой картинкой для привлечения внимания. Она каким-то удивительным образом опять подошла по смыслу.

Мы делаем проект по управлению большими каталогами товаров, и нам потребовалось быстро искать товары по неточному совпадению.

Забегая вперед, скажу, что от идеи до рабочего решения на продакшене прошло пять часов.

Исходная ситуация такова: таблица в MS SQL базе, 50 миллионов записей, записи добавляются постоянно, удаляются или обновляются крайне редко. Средняя длина названия товара составляет 64 символа. Поиск по неточному совпадению работает, для этого используются триграммы и полнотекстовый индекс по столбцу с триграммами. Ранжирование результатов осуществляется при помощи функции CONTAINSTABLE. Результаты получаются релевантные, но поиск работает откровенно медленно, 2-5 секунд на запрос, в зависимости от длины запроса. Мы хотим ускорить его раз в 20, а лучше в 100 подручными средствами.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 2.7K
Комментарии 12

Создание шутера с LeoECS. Часть 2

Разработка игр *C# *Unity *
Tutorial

Друзья, это продолжение серии статей по созданию шутера с использованием фреймворка LeoECS. В этой части мы реализуем несколько новых игровых механик и рассмотрим механизм взаимодействия ECS "мира" с MonoBehaviour-ами. Перед прочтением этой части не забудьте ознакомиться с предыдущей.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 839
Комментарии 0

Асинхронные потоки от Стивена Клири

Блог компании JUG Ru Group Программирование *.NET *C# *Конференции


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


Еще в 2019-м на нашей конференции DotNext Стивен рассказал об асинхронных потоках: чем они могут быть полезны, чем отличаются от существующих библиотек вроде System.Reactive и RxJS, а также как задействовать их в проектах.


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

Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 6.7K
Комментарии 13

Почему я ненавижу JS или как я в 15 лет переписывал свой интернет-магазин

JavaScript *Программирование *.NET *Node.JS *C# *

Я написал интернет-магазин для магазинов мяса на Blazor Server. Попробовал переписать его на React + Node.

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

Читать, почему я ненавижу JS
Всего голосов 72: ↑28 и ↓44 -16
Просмотры 15K
Комментарии 88

Blazor WebAssembly: динамическое создание компонентов по JSON описанию

.NET *ASP *C# *WebAssembly *
Tutorial

В заметке описан способ динамического добавления на страницу компонентов по JSON-описанию с помощью DynamicComponent из ASP.NET Core 6.0 (в настоящее время в статусе Preview).

Динамическое создание компонентов пригодится например при реализации конструктора форм:

• Форма описывается JSON-ом;

• Элементы (или контролы) формы не ограничены предустановленным набором. Контролы можно добавлять, в том числе подгружать из других dll-библиотек.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 2.4K
Комментарии 1

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

Блог компании Microsoft Программирование *.NET *Visual Studio *C# *

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

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

Read more
Всего голосов 4: ↑3 и ↓1 +2
Просмотры 3.6K
Комментарии 6

Представляем .NET MAUI Community Toolkit (Preview)

Блог компании Microsoft .NET *Разработка мобильных приложений *C# *Xamarin *

Команда Community Toolkit рада объявить о первых предварительных выпусках двух новых наборов инструментов .NET Multi-platform App UI (.NET MAUI): CommunityToolkit.Maui и CommunityToolkit.Maui.Markup.

Как было объявлено в прошлом месяце, эти библиотеки являются развитием Xamarin Community Toolkits. Они содержат .NET MAUI Extensions, Advanced UI/UX Controls, Effects и Behaviors, чтобы облегчить вам жизнь в качестве .NET MAUI-разработчика.

Функции, которые вы добавляете в .NET MAUI Toolkit, однажды могут быть включены в официальную библиотеку .NET MAUI. Мы используем наборы инструментов сообщества, чтобы представить новые функции, и тесно сотрудничаем с командой разработчиков .NET MAUI, чтобы выбирать функции для добавления.

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Просмотры 4.1K
Комментарии 10

Печать при помощи API nanoCAD

Блог компании Нанософт .NET *API *CAD/CAM *C# *
Tutorial

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

Этой статьей мы запускаем цикл материалов, посвященный API печати nanoCAD, в котором предложим ответы на традиционные вопросы начинающих САПР-программистов. Начнем с того, что разберемся, как программно отправить чертеж на печать.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 1.1K
Комментарии 0

Как Visual Studio 2022 съела 100 Гб памяти и при чём здесь XML бомбы?

Блог компании PVS-Studio Информационная безопасность *.NET *Visual Studio *C# *

0865_VS2022_XMLBomb_ru/image1.png


В апреле 2021 года Microsoft анонсировала новую версию своей IDE – Visual Studio 2022, попутно объявив, что она будет 64-битной. Сколько мы этого ждали — больше никаких ограничений по памяти в 4 Гб! Однако, как оказалось, есть нюансы...

Читать дальше →
Всего голосов 59: ↑56 и ↓3 +53
Просмотры 26K
Комментарии 29

История создания своей первой игры на Unity

Разработка мобильных приложений *Разработка игр *Разработка под Android *C# *Unity *
Из песочницы

Прежде всего, хочу сразу отметить, что я не являюсь профессиональным разработчиком. Я обычный бакалаврик технического ВУЗа, так что незнание мною некоторых терминов прошу простить, не дорос ещё. Просто однажды летним вечером делать было нечего, как говорится, и я решил попробовать свои силы в создании игОр на всем известном движке Unity.

Начал я свою "разработку" с непосредственной установки Unity и тамошних туториалов aka курсов от самой Unity. Почерпнув оттуда основы основ в виде понимания, что такое объекты и компоненты в Unity, как-куда и на что вешать скрипты и тому подобное, я приступил к созданию своей первой игры. Попытки создания, по крайней мере.

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 4.7K
Комментарии 5

Как объединить 5 языков программирования в одном Python проекте?

Python *JavaScript *Программирование *Java *C# *

На сегодняшний день существует несколько тысяч языков программирования, каждый из которых создавался с определенной целью, пытаясь изменить и улучшить недостатки своих предшественников. Так, например, появился язык Kotlin, который был нацелен на замену Java в мобильной разработке. В 2010 году увидел свет язык Rust, разработчики которого пытались создать быстрый и безопасный язык, который закрывал бы многие недостатки C/C++.

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

Но как объединить несколько разных языков в одном приложение, чтоб это работало?

Ознакомиться
Всего голосов 18: ↑17 и ↓1 +16
Просмотры 12K
Комментарии 10

Ускоряем цикл foreach до for

Высокая производительность *.NET *C# *

Привет!

В этой небольшой заметке о быстром енумераторе для foreach на C#:

foreach (var i in 1..10)

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

Будет много бенчмарков и шарплаба. Прошу под кат!

Читать далее
Всего голосов 45: ↑45 и ↓0 +45
Просмотры 13K
Комментарии 21

Автоматизация типовых процессов, правильный выбор реализации

Блог компании Московский кредитный банк Oracle *API *ERP-системы *C# *
Из песочницы

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

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 2.4K
Комментарии 5

Цена регресса. Как мы организовали инфраструктуру для Е2Е-тестов

Блог компании Страховой Дом ВСК Тестирование IT-систем *.NET *C# *

Мы, команда автоматизации Страхового Дома ВСК, подготовили небольшой рассказ о нашей инфраструктуре. Эта статья может быть входной точкой для специалистов, желающих внедрить автотестирование у себя в компании. Расскажем, какие системы, паттерны и фреймворки можно использовать, а также как интегрировать это в релизный цикл. Материал подойдёт как юным автоматизаторам, так и тем, кто желает поближе познакомиться с темой. Большое внимание уделим не только абстрактным вопросам, но и организации кода проекта. Добро пожаловать под кат.

Читать дальше
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 2.4K
Комментарии 10

Оптимизация dotMemory с использованием dotMemory (и не только...)

Блог компании JetBrains .NET *C# *

dotMemory — это профилировщик памяти для .NET от компании JetBrains. А меня зовут Илья, и я из команды разработки этого инструмента.

Хочу поделиться историей классического догфудинга: как мы оптимизировали один из алгоритмов в dotMemory с помощью своих же инструментов — dotMemory и dotTrace (часть 1). Потом еще раз — с помощью dotTrace, а напоследок еще и с использованием BenchmarkDotNet (часть 2).

Поделиться этой историей меня мотивировали статьи 1 и 2, за что их авторам отдельное большое спасибо.

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Просмотры 2.1K
Комментарии 1

XSS: атака и защита с точки зрения C# программирования

Блог компании PVS-Studio Информационная безопасность *Программирование *.NET *C# *

XSS, или межсайтовый скриптинг, является одной из самых часто встречающихся уязвимостей в веб-приложениях. Она уже долгое время входит в OWASP Top 10 – список самых критичных угроз безопасности веб-приложений. Давайте вместе разберемся, как в вашем браузере может выполниться скрипт, полученный со стороннего сайта, и к чему это может привести (спойлер: например, к краже cookie). Заодно поговорим о том, что необходимо предпринять, чтобы обезопаситься от XSS.

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 6.9K
Комментарии 8

Новые API в .NET 6

Блог компании Microsoft Программирование *.NET *API *C# *

.NET 6 в процессе разработки, и я хотел поделиться некоторыми из моих любимых новых API в .NET и ASP.NET Core, которые вам обязательно понравятся. Почему они понравятся? Потому что они разработаны при прямом участии нашего фантастического сообщества разработчиков .NET. Подробнее в статье.

Читать далее
Всего голосов 25: ↑22 и ↓3 +19
Просмотры 9.6K
Комментарии 49

Интеграция сервиса «Проверки по списку недействительных российских паспортов» или как сжать csv-файл в 38 раз

Программирование *.NET *Алгоритмы *C# *
Из песочницы

Имеется ежедневно обновляемый архив со списком недействительных российских паспортов в формате csv. Размер архива list_of_expired_passports.csv.bz2 — 506 MB, размер распакованного csv-файла — 1,6 GB.

Требуется реализовать вспомогательный REST-сервис, для использования внутри компании, со следующими возможностями:

1. Проверка наличия паспорта (Серия + Номер) в списке недействительных паспортов.
2. Возможность обновления данных без прерывания работы сервиса.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 6.2K
Комментарии 30

Книга «Программируем на C# 8.0. Разработка приложений»

Блог компании Издательский дом «Питер» C# *Профессиональная литература
image Привет, Хаброжители!

C# — универсальный язык, который может практически всё! Иэн Гриффитс рассказывает о его возможностях с точки зрения разработчика, перед которым стоит задача быстро и эффективно создавать приложения любой сложности.

Множество примеров кода научат работать с шаблонами, LINQ и асинхронными возможностями языка. Вы разберетесь с асинхронными потоками, ссылочными типами, допускающими значение NULL, сопоставлениями с образцом, реализациями по умолчанию для метода интерфейса, диапазонами и синтаксисом индексации и многим другим.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 5K
Комментарии 3

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