Блог
Практические статьи KomuraSoft LLC о разработке сайтов, SEO, Google Ads, разработке для Windows, использовании существующих систем и расследовании сбоев.
ИИ-поиск по всему сайту
Поисковые запросы передаются в Cloudflare AI Search для формирования результатов. Не вводите персональные данные.
-
Перенос макросов Excel VBA в Power Automate — что заменить Office Scripts, а что оставить в VBA
Разбираем, можно ли перенести макросы Excel VBA в Power Automate: что заменяется Office Scripts, что умеет только VBA, ограничения коннектора, требования к л...
-
10 главных угроз информационной безопасности 2026: как читать рейтинг и что защищать МСБ
В рейтинге IPA «10 главных угроз информационной безопасности 2026» атаки программ-вымогателей заняли 1-е место 11-й год подряд, атаки на цепочку поставок — 2...
-
Инцидент не закрывается восстановлением — постмортем для небольшой команды
Если закрыть инцидент после исправления и извинений, тот же сбой повторится. Адаптируем blameless-постмортем для небольшой команды: шаблон на час, таблица си...
-
ADR (Architecture Decision Record): как в небольшой команде сохранить, почему выбрали именно эту архитектуру
Код не объясняет, почему его написали именно так. Разбираем ADR (Architecture Decision Record): одно решение — один Markdown-файл. Шаблон, таблица «писать ил...
-
Обратная совместимость интерфейсов DLL и COM — таблица: какие изменения ломают вызывающий код
Какие изменения DLL или COM-компонента ломают вызывающий код. Разбираем три слоя совместимости — бинарную, исходного кода и поведенческую, — таблицу решений ...
-
Версионирование схемы БД бизнес-приложения — практика миграций, чтобы у клиентов не оказалось «у каждого своя база»
Практическое руководство по версионированию схемы БД бизнес-приложения, которое стоит у множества клиентов. Разбираем PRAGMA user_version и последовательные ...
-
CI/CD для WinForms / WPF: сборка, подпись и распространение в GitHub Actions
Практическое руководство по CI/CD для WinForms / WPF в GitHub Actions. Минимальный YAML сборки и тестов на windows-latest, нумерация версий по тегам, подпись...
-
Как безопасно менять унаследованное бизнес-приложение без тестов — характеризационные тесты и рефакторинг на практике
На примерах C# разбираем, как безопасно менять бизнес-приложение без тестов: как зафиксировать текущее поведение характеризационным тестом (метод golden mast...
-
Чтобы не забыть решить, за сколько секунд система должна отвечать — нефункциональные требования по «Градации» IPA
Споры вроде «слишком медленно» или «при сбое всё пошло не так, как ждали», часто начинаются с того, что нефункциональные требования так и не зафиксировали. Р...
-
Спецификации в заказной разработке: оставлять ли Excel — как выбрать формат сдачи
Стоит ли сдавать спецификации и проектную документацию заказной разработки в Excel «в клеточку»? Разбираем проблемы такого Excel с точки зрения приёмки и соп...
-
Заказчику сайта тоже стоит знать: как пользоваться документом IPA «Как создать безопасный веб-сайт»
По какому критерию проверять безопасность корпоративного сайта? Разбираем 11 уязвимостей и меры из документа IPA «Как создать безопасный веб-сайт» языком, по...
-
Если Microsoft Defender принял ваше Windows-приложение за вирус — ложные срабатывания и влияние на производительность
Разбираем штатный порядок действий, если Microsoft Defender ложно определяет ваше Windows-приложение как вредоносное. Как устроена современная антивирусная з...
-
Спящий режим, гибернация и Modern Standby: как не дать долгоживущему приложению остановиться ночью
Разбираем, почему долгоживущее Windows-приложение к утру оказывается остановленным: чем отличаются спящий режим S3, гибернация и Modern Standby, как во сне в...
-
С чего малому и среднему бизнесу начать информационную безопасность — редакция 4.0 руководства IPA
С чего малому и среднему бизнесу начинать защиту информации. По редакции 4.0 руководства IPA разбираем шесть базовых правил, самооценку за пять минут и беспл...
-
Запустятся ли бизнес-приложения на Windows on Arm — эмуляция x64 (Prism) и реальность нативных DLL и COM
Разработчикам и ИТ-службам: запустится ли бизнес-приложение на Windows on Arm. Разбираем, как устроена эмуляция x64 (Prism), какие слои она не покрывает, про...
-
Система без исходного кода и спецификаций: как сопровождать её, не останавливая работу
Практический порядок начала эксплуатации и сопровождения бизнес-системы, у которой нет ни исходного кода, ни спецификаций. От фиксации работающего окружения ...
-
MAX_PATH и ловушки путей и имён файлов в Windows — лимит 260 символов, зарезервированные имена, точка в конце, регистр
Разбираем ограничения путей и имён файлов — типичную причину ошибки «файл не найден». Из чего складывается MAX_PATH=260, как включить длинные пути через Long...
-
ORCA (Nichi-Rece) — это не электронная медицинская карта: система медицинского биллинга и архитектура ИТ в медицине глазами инженера
ORCA (Nichi-Rece) — это не электронная медицинская карта, а система медицинского биллинга. С точки зрения инженера разбираем архитектуру ИТ в медицинской орг...
-
Как заключать договор на заказную разработку и сопровождение: подряд и оказание услуг по модельному договору IPA
Как заключать договор, когда разработку системы отдают внешнему исполнителю? По «Модельным сделкам и договорам для информационных систем» IPA разбираем много...
-
Сетевые диски и UNC-пути: типичные ловушки ── как бизнес-приложению работать с файловым сервером (общей папкой)
Разбираем типичные сбои, когда бизнес-приложение пишет в общую папку или следит за ней. Почему службе не видна буква диска (Z:), какие права нужны для каждой...
-
Что такое цифровой инвойс — чем он отличается от PDF-счёта по почте
Цифровой инвойс передаёт данные счёта напрямую из системы продавца в систему покупателя без участия человека. Разбираем отличие от PDF-счёта, связь с режимом...
-
Значок в области уведомлений и toast в Windows-приложении: ошибки NotifyIcon и выбор AppNotification
Разбираем, как держать бизнес-приложение Windows в области уведомлений и показывать toast. Правильная работа с NotifyIcon, повторная регистрация после переза...
-
Переход с WordPress на Movable Type: практические шаги «обратной» миграции
Разбираем переход с WordPress на Movable Type (MovableType.net) с практической стороны. Когда миграция оправдана, как импортировать записи и изображения, как...
-
Как долго проработают приложения VB6 — поддержка среды выполнения и миграция на .NET
Как долго ещё проработают приложения на VB6? Среда выполнения поддерживается и в Windows 11, поддержка IDE уже закончилась. В статье — таблица выбора между п...
-
Как перевести заказы с факса на веб: параллельная работа и поэтапный переход
Как перевести приём заказов с факса на веб-заказы или импорт CSV. Почему одномоментный полный переход часто срывается, как спроектировать период параллельной...
-
Что такое EDI? Как упростить приём и оформление заказов между компаниями — от факса, почты и ручного ввода к обмену данными
EDI — механизм обмена торговыми данными, такими как заказы и счета, между информационными системами компаний. В статье объясняется, чем EDI отличается от фак...
-
Японский календарь, праздники и даты закрытия в бизнес-приложениях — устойчивость к смене эры, JapaneseCalendar и расчёт рабочих дней
Разбираем обработку дат, характерную для японских бизнес-приложений: вывод по японскому календарю, расчёт рабочих дней без праздников и даты закрытия. Дальше...
-
Практическое руководство по Process Monitor (ProcMon) — за 10 минут находим «настройки не читаются» и ACCESS DENIED
Неисправности вроде «настройки поменял, а эффекта нет» разбирают в Process Monitor (ProcMon) по реальным обращениям к файлам и реестру. В статье — рабочие пр...
-
Когда Windows-приложение лучше не переводить в веб: таблица решений и разделение как рабочий вариант
У Windows-приложений со связью с оборудованием, локальной обработкой файлов и офлайн-режимом перевод в веб может увеличить затраты и ухудшить функции. Ниже —...
-
Локализация WinForms и WPF: resx, спутниковые сборки, переключение культуры
Разбираем локализацию десктопных приложений Windows: чем CurrentCulture отличается от CurrentUICulture, как устроены resx и спутниковые сборки, какой способ ...