知識マップ: 開発者の異常な愛情、または私は如何にして心配するのをやめてWindowsを愛するようになったか

記事「開発者の異常な愛情、または私は如何にして心配するのをやめてWindowsを愛するようになったか」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

この随筆は、Windowsアプリ開発につきまとう「環境ごとに壊れるかもしれない」という不安の正体を、Windowsが積み重ねてきた後方互換性という性質から説明します。32bitアプリを64bit Windows上で動かすWOW64、レジストリ登録とビット一致が必要なCOMコンポーネント、今も現場に残る.NET Frameworkアプリ、高DPIや長いパスへの対応、配布方法の選定など、心配の種の多くは古い資産を切り捨てずに動かし続けてきた結果として生まれています。筆者は、その心配をなくすのではなく、Application VerifierやWinDbg、Get-WinEventによる観察とテストという設計に変えることを提案し、そこにWindowsを愛する理由を見出しています。

Windowsの後方互換性への愛の知識マップWindowsアプリ開発者が抱く環境差異への不安が、COMやWOW64、.NET Frameworkといった後方互換性の中身と結びつき、Application VerifierやWinDbg、Get-WinEventによる観察でどう設計に変えられるかを示す図。前提とする前提とするで構成できる前提とする前提とする前提とするの後継前提とする前提とする前提とする前提とする推奨される対応推奨される対応推奨される対応Windowsの後方互換性COM(コンポーネントオブジェクトモデル)bitness一致要件regsvr32WOW64.NET Framework.NET(Core以降)高DPI対応Windows Forms長いパス・UNCパス・日本語パスへの対応アプリの配布方法Application VerifierWinDbgGet-WinEvent

概念間の関係(全14件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

Windowsの後方互換性
古いAPI・ランタイム・アプリを切り捨てず、世代を超えて動かし続けられるようにするWindowsの性質。
COM(コンポーネントオブジェクトモデル)
公開インターフェース、レジストリ登録、Apartment Modelなどを土台にした、Windowsのバイナリ互換コンポーネントモデル。
.NET(Core以降)
.NET Frameworkの後継となる、クロスプラットフォーム対応の.NETランタイム(.NET 5以降)。
Windows Forms
デスクトップGUIアプリケーションを構築するための.NET/.NET FrameworkのUIフレームワーク。
Application Verifier
Windowsのuser-modeアプリに対するランタイム検証ツールで、OS API利用や資源の扱い方を監視し誤用の検出や意図的な失敗の注入を行う。
WinDbg
クラッシュダンプやハングしたプロセスの状態をカーネル/ユーザーモードで解析するためのMicrosoft製デバッガー。SOS拡張によるマネージドヒープ解析や、Application Verifierの検出結果の解析にも使われる。
Get-WinEvent
イベントログをフィルターして取得するPowerShellコマンドレット。FilterHashtableでの絞り込みに対応し、NTLM監査ログなど大量のイベントの集計に使う。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。