Как стать автором
Обновить
-21
Максим @MacroSssread⁠-⁠only

Пользователь

Отправить сообщение

Как опубликовать приложение в RuStore и подключить монетизацию: пошаговый гайд

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

Привет! На связи Александр Руснак, руководитель направления разработчиков, технологий и сервисов RuStore. В мае 2022 года мы с командой и партнёрами запустили российский магазин приложений для Android.

В январе 2023 года аудитория RuStore составила 10 миллионов человек. На витрину магазина уже загружено 5 тысяч приложений от 3,6 тысячи разработчиков.

Для тех, кто ещё не знаком с RuStore, мы сделали подробный гайд по регистрации и загрузке приложений.

Читать далее
Всего голосов 59: ↑47 и ↓12+35
Комментарии34

Раскрываем секреты загрузочных ISO-образов

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


В этой статье я хочу поговорить об ISO-файлах, на которых, как известно, распространяются дистрибутивы операционных систем. Начиная писать статью, я немного сомневался в её актуальности, так как я ассоциировал ISO-образы с оптическими дисками, которые, ввиду ряда причин, уходят в прошлое. У меня было стойкое понимание, что ISO-файлы в основном нужны только для хранения образов оптических дисков, которые содержат установщик операционной системы. Но, как оказалось, всё гораздо сложнее и интереснее, особенно применительно к современному железу.
Читать дальше →
Всего голосов 193: ↑193 и ↓0+193
Комментарии73

Быстрый консольный ввод на .NET

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

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


Часто приходится слышать, что "шарпы медленные", особенно в контексте алгоритмических задач, например с timus.online и codeforces.com. И, увы, не только слышать, но и сталкиваться с реальными проблемами, связанными с особенностями платформы, получая Wrong Answer, Runtime Error, Memory Limit, Time Limit при корректном алгоритме.


Большинство этих проблем кроется в особенностях консольного ввода и вывода. Да и часто куда проще написать cin >> nили sc.nextInt(), чем int.Parse(Console.ReadLine()) или Console.ReadLine().Split().Select(int.Parse).ToArray(), из-за чего выбор падает на другой язык.


Далее я расскажу о распространённых проблемах с консольным вводом-выводом в .NET, и о том, как сделать ввод быстрым и удобным.

Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии9

Самописные компоненты в конвейере обработчиков ASP.NET Core: подключение и доступ к сервисам

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


В этой статье я хочу рассказать о том, как расширяются возможности ASP.NET Core по обработке запросов к веб-серверу с помощью самостоятельно написанных компонентов конвейера обработки.


Обычно для разработки серверной части веб-приложений (по-простому — бэка) с помощью ASP.NET Core имеет смысл использовать базирующиеся на нем фреймворки высокого уровня: MVC Core, Razor Pages и т.д.: они позволяют с минимумом усилий решать типовые задачи. Но встречаются задачи нетиповые, которые требуют для своего решения перейти на более низкий уровень (или, по крайней мере, понимать, что на этом уровне происходит) — на уровень базовых возможностей ASP.NET Core. И в этой статье как раз рассказывается об использовании одной из этих базовых возможностей — компонентов middleware, из которых создается конвейер обработки запросов к веб-серверу. Далее в статье я буду называть их компонентами-обработчиками, потому что официальный перевод из документации от MS — "ПО промежуточного слоя" — он некрасив и не описывает их функции. Конкретно в статье рассматривается, какие средства предоставляет фреймворк ASP.NET Core для создания самописных компонентов-обработчиков. И особое внимание уделено тому, как эти компоненты могут получить доступ к другой базовой возможности ASP.NET Core — сервисам, которые зарегистрированы в контейнере сервисов (он же — "DI-контейнер"), как к стандартным для ASP.NET Core, так и к самописным.

Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии2

Electron это Flash для десктопа

Время на прочтение5 мин
Количество просмотров60K
Почему в настольном приложении Slack, скорее всего, есть драйвер для работы игрового контроллера Xbox и чего, действительно, плохого в использовании Electron для построения настольных приложений.

image
Читать дальше →
Всего голосов 168: ↑160 и ↓8+152
Комментарии461

Оптимизация .NET приложений: большой результат маленьких правок

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

0852_NETAppsPerf_MinChangesMajorRes_ru/image1.png


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

Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии11

Подводные камни при работе с enum в C#

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

0844_EnumBoxing_ru/image1.png


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

Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии20

Даты, время и часовые пояса: улучшения в .NET 6

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

Материал переведен. Ссылка на оригинал

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

Мы рассмотрим следующие темы:

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии5

Лучшие практики обработки исключений в C#

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

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

Читать далее
Всего голосов 15: ↑11 и ↓4+7
Комментарии15

Подводные камни в бассейне строк, или ещё один повод подумать перед интернированием экземпляров класса String в C#

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

Будучи разработчиками программного обеспечения, мы всегда хотим, чтобы написанное нами ПО работало быстро. Использование оптимального алгоритма, распараллеливание, применение различных техник оптимизации – мы будем прибегать ко всем известным нам средствам, дабы улучшить производительность софта. К одной из таких техник оптимизации можно отнести и так называемое интернирование строк. Оно позволяет уменьшить объём потребляемой процессом памяти, а также значительно сокращает время, затрачиваемое на сравнение строк. Однако, как и везде в жизни, необходимо соблюдать меру – не стоит использовать интернирование на каждом шагу. Далее в этой статье будет показано, как можно обжечься и создать своему приложению неочевидный bottleneck в виде метода String.Intern.

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии9

Несколько советов по работе с асинхронным кодом в C#

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

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

Читать далее
Всего голосов 13: ↑9 и ↓4+5
Комментарии5

Книга «Паттерны проектирования для C# и платформы .NET Core»

Время на прочтение11 мин
Количество просмотров17K
image Привет, Хаброжители! Паттерны проектирования — удобный прием программирования для решения рутинных задач разработки ПО. Грамотное использование паттернов позволяет добиться соответствия любым требованиям и снизить расходы. В этой книге описаны эффективные способы применения паттернов проектирования с учётом специфики языка C# и платформы .NET Core.

Кроме знакомых паттернов проектирования из книги «Банды четырех» вы изучите основы объектно-ориентированного программирования и принципов SOLID. Затем узнаете о функциональных, реактивных и конкурентных паттернах, с помощью которых будете работать с потоками и корутинами. Заключительная часть содержит паттерны для работы с микросервисными, бессерверными и облачно-ориентированными приложениями. Вы также узнаете, как сделать выбор архитектуры, например микросервисной или MVC.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии5

Старые-новые фичи C#. Какие из них пригодятся в любом проекте

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


Как собрать в прямом эфире 17 000 зрителей? Значит, рецепт такой. Берем 15 актуальных IT-направлений, зовем зарубежных спикеров, дарим подарки за активность в чате, и вуа-ля — крупнейший в Украине и восточной Европе онлайн-ивент готов. Именно так прошла ежегодная мультитул конференция NIXMultiConf.

Под слоганом «айтишникам — от айтишников» эксперты из Украины, Беларуси, России, Великобритании и Германии поделились опытом и рассказали о новинках индустрии. Полезно было всем — дизайнерам, девелоперам, тестировщикам и менеджерам. И теперь делимся инсайтами с вами.

По мотивам докладов экспертов NIX продолжаем серию статей на самые актуальные темы. На этот раз .NET разработчик в NIX Дмитрий Богдансобрал главные инструменты для C# разработчиков — буквально на все случаи жизни разработки.

Хочешь знать больше — смотри конференцию на YouTube-канале.


Привет! Я — Дмитрий Богдан, .NET разработчик в NIX и спикер NIXMulticonf.
Эта статья — своеобразная «‎шпаргалка»‎ для девелоперов по самым полезным фичам C# 9, а также нескольким функциям из предыдущих версий. С каждой новой версией C# разработчики стремятся сделать весь процесс программирования удобным и лаконичным. На этот раз больше всего внимания уделили изменениям свойств объектов, новому типу Record и не только. Но обо всем по-порядку.
Читать дальше →
Всего голосов 11: ↑1 и ↓10-9
Комментарии7

Делаем фильтры «как в экселе» на ASP.NET Core

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

«Сделайте нам фильтры «как в экселе», — довольно популярный запрос на разработку. К сожалению, реализация запроса в общем виде «слегка» длинее, чем его лаконичная постановка. Если вдруг вы никогда не пользовались этими фильтрами, то вот пример. Основная фишка в том, что в строчке с названиям колонок появляются выпадающие списки со значениями из выбранного диапазона. Например в колонках А и B — 4000 строк и 3999 значений (первую строчку занимают названия колонок). Таким образом, в соответсвтующих выпадающих списках будет по 3999 значений. В колонке C — 220 строк и 219 значений в выпадающем списке соответственно.


Пример реализации на C# под катом
Всего голосов 16: ↑15 и ↓1+14
Комментарии9

Навигация в кроссплатформенном приложении на .NET Core с сохранением состояния на диск на примере ReactiveUI и Avalonia

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



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


MVVM фреймворк ReactiveUI предлагает сохранять состояние приложения путём сериализации графа моделей представления в момент приостановки программы, при этом механизмы определения момента приостановки различаются для фреймворков и платформ. Так, для WPF используется событие Exit, для Xamarin.Android — ActivityPaused, для Xamarin.iOS — DidEnterBackground, для UWP — перегрузка OnLaunched.


В данном материале рассмотрим использование ReactiveUI для сохранения и восстановления состояния ПО с GUI, включая состояние роутера, на примере кроссплатформенного GUI фреймворка Avalonia. Материал предполагает наличие базовых представлений о шаблоне проектирования MVVM и о реактивном программировании в контексте языка C# и платформы .NET у читателя. Последовательность действий, описанная в статье, применима к ОС Windows 10 и Ubuntu 18. Код проекта, описанного в статье, доступен на GitHub.

Приступим!
Всего голосов 31: ↑30 и ↓1+29
Комментарии0

Асинхронность в C# и F#. Подводные камни асинхронности в C #

Время на прочтение9 мин
Количество просмотров9.8K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Async in C# and F# Asynchronous gotchas in C#» автора Tomas Petricek.

Еще в феврале я присутствовал на ежегодном саммите MVP — мероприятии, организованном Microsoft для MVP. Я воспользовался этой возможностью, чтобы посетить также Бостон и Нью-Йорк, сделать два выступления про F# и записать лекцию Channel 9 о провайдерах типов. Несмотря на другие мероприятия (такие как посещения пабов, общение с другими людьми про F# и долгий сон по утрам), мне также удалось провести несколько обсуждений.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии36

Перенос десктопных приложений на .NET Core

Время на прочтение5 мин
Количество просмотров22K
С тех пор, как я начала работать с сообществом над переносом десктопных приложений с .NET Framework на .NET Core, я заметила, что существует «два лагеря»: представители одного хотят очень простой и короткий список инструкций для переноса своих приложений на .NET Core, в то время как представители другого предпочитают более принципиальный подход с большим количеством исходной информации. Вместо того, чтобы писать документ по типу «швейцарского армейского ножа», мы собираемся опубликовать два сообщения в блоге, по одному для каждого «лагеря»:

  • Данный пост — простой случай. Он ориентирован на простые инструкции и небольшие приложения и рассматривает самый простой способ переноса приложения на .NET Core.
  • Позднее мы опубликуем еще один пост для более сложных случаев. В нем основное внимание будет уделено нетривиальным приложениям, таким как WPF-приложение с зависимостями от WCF и сторонних UI-пакетов.

Если вы предпочитаете смотреть видео, а не читать, то вот видео, где я делаю все, что описано ниже.

Всего голосов 15: ↑13 и ↓2+11
Комментарии20

Конвертация xls в xlsx и xml на C#

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

В этой статье я постараюсь рассказать об одном из возможных путей конвертации документов формата xls в xml.


Непосредственно моя задача выглядела примерно так:


Дано:


  1. 1-2 дня времени на поиск и реализацию решения
  2. Найденное решение должно быть настолько бесплатным, насколько это возможно
  3. Известна примерная структура, размер и содержание файла, которые должны быть обработаны, что снимает необходимость читать графики, диаграммы и иные медианные из документа.
  4. Использовать Interop, равно как и иные библиотеки, которые требуют установки Office нельзя, так как это создает лишнюю нагрузку на сервер и требует дополнительной установки офисного пакета.
Читать дальше →
Всего голосов 17: ↑13 и ↓4+9
Комментарии18

Неформальные интервью с хакерами

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

Недавно я наткнулся на канал Ивана Новикова (D0znpp), CEO Wallarm, который пишет свои выпуски без монтажа и почти каждый день (про жизнь в Америке, Y Combinator, продажи и инвестиции), и обнаружил там для себя массу полезного. Решил поделиться с хабрасообществом парой выпусков «про хакеров».

Про Александра Матросова, главного железного безопасника Nvidia


  • offensive hardware security
  • путь от reverse engeneering и ESET до Intel и NVidia
  • вирусы и изюминки
  • уважение к вирусостроителям
  • два рабочих ноутбука
  • обсуждение Windows
  • про Stuxnet и его реверсинг
  • как утекают сертификаты
  • сколько русских в Intel
  • в каждой компании есть русский безопасник
  • совет студентам

Всего голосов 25: ↑21 и ↓4+17
Комментарии1

Поймай меня, если сможешь. Версия Короля

Время на прочтение12 мин
Количество просмотров9.8K
Меня называют Король. Если пользоваться привычными вам ярлыками, то я – консультант. Точнее, владелец консалтинговой компании нового образца. Я придумал схему, при которой моя компания гарантированно зарабатывает очень приличные деньги, при этом, как ни странно, принося пользу клиенту.

Как думаете, в чем суть моей бизнес-схемы? Никогда не угадаете. Я продаю заводам их собственных программистов, и их собственную автоматизацию. В разы дороже, разумеется.
Читать дальше →
Всего голосов 52: ↑35 и ↓17+18
Комментарии31

Информация

В рейтинге
Не участвует
Откуда
Пермь, Пермский край, Россия
Дата рождения
Зарегистрирован
Активность