Популярность GUI-фреймворков для .NET постоянно растёт – появляются новые, развиваются старые. Мы решили не обходить эту тему стороной и рассмотреть подозрительные места, найденные в C# коде одного из таких проектов – Eto.Forms.
C# *
Объектно-ориентированный язык программирования
Новости
Работа в Highload командах 1С сейчас: Java/С++/ C#/TS/JS Hiring day
Вечером 30 марта 2022 года (среда) в формате онлайн мы проводим Java/С++/ C#/TS/JS Hiring day.
Приглашаем всех заинтересованных в разработке на Java, С++, C#, JS, TS принять участие!
На митапе в течение часа мы расскажем:
• О разработке различных механизмов платформы корпоративных и облачных приложений, их внутреннем устройстве и принципах работы
• Опыте разработки highload-решений, которые ежедневно используют миллионы людей
Как написать решатель «Пятнашек» на C#
Цель этой статьи — пробудить интерес читателей к удивительному миру и показать различные способы решения таких же интересных головоломок, как «Пятнашки». Создайте свою базу данных с шаблонами и начните решать головоломки менее чем за 50 миллисекунд. Материалом делимся к старту курса по разработке на C#.
Подозрительные сортировки в Unity, ASP.NET Core и не только
Есть мнение, что опытные разработчики не допускают простых ошибок. Ошибки сравнения? Разыменования нулевых ссылок? Нет, это точно не про нас… ;) Кстати, а что насчёт ошибок сортировки? Как вы уже поняли из заголовка, с этим тоже есть нюансы.
JSON-сериализация асинхронного стрима
Можно считать это продолжением публикации Кастомный JsonConverter: уменьшаем связность и экономим ресурсы. Там при рассмотрении списков верхнего уровня упор был сделан на десериализацию из JSON. Но чтобы что-то десериализовать, нужно сначала это сериализовать. Посмотрим, чем нам может помочь возможность сериализации IAsyncEnumerable<T>
объекта.
Кастомный JsonConverter: уменьшаем связность и экономим ресурсы
Рассматриваем некоторые возможности, которые нам предоставляет кастомный JsonConverter.
Обобщенное программирование – обзор реализаций
В большинстве сильно типизированных языков поддерживается обобщенное программирование. Круг проблем, которые решаются на этих языках, один и тот же, но сами проблемы решались в разное время разными способами, и у каждого из этих способов были свои «за» и «против». Мы рассмотрим историю реализаций обобщенного программирования, чтобы вы могли распробовать его как инженер. Наилучшего подхода не существует, любой подход – это всегда компромисс, при котором одними преимуществами жертвуют ради других. Мы рассмотрим три популярных языка, обогативших нашу индустрию новыми подходами: C++, Java, C#(.Net). Для каждого из рассматриваемых языков мы ответим на следующие вопросы:
Как обрабатывать необработанные исключения в ASP.NET Core Web API
Привет! Я Антон Антонов, Full Stack Developer из Plarium Krasnodar. Расскажу, как обрабатываю необработанные исключения в ASP.NET Core Web API, и дам примеры обработчиков ошибок, которые отвечают наиболее распространенным требованиям.
Подключаем к Экселю GPU и ускоряем Эксель в 300 раз
Попалась мне задачка оптимизации, а так как я большой фанат Экселя, то и выбор инструмента был скорым. Единственная пакость: Эксель дико медленный. Так, на одну итерацию уходило как минимум 35 минут, а таких итераций планировалось сделать 1275 (как минимум)!
Цель этого небольшого проектика – ускорить исполнение VBA скриптов задействуя все доступные мне железяки: GPU и CPU. Ну и до кучи, так как библиотека моя, была реализована многозадачность.
Абстрактная алгебра в действии
В последнее время всё чаще я ощущаю математическое веяние в программировании. Нет, это не про интегралы с производными, а про что-то абстрактное, другое. Про то, что было всегда у нас под носом, но оставалось незамеченным. Наступит день - про это будут говорить на каждом углу. Но не сегодня. Сегодня мы с этим познакомимся.
C# Делаем поддержку «плагинов» для курсовой. Часть 1
Давайте вновь создадим велосипед!
Создаю свой собственный язык разметки, так же параллельно добавляю поддержку плагинов на python для курсовой
Я буду использовать только .Net 5 для создание языка разметки, никакого Antrl!
Проектирование непредсказуемого интеллекта в играх. Часть 2 — интеллект толпы
Как сделать толпу в игре, кто такой лидер и почему вашей игре это может быть полезно.
Проектирование непредсказуемого интеллекта это сложный творческий и технический процесс. Необходимо быть не только подкованным с точки зрения разработки, но и понимать как это будет выглядеть в конце.
В этой статье я рассмотрю создание интеллекта толпы с нуля, для чего она нужна, как ее проектировать и покажу примеры кода.
Топ-10 ошибок, найденных PVS-Studio в проектах на ASP.NET Core
Миллионы людей используют веб-приложения, построенные на основе ASP.NET Core. Поэтому мы решили улучшить работу PVS-Studio при анализе таких проектов. Для демонстрации результата нашей работы мы проверим несколько open source проектов и представим топ срабатываний.
Утилизация «мусорщиком» сессий с истекшим сроком годности
Соглашаясь с мнением, что stateful-сервер ограничен в масштабируемости, всё же считаю, что инструмент должен соответствовать задаче. Для высоконагруженной системы с миллионами запросов в секунду важна распределённость, но за неё мы платим необязательностью предоставления актуальных данных в конкретный момент. Ни того ни другого нельзя сказать о системе, в которой при самых оптимистичных предположениях будет работать сотня операторов.
Так что предположим, что запрос на полноценные сессии всё же имеется. И эти сессии надо как-то утилизировать после окончания их срока жизни. Навскидку можно предложить следующие решения.
Запуск параллельной задачи при очередном запросе с клиента.
Запуск специального потока.
Использование таймера.
Всё же осмелюсь предложить ещё одну идею.
Обновление: благодарю @Politura - комментарий о MemoryCache
оказался очень полезным! Проверил и решил так и сделать.
Поговорим о фичах в предварительной версии C# 11
К старту курса по разработке на C# рассказываем о новых конструкциях в предварительной версии языка C# 11. Среди них шаблоны списка, проверка Parameter на null и возможность переноса строки при интерполяции строк. За подробностями приглашаем под кат.
Роботизация для macOS по-взрослому
Несмотря на то, что на рынке существуют различные RPA-решения, большинство из них не работают на macOS. Microsoft выпускает самую распространенную операционную систему для конечных пользователей, и большинство вендоров предоставляют решения, совместимые только с Windows. При этом по данным StatCounter, macOS занимает четвертое место по доле рынка (8,25%) среди всех операционных систем.
Сегодня технология RPA (Robotic Process Automation) позволяет экономить тысячи человеко-часов за счет передачи рутинных задач роботам. До недавнего времени область применения RPA ограничивалась исключительно компьютерами под управлением Windows (если не брать в расчет компьютерное зрение «по удаленке»). В одном из прошлых постов мы с вами говорили о роботах под Linux, и вот, в декабрьской preview-версии, компания UiPath представила возможность использовать роботов под macOS!
Что под капотом у этих роботов, как они выглядят для пользователей и что вам нужно сделать, чтобы создать своего первого робота под macOS — вы узнаете за пару минут в этой статье.
Статья написана при поддержке технического эксперта UiPath: Валентина Драздова.
Как не дать пользователю заснуть во время загрузки большого набора данных
Одно из двух, — прошелестел он, — или пациент жив, или он умер. Если он жив — он останется жив или он не останется жив. Если он мёртв — его можно оживить или нельзя оживить.
А.Н. Толстой. "Золотой ключик, или Приключения Буратино"
Пользователю лень фильтровать запрашиваемые данные, а их бывает довольно много. Заставлять пользователя что-то фильтровать - негуманно и попахивает произволом. В таком случае пользователь сидит грустит, ругает разработчиков, давит на техподдержку. Если сделать "в лоб", сервер по запросу клиента будет собирать для отправки коллекцию объектов, загружая их из базы или ещё как-то. Потом всю эту махину он пошлёт в ответном HTTP-пакете, предварительно серилизовав в JSON, там это всё будет в один присест десериализовано в клиентские объекты, которые, наконец-то предстанут пред взором потерявшего надежду пользователя.
Представляем .NET 7 Preview 1
Мы рады объявить об очередной вехе в истории .NET. Отмечая 20-летие технологии, .NET 7 Preview 1 знаменует собой первый шаг вперед к следующим 20 годам .NET.
ASP.NET Core Preview 1 и EF7 Preview 1 также были выпущены.
.NET 7 строится на базе, созданной .NET 6, которая включает в себя унифицированный набор базовых библиотек, среду выполнения и SDK, упрощенный процесс разработки и более высокую производительность. Основные направления работы .NET 7 включают улучшенную поддержку облачных сценариев, инструменты, облегчающие обновление устаревших проектов, а также упрощение работы разработчиков за счет упрощения работы с контейнерами.
Как мы создавали курс по C# и боролись за секунды
У сервиса онлайн-обучения программированию Хекслет есть собственный Open Source проект Code Basics, на котором выходят бесплатные курсы для начинающих на разных языках. Когда-то их было только два – PHP и JavaScript, сейчас уже более десятка. В компании Dodo Engeneering есть хорошая экспертиза по C#, поэтому мы вместе решили сделать курс с тренажером для тех, кто хочет начать изучение программирования именно с него. Во время написания курса оказалось, что из-за долгого холодного старта и ограничений учебной платформы все решения студентов падают.
В этой статье я, Женя Васильев, техлид в Dodo Engineering, расскажу, как мы решали проблему медленной сборки языка и как в этом помог Mono.
Это Gaidai какой-то. Сервис HTTP сценариев
Привет, Хабр, меня зовут Артем Кудряшов, некоторую кучу лет я работаю в ATI.SU — крупнейшей в России бирже грузоперевозок. В разное время я писал код, управлял командами и занимался другими весёлыми вещами. В статье, что вы видите, хочу рассказать об одном из наших сервисов с интересной функциональностью и крутым, по моему личному мнению, названием — Gaidai. Поехали.
У нас в системе есть уведомления для пользователей: мы сообщаем о новых грузах, новых сделках и разных других активностях. Получать уведомления можно на нашем сайте, в мобильных приложениях, пуш-уведомлениями на смартфоны и в браузеры, SMS сообщениями, письмами на почту. В общем и целом, если вы наш пользователь, и вам хочется что-то узнать — мы вас найдём.
Разных сообщений много: на момент написания статьи мы отправляем почти 350 типов сообщений. Вот так выглядит один из вариантов, который пользователь видит на сайте:
Вклад авторов
-
sidristij 1681.2 -
foto_shooter 1020.0 -
olegchir 1001.8 -
n0mo 667.0 -
sahsAGU 656.0 -
marshinov 654.6 -
timyrik20 652.6 -
kekekeks 623.4 -
DreamWalker 566.0 -
PsyHaSTe 547.4