<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title type="text">KomuraSoft LLC Blog</title>
  <subtitle type="text">Windows / C# / COM engineering notes from KomuraSoft LLC.</subtitle>
  <id>https://comcomponent.com/en/feed.xml</id>
  <link rel="alternate" type="text/html" hreflang="en" href="https://comcomponent.com/en/blog/"/>
  <link rel="alternate" type="text/html" hreflang="ja" href="https://comcomponent.com/blog/"/>
  <link rel="self" type="application/atom+xml" href="https://comcomponent.com/en/feed.xml"/>
  <updated>2026-07-20T00:00:00+00:00</updated>
  <rights>© 2026 KomuraSoft LLC</rights>
  <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator>
  <author>
    <name>小村 豪</name>
    <uri>https://comcomponent.com/en/profile/go-komura/</uri>
  </author>
  
  <entry xml:lang="en">
    <title type="text">Power Automate Error Handling and Retry Design — Preventing &apos;The Flow Was Working, Then It Just Stopped&apos;</title>
    <id>https://comcomponent.com/en/blog/power-automate-error-handling-retry-design/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/power-automate-error-handling-retry-design/"/>
    <published>2026-07-18T01:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">A collection of design patterns for preventing Power Automate flows from silently stopping without anyone noticing. Based on Microsoft Learn&apos;s official specifications, we cover default retry policy values, Try-Catch using scopes, failure notifications, resubmission and idempotency, and concurrency control.</summary>
    
    
    
    <category term="Power Automate"/>
    
    <category term="Error Handling"/>
    
    <category term="Cloud Flow"/>
    
    <category term="Retry"/>
    
    <category term="Idempotency"/>
    
    <category term="Operational Monitoring"/>
    
    <category term="Business Automation"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">PowerShell Error Handling and Retry Design — From the try/catch Trap to Exit Codes and Retry Best Practices</title>
    <id>https://comcomponent.com/en/blog/powershell-error-handling-retry-design/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/powershell-error-handling-retry-design/"/>
    <published>2026-07-18T00:30:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">A practical rundown of PowerShell error handling: the difference between terminating and non-terminating errors, the -ErrorAction Stop pattern for the try/catch trap, judging success or failure with $LASTEXITCODE, exit code design, and retrying with exponential backoff.</summary>
    
    
    
    <category term="PowerShell"/>
    
    <category term="Windows"/>
    
    <category term="Error Handling"/>
    
    <category term="Retry"/>
    
    <category term="Automation"/>
    
    <category term="Operational Improvement"/>
    
    <category term="Script"/>
    
    <category term="Task Scheduler"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Designing Scheduled Flows in Power Automate — Month-End Processing, Business-Day Checks, and Reminders in Practice</title>
    <id>https://comcomponent.com/en/blog/power-automate-scheduled-flow-business-day-design/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/power-automate-scheduled-flow-business-day-design/"/>
    <published>2026-07-18T00:30:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">A practical guide to automating recurring processes with Power Automate&apos;s Recurrence trigger. Covers the trap of the default time zone being UTC, date expressions, business-day checks driven by a holiday master list, reminder design, and operational cautions such as the 90-day automatic turn-off.</summary>
    
    
    
    <category term="Power Automate"/>
    
    <category term="Cloud Flow"/>
    
    <category term="Scheduled Execution"/>
    
    <category term="Business Day"/>
    
    <category term="Public Holidays"/>
    
    <category term="SharePoint"/>
    
    <category term="Microsoft 365"/>
    
    <category term="Business Automation"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">PowerShell Execution Policy and Script Signing — A Practical Guide to Graduating From &quot;Papering Over It With Bypass&quot;</title>
    <id>https://comcomponent.com/en/blog/powershell-execution-policy-script-signing/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/powershell-execution-policy-script-signing/"/>
    <published>2026-07-18T00:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">PowerShell&apos;s execution policy is &quot;a safety feature, not a security boundary.&quot; This article covers the differences between policies like RemoteSigned, scope precedence, Mark of the Web and Unblock-File, script signing, and realistic operational patterns for internal distribution.</summary>
    
    
    
    <category term="PowerShell"/>
    
    <category term="Windows"/>
    
    <category term="Execution Policy"/>
    
    <category term="Code Signing"/>
    
    <category term="Security"/>
    
    <category term="Script"/>
    
    <category term="Operational Improvement"/>
    
    <category term="Automation"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Automating Data Entry Into Legacy Core Systems With Power Automate for Desktop — Replacing Manual Entry From Excel and Paper With UI Automation</title>
    <id>https://comcomponent.com/en/blog/power-automate-desktop-legacy-app-data-entry/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/power-automate-desktop-legacy-app-data-entry/"/>
    <published>2026-07-18T00:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">A practical guide to replacing manual data entry into old core systems that have no API, using UI automation in Power Automate for desktop (PAD). Covers what you can do for free, the licensing needed for unattended runs, and stabilizing flows with selectors and error handling.</summary>
    
    
    
    <category term="Power Automate"/>
    
    <category term="RPA"/>
    
    <category term="Desktop Flow"/>
    
    <category term="UI Automation"/>
    
    <category term="Excel"/>
    
    <category term="Core System"/>
    
    <category term="Business Automation"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Automating Purchase-Order and Invoice PDFs That Arrive by Email With Power Automate — Designing Storage, Routing, Notification, and Extraction</title>
    <id>https://comcomponent.com/en/blog/power-automate-email-attachment-automation/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/power-automate-email-attachment-automation/"/>
    <published>2026-07-17T12:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">A practical guide to automating the storage, routing, and notification of purchase-order and invoice PDFs that arrive by email with Power Automate, covering the Outlook trigger and shared-mailbox prerequisites, avoiding false positives from signature images, and reading document contents with AI Builder along with its licensing caveats.</summary>
    
    
    
    <category term="Power Automate"/>
    
    <category term="Cloud Flow"/>
    
    <category term="Outlook"/>
    
    <category term="SharePoint"/>
    
    <category term="AI Builder"/>
    
    <category term="Business Automation"/>
    
    <category term="Email"/>
    
    <category term="Office"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Building an Approval Workflow in Power Automate — Digitizing Paper and Email-Based Approval Requests</title>
    <id>https://comcomponent.com/en/blog/power-automate-approval-workflow-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/power-automate-approval-workflow-guide/"/>
    <published>2026-07-17T11:30:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">A practical guide to digitizing paper approval forms and email-attached Excel requests with Power Automate: the types of approval actions, choosing among Forms, SharePoint, and Teams, how to preserve records given the run-history retention limits, and handling rejections and resubmission.</summary>
    
    
    
    <category term="Power Automate"/>
    
    <category term="Approval Workflow"/>
    
    <category term="Cloud Flow"/>
    
    <category term="Microsoft 365"/>
    
    <category term="Teams"/>
    
    <category term="SharePoint"/>
    
    <category term="Forms"/>
    
    <category term="Business Automation"/>
    
    <category term="Approval Request"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Migrating Excel VBA Macros to Power Automate — What to Replace with Office Scripts, and What to Leave as VBA</title>
    <id>https://comcomponent.com/en/blog/excel-vba-to-power-automate-office-scripts/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/excel-vba-to-power-automate-office-scripts/"/>
    <published>2026-07-17T11:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">A guide to whether Excel VBA macros can migrate to Power Automate, covering what Office Scripts can replace, what only VBA can still do, connector limits, licensing requirements, and a phased migration approach that starts with an inventory.</summary>
    
    
    
    <category term="Power Automate"/>
    
    <category term="VBA"/>
    
    <category term="Excel"/>
    
    <category term="Office"/>
    
    <category term="Office Scripts"/>
    
    <category term="Business Automation"/>
    
    <category term="Cloud Flow"/>
    
    <category term="Legacy Asset Reuse"/>
    
    <category term="Migration"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Information Security 10 Major Threats 2026 — How to Read the Ranking, and What SMEs Should Actually Guard Against</title>
    <id>https://comcomponent.com/en/blog/ipa-10-major-threats-2026/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/ipa-10-major-threats-2026/"/>
    <published>2026-07-17T08:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">In IPA&apos;s &apos;Information Security 10 Major Threats 2026,&apos; ransomware attacks took first place for the 11th year running, supply chain attacks came in second, and &apos;cyber risk around AI use,&apos; selected for the first time, entered at third. This article walks through the organizational top 10 and explains which threats SMEs should treat as their own problem and act on.</summary>
    
    
    
    <category term="Information Security"/>
    
    <category term="Security Measures"/>
    
    <category term="Top 10 Threats"/>
    
    <category term="Ransomware"/>
    
    <category term="Supply Chain Attack"/>
    
    <category term="AI"/>
    
    <category term="SME"/>
    
    <category term="IPA"/>
    
    <category term="B2B"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Incident Response Doesn&apos;t End at Recovery — A Postmortem (Recurrence Prevention) Template for Small Development Teams</title>
    <id>https://comcomponent.com/en/blog/postmortem-recurrence-prevention-small-teams/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/postmortem-recurrence-prevention-small-teams/"/>
    <published>2026-07-17T07:50:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">Treating an incident as over once it&apos;s fixed and apologized for guarantees you&apos;ll repeat it. This article translates the blameless postmortem for small teams, covering a template you can write in an hour, a strength decision table for recurrence-prevention measures, and how to triage which incidents get one.</summary>
    
    
    
    <category term="Bug Investigation"/>
    
    <category term="Logging Design"/>
    
    <category term="Postmortem"/>
    
    <category term="Recurrence Prevention"/>
    
    <category term="Operations"/>
    
    <category term="Maintenance"/>
    
    <category term="Windows Development"/>
    
    <category term="Technical Consulting"/>
    
    <category term="Decision Table"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">An Introduction to ADRs (Architecture Decision Records) — The Minimal Way to Record &apos;Why We Designed It This Way&apos; on a Small Team</title>
    <id>https://comcomponent.com/en/blog/adr-architecture-decision-record-small-teams/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/adr-architecture-decision-record-small-teams/"/>
    <published>2026-07-17T07:40:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">Code never explains why it was written that way. We cover how to use an ADR (Architecture Decision Record) — one decision, one Markdown file — to preserve the reasoning behind a design choice, complete with a template, a decision table for what to write up and what not to, and worked examples.</summary>
    
    
    
    <category term="Design"/>
    
    <category term="Design Review"/>
    
    <category term="Documentation"/>
    
    <category term="ADR"/>
    
    <category term="Technical Consulting"/>
    
    <category term="Maintenance"/>
    
    <category term="Contract Development"/>
    
    <category term="Windows Development"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">DLL and COM Interface Backward Compatibility — A Decision Table for Which Changes Break Callers</title>
    <id>https://comcomponent.com/en/blog/dll-com-interface-backward-compatibility/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/dll-com-interface-backward-compatibility/"/>
    <published>2026-07-17T07:30:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">Which changes to a DLL or COM component actually break their callers? We lay out the three layers of compatibility — binary, source, and behavioral — a decision table organized by kind of change, the iron rule that COM interfaces never change, and a practical guide to running semver.</summary>
    
    
    
    <category term="COM"/>
    
    <category term="DLL"/>
    
    <category term=".NET"/>
    
    <category term="C#"/>
    
    <category term="C++"/>
    
    <category term="Backward Compatibility"/>
    
    <category term="Versioning"/>
    
    <category term="Legacy Technology"/>
    
    <category term="Legacy Asset Reuse"/>
    
    <category term="Decision Table"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Versioning Your Business App&apos;s Database Schema — Migration Practices to Prevent &apos;Every Customer Has a Different DB&apos;</title>
    <id>https://comcomponent.com/en/blog/db-schema-migration-versioning-business-apps/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/db-schema-migration-versioning-business-apps/"/>
    <published>2026-07-17T07:20:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">A practical guide to versioning the database schema of a business app whose databases are scattered across customer sites. Covers PRAGMA user_version and a C# implementation of forward migrations, a decision table for EF Core Migrations, DbUp, and hand-rolled implementations, and two-stage expand-contract releases.</summary>
    
    
    
    <category term="Database"/>
    
    <category term="SQLite"/>
    
    <category term="SQL Server"/>
    
    <category term="Migration"/>
    
    <category term="Schema Management"/>
    
    <category term="C#"/>
    
    <category term=".NET"/>
    
    <category term="Maintenance"/>
    
    <category term="Decision Table"/>
    
    <category term="Windows Development"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">CI/CD for WinForms / WPF Apps in Practice — Automating from Build to Signing and Distribution with GitHub Actions</title>
    <id>https://comcomponent.com/en/blog/winforms-wpf-cicd-github-actions/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/winforms-wpf-cicd-github-actions/"/>
    <published>2026-07-17T07:10:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">A practical guide to setting up CI/CD for WinForms / WPF apps with GitHub Actions. Covers a minimal YAML for build+test on windows-latest, tag-driven version numbering, wiring up signtool for code signing, and a CI-integration decision table broken down by MSI/MSIX/ClickOnce/xcopy.</summary>
    
    
    
    <category term="CI/CD"/>
    
    <category term="GitHub Actions"/>
    
    <category term="WinForms"/>
    
    <category term="WPF"/>
    
    <category term="C#"/>
    
    <category term=".NET"/>
    
    <category term="Code Signing"/>
    
    <category term="MSIX"/>
    
    <category term="Deployment"/>
    
    <category term="Windows Development"/>
    
    <category term="Decision Table"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Safely Modifying a Legacy Business App That Has No Tests — Characterization Testing and Refactoring in Practice</title>
    <id>https://comcomponent.com/en/blog/characterization-test-legacy-refactoring/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/characterization-test-legacy-refactoring/"/>
    <published>2026-07-17T07:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">To safely modify a business application with no tests, this article explains, with C# examples, the procedure for a characterization test (the golden master method) that pins down current behavior, how to create seams, and the operational rules for keeping refactoring and feature work separate.</summary>
    
    
    
    <category term="Legacy Technology"/>
    
    <category term="Legacy Asset Reuse"/>
    
    <category term="Refactoring"/>
    
    <category term="Test Design"/>
    
    <category term="Characterization Testing"/>
    
    <category term="C#"/>
    
    <category term=".NET"/>
    
    <category term="Maintenance"/>
    
    <category term="Decision Table"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Don&apos;t Forget to Decide &apos;How Many Seconds Is Fast Enough&apos; — Organizing Non-Functional Requirements With IPA&apos;s Non-Functional Requirements Grade</title>
    <id>https://comcomponent.com/en/blog/ipa-non-functional-requirements-grade/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/ipa-non-functional-requirements-grade/"/>
    <published>2026-07-17T06:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">Disputes like &apos;it&apos;s too slow&apos; or &apos;we didn&apos;t expect that failure response&apos; usually trace back to non-functional requirements nobody decided on. This article explains, in plain terms for the client side, the six major categories of IPA&apos;s Non-Functional Requirements Grade, how to use the grade table and model systems, and a realistic way to apply it.</summary>
    
    
    
    <category term="Non-Functional Requirements"/>
    
    <category term="Requirements Definition"/>
    
    <category term="Contract Development"/>
    
    <category term="System Development"/>
    
    <category term="Non-Functional Requirements Grade"/>
    
    <category term="IPA"/>
    
    <category term="Design"/>
    
    <category term="Technical Consulting"/>
    
    <category term="B2B"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Should Contracted Development Specs Stay in Excel? — Choosing the Right Format for Deliverables</title>
    <id>https://comcomponent.com/en/blog/deliverable-spec-documents-format-excel-word/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/deliverable-spec-documents-format-excel-word/"/>
    <published>2026-07-17T06:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">Should the specification and design documents delivered in contracted development stay in Excel &apos;graph paper&apos; format? This article works through the problems with Excel-based specs from an acceptance-testing and maintenance standpoint, and explains how to choose a format that actually works as a deliverable — including Word and generating documents from a Markdown source.</summary>
    
    
    
    <category term="Contract Development"/>
    
    <category term="Specification Document"/>
    
    <category term="Design Document"/>
    
    <category term="Deliverables"/>
    
    <category term="Acceptance Testing"/>
    
    <category term="Specification Change"/>
    
    <category term="Document Management"/>
    
    <category term="Excel"/>
    
    <category term="Word"/>
    
    <category term="BtoB"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">What Website Clients Should Know Too — Using IPA&apos;s &apos;How to Secure Your Website&apos; as a Checklist</title>
    <id>https://comcomponent.com/en/blog/ipa-secure-website-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/ipa-secure-website-guide/"/>
    <published>2026-07-17T04:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">What standard should you use to check your company website&apos;s security against? This article explains the 11 vulnerabilities and countermeasures covered in IPA&apos;s &apos;How to Secure Your Website,&apos; in language that makes sense to clients and site operators, and shows how to use it when placing an order, at acceptance, and during ongoing operation.</summary>
    
    
    
    <category term="Website Development"/>
    
    <category term="Website Development"/>
    
    <category term="Information Security"/>
    
    <category term="Vulnerability"/>
    
    <category term="SQL Injection"/>
    
    <category term="Cross-Site Scripting"/>
    
    <category term="IPA"/>
    
    <category term="WordPress"/>
    
    <category term="B2B"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">When Your In-House Windows App Gets Flagged as a Virus — Handling Microsoft Defender False Positives and Living With the Performance Impact</title>
    <id>https://comcomponent.com/en/blog/windows-defender-false-positive-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-defender-false-positive-guide/"/>
    <published>2026-07-17T04:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">We lay out the proper way to respond when Microsoft Defender flags your in-house Windows app as malware: how modern antivirus detection actually works, how to submit a false-positive report to Microsoft, how to restore a file from quarantine, and how to set up exclusions correctly along with their risks.</summary>
    
    
    
    <category term="Microsoft Defender"/>
    
    <category term="Antivirus"/>
    
    <category term="False Positive"/>
    
    <category term="Code Signing"/>
    
    <category term="SmartScreen"/>
    
    <category term="App Deployment"/>
    
    <category term="Security"/>
    
    <category term="C#"/>
    
    <category term=".NET"/>
    
    <category term="Windows Development"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Sleep, Hibernation, Modern Standby, and Long-Running Apps — Designing Around &apos;It Stopped Overnight&apos;</title>
    <id>https://comcomponent.com/en/blog/windows-sleep-modern-standby-long-running-apps/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-sleep-modern-standby-long-running-apps/"/>
    <published>2026-07-17T03:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">Why a long-running Windows app can end up &apos;stopped by the time you check it in the morning,&apos; worked through from the differences between S3 sleep, hibernation, and Modern Standby. Covers how timers and TCP connections behave during sleep, and how to suppress sleep with SetThreadExecutionState.</summary>
    
    
    
    <category term="Sleep"/>
    
    <category term="Modern Standby"/>
    
    <category term="Power Management"/>
    
    <category term="SetThreadExecutionState"/>
    
    <category term="Long-Running"/>
    
    <category term="Timer"/>
    
    <category term="Tray-Resident App"/>
    
    <category term="C#"/>
    
    <category term=".NET"/>
    
    <category term="Bug Investigation"/>
    
    <category term="Windows Development"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Where Should SMEs Start on Security? — A Walkthrough of IPA&apos;s &apos;Information Security Guidelines for SMEs,&apos; 4th Edition</title>
    <id>https://comcomponent.com/en/blog/ipa-sme-security-guideline-v4/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/ipa-sme-security-guideline-v4/"/>
    <published>2026-07-17T02:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">Where should small and medium-sized businesses start on security? Drawing on IPA&apos;s &apos;Information Security Guidelines for Small and Medium Enterprises,&apos; 4th edition, this article walks through the Six Articles of Information Security, the 5-minute self-assessment, and SECURITY ACTION step by step.</summary>
    
    
    
    <category term="Information Security"/>
    
    <category term="Security Measures"/>
    
    <category term="SME"/>
    
    <category term="IPA"/>
    
    <category term="SECURITY ACTION"/>
    
    <category term="Ransomware"/>
    
    <category term="Backup"/>
    
    <category term="Business Improvement"/>
    
    <category term="B2B"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Do Business Apps Run on Windows on Arm? — The Reality of x64 Emulation (Prism) and Native DLLs/COM</title>
    <id>https://comcomponent.com/en/blog/windows-on-arm-business-apps/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-on-arm-business-apps/"/>
    <published>2026-07-17T02:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">An answer, aimed at developers and IT staff, to &apos;will our business app run on Windows on Arm?&apos; Covers how x64 emulation (Prism) works, the layers it can&apos;t reach (like drivers), the AnyCPU/P-Invoke combination problem in .NET, and an Arm-readiness checklist.</summary>
    
    
    
    <category term="Windows on Arm"/>
    
    <category term="Arm64"/>
    
    <category term="x64 Emulation"/>
    
    <category term="Native Interop"/>
    
    <category term="P/Invoke"/>
    
    <category term="COM"/>
    
    <category term="Driver"/>
    
    <category term="C#"/>
    
    <category term=".NET"/>
    
    <category term="Windows Development"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">When You Inherit a System With No Source Code and No Documentation — A Practical Playbook for Keeping It Running</title>
    <id>https://comcomponent.com/en/blog/no-source-no-docs-system-maintenance/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/no-source-no-docs-system-maintenance/"/>
    <published>2026-07-17T01:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">A practical playbook for starting operations and maintenance on a business system that has no source code and no specifications. Covers preserving and backing up the running environment, taking inventory of executables and databases, recovering specifications from observed behavior, and deciding between life support, wrapping, and rebuilding.</summary>
    
    
    
    <category term="Legacy Technology"/>
    
    <category term="Legacy Asset Reuse"/>
    
    <category term="Operations &amp; Maintenance"/>
    
    <category term="Maintenance"/>
    
    <category term="Black Box"/>
    
    <category term="Reverse Engineering"/>
    
    <category term="Handover"/>
    
    <category term="Bug Investigation"/>
    
    <category term="Technical Consulting"/>
    
    <category term="Windows Development"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">MAX_PATH and Windows Path/Filename Pitfalls — the 260-Character Limit, Reserved Names, Trailing Dots, and Case Sensitivity</title>
    <id>https://comcomponent.com/en/blog/windows-max-path-filename-pitfalls/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-max-path-filename-pitfalls/"/>
    <published>2026-07-17T01:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">A rundown of the path and filename limits behind the classic &apos;file not found&apos; bug. Covers the breakdown of MAX_PATH=260, enabling long paths with LongPathsEnabled, reserved names like CON, normalization of trailing dots, and the Path.Combine trap.</summary>
    
    
    
    <category term="MAX_PATH"/>
    
    <category term="File Path"/>
    
    <category term="Long Path"/>
    
    <category term="Filename"/>
    
    <category term="NTFS"/>
    
    <category term="Win32"/>
    
    <category term="C#"/>
    
    <category term=".NET"/>
    
    <category term="Windows Development"/>
    
    <category term="Bug Investigation"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">How Should You Structure a Contract Development or Operations &amp; Maintenance Contract? — Learning the Quasi-Mandate vs. Contract-for-Work Distinction from IPA&apos;s &apos;Model Contract&apos;</title>
    <id>https://comcomponent.com/en/blog/ipa-model-contract-development-maintenance/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/ipa-model-contract-development-maintenance/"/>
    <published>2026-07-17T01:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">When you outsource system development, how should the contract be structured? Drawing on the &apos;Information System Model Transaction and Contract&apos; published by IPA, this article explains, in terms accessible to the client side too, the thinking behind multi-stage contracts, the difference between quasi-mandate and contract-for-work agreements, and what an operations and maintenance contract needs to spell out.</summary>
    
    
    
    <category term="System Development Contract"/>
    
    <category term="Contract Development"/>
    
    <category term="Operations &amp; Maintenance"/>
    
    <category term="Quasi-Mandate Contract"/>
    
    <category term="Contract for Work"/>
    
    <category term="IPA"/>
    
    <category term="Model Contract"/>
    
    <category term="BtoB"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Pitfalls of Network Drives and UNC Paths — Working With File Servers (Shared Folders) From a Business Application</title>
    <id>https://comcomponent.com/en/blog/network-share-unc-path-pitfalls/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/network-share-unc-path-pitfalls/"/>
    <published>2026-07-17T00:00:00+00:00</published>
    <updated>2026-07-20T00:00:00+00:00</updated>
    
    <summary type="text">This article organizes the classic problems that show up when a business application writes to or watches a shared folder: why a drive letter (Z:) is invisible from a service, the permissions each service execution account needs, error 1219, and the caveats around FileSystemWatcher.</summary>
    
    
    
    <category term="Network Drive"/>
    
    <category term="UNC Path"/>
    
    <category term="SMB"/>
    
    <category term="File Sharing"/>
    
    <category term="Windows Service"/>
    
    <category term="File Server"/>
    
    <category term="C#"/>
    
    <category term=".NET"/>
    
    <category term="Networking"/>
    
    <category term="Bug Investigation"/>
    
    <category term="Windows Development"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">What Is a Digital Invoice? How Is It Different From Emailing a PDF Invoice?</title>
    <id>https://comcomponent.com/en/blog/what-is-digital-invoice-peppol-jp-pint/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/what-is-digital-invoice-peppol-jp-pint/"/>
    <published>2026-07-16T10:00:00+00:00</published>
    <updated>2026-07-16T00:00:00+00:00</updated>
    
    <summary type="text">A digital invoice is a mechanism for exchanging invoice data directly from a seller&apos;s system to a buyer&apos;s system, without a person in the loop. This article explains, in plain terms, how it differs from PDF invoices, how it relates to Japan&apos;s Invoice System, how Peppol and JP PINT work, its relationship to Japan&apos;s Electronic Bookkeeping Act, and how small and midsize businesses can realistically get started.</summary>
    
    
    
    <category term="Digital Invoice"/>
    
    <category term="Invoice System"/>
    
    <category term="Peppol"/>
    
    <category term="JP PINT"/>
    
    <category term="Invoicing"/>
    
    <category term="Electronic Bookkeeping Act"/>
    
    <category term="EDI"/>
    
    <category term="B2B Transactions"/>
    
    <category term="Business Efficiency"/>
    
    <category term="System Integration"/>
    
    <category term="BtoB"/>
    
    <category term="DX"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">System Tray Icons and Toast Notifications in Windows Apps — NotifyIcon Pitfalls and Choosing the Right AppNotification API</title>
    <id>https://comcomponent.com/en/blog/windows-tray-icon-toast-notification-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/windows-tray-icon-toast-notification-guide/"/>
    <published>2026-07-16T09:00:00+00:00</published>
    <updated>2026-07-16T00:00:00+00:00</updated>
    
    <summary type="text">A practical guide to keeping a business Windows app resident in the system tray and notifying users with toast notifications. Covers the correct use of NotifyIcon, the design for &quot;close to tray&quot; behavior, re-registration after Explorer restarts, a decision table for the three toast APIs (Windows App SDK AppNotification / Community Toolkit / Windows.UI.Notifications), constraints for unpackaged apps, cases where notifications don&apos;t arrive, and architectures for sending notifications from a Win...</summary>
    
    
    
    <category term="System Tray"/>
    
    <category term="NotifyIcon"/>
    
    <category term="Toast Notifications"/>
    
    <category term="AppNotification"/>
    
    <category term="Windows App SDK"/>
    
    <category term="WinForms"/>
    
    <category term="WPF"/>
    
    <category term="C#"/>
    
    <category term=".NET"/>
    
    <category term="Tray-Resident App"/>
    
    <category term="Windows Development"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">Migrating from WordPress to Movable Type — A Practical Guide Worth Documenting Precisely Because It Runs &apos;the Other Way&apos;</title>
    <id>https://comcomponent.com/en/blog/wordpress-to-movabletype-migration-practical-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/wordpress-to-movabletype-migration-practical-guide/"/>
    <published>2026-07-16T08:00:00+00:00</published>
    <updated>2026-07-16T00:00:00+00:00</updated>
    
    <summary type="text">A practical, hands-on walkthrough of migrating from WordPress to Movable Type (MovableType.net): when the migration makes sense, importing posts, pages, and images, handling custom post types, carrying over SEO through URL design and 301 redirects, and replacing plugin functionality.</summary>
    
    
    
    <category term="Website Development"/>
    
    <category term="Existing Site Improvement"/>
    
    <category term="SEO"/>
    
    <category term="CMS"/>
    
    <category term="WordPress"/>
    
    <category term="Movable Type"/>
    
    <category term="Site Migration"/>
    
    <category term="Small and Medium Businesses"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
  <entry xml:lang="en">
    <title type="text">How Long Will VB6 Apps Keep Running? — Runtime Support Status and a Practical Path to .NET Migration</title>
    <id>https://comcomponent.com/en/blog/vb6-to-dotnet-migration-practical-guide/</id>
    <link rel="alternate" type="text/html" href="https://comcomponent.com/en/blog/vb6-to-dotnet-migration-practical-guide/"/>
    <published>2026-07-16T06:00:00+00:00</published>
    <updated>2026-07-16T00:00:00+00:00</updated>
    
    <summary type="text">How long will VB6 applications keep running? This practical guide clarifies the asymmetry between the VB6 runtime support policy (still supported on Windows 11) and the fact that IDE support has already ended, then covers the decision table for full rewrite vs. automated conversion vs. staged migration, the pre-migration inventory, VB6/.NET incompatibilities, and the choice between C# and VB.NET.</summary>
    
    
    
    <category term="VB6"/>
    
    <category term=".NET"/>
    
    <category term="C#"/>
    
    <category term="Legacy Technology"/>
    
    <category term="Legacy Asset Reuse"/>
    
    <category term="Migration"/>
    
    <category term="Modernization"/>
    
    <category term="32-bit"/>
    
    <category term="Windows Development"/>
    
    <category term="Decision Table"/>
    
    <category term="Technical Consulting"/>
    
    
    <author>
      <name>Go Komura</name>
    </author>
  </entry>
  
</feed>
