タグ「.NET」の記事
「.NET」タグが付いた記事の一覧です(58件)。新しい順に掲載しています。
-
DLL・COMインターフェースの後方互換性 ── どの変更が呼び出し側を壊すのかの判断表
DLLやCOMコンポーネントのどの変更が呼び出し側を壊すのか。バイナリ互換・ソース互換・動作互換の3層を整理し、ネイティブDLLと.NETアセンブリの変更内容別の判断表、COMインターフェース不変の鉄則(IFoo2方式)、AssemblyVersionの使い分け、semver運用までを実務ガイドとしてまとめます。
-
業務アプリのDBスキーマをバージョン管理する ── 「客先ごとにDBが違う」を防ぐマイグレーションの実践
客先ごとに分散する業務アプリのDBスキーマをバージョン管理する実践ガイド。PRAGMA user_versionと前進マイグレーションのC#実装、EF Core Migrations・DbUp・自前実装の判断表、expand-contractの2段階リリース、適用前バックアップ、途中失敗や同時起動への対策まで整理...
-
WinForms / WPFアプリのCI/CD実践 ── GitHub Actionsでビルドから署名・配布まで自動化する
WinForms / WPFアプリのCI/CDをGitHub Actionsで組む実務ガイド。windows-latestでのビルド+テストの最小YAML、タグ駆動のバージョン採番、signtoolによる署名の組み込み、MSI/MSIX/ClickOnce/xcopy別のCI統合判断表をまとめます。
-
テストのないレガシー業務アプリに安全に手を入れる ── 特性化テストとリファクタリングの実践
テストのない業務アプリを「触ると壊れそうで直せない」と感じている方向けに、現在の挙動を固定する特性化テスト(ゴールデンマスター法)の具体手順、テストを差し込む継ぎ目(seam)の作り方、どこまで整備するかの判断表、リファクタリングと機能追加を混ぜない運用ルールをC#の例とともに解説します。
-
自社開発のWindowsアプリがウイルス扱いされたら ── Microsoft Defenderの誤検知対応と、性能影響との付き合い方
配布した自社開発のWindowsアプリがMicrosoft Defenderにウイルスとして検知・隔離されたときの正規の対処を整理します。機械学習・クラウド保護・レピュテーションという現代のウイルス対策の仕組み、Microsoftへの誤検知報告(ファイル申請)、隔離からの復元、除外設定の正しい入れ方とリスク、Pe...
-
スリープ・休止・Modern Standbyと長時間稼働アプリ ── 「夜中に止まっていた」を設計で防ぐ
計測・監視・データ収集など長時間動き続けるWindowsアプリが「朝見たら止まっていた」となる原因を、S3スリープ/休止/Modern Standbyの違いから整理します。スリープ中のスレッド・タイマー・TCP接続の挙動、SetThreadExecutionStateと電源要求による抑止、PowerModeCha...
-
Arm版Windowsで業務アプリは動くのか ── x64エミュレーション(Prism)とネイティブDLL・COMの現実
Snapdragon搭載のCopilot+ PC導入で増える「Arm機で業務アプリは動くのか」という質問に、開発者・情シス向けに答えます。Windows 11のx64エミュレーション(Prism)の仕組み、ドライバー・シェル拡張など動かない層、x64とArm64をプロセス内で混在できないルール、.NETのAnyC...
-
MAX_PATHとWindowsのパス・ファイル名の落とし穴 ── 260文字制限、予約名、末尾ドット、大文字小文字
Windowsの「ファイルが見つかりません」障害の定番原因であるパス・ファイル名の制限を整理します。MAX_PATH=260文字の内訳、\\?\プレフィックスとLongPathsEnabled+マニフェストによる長パス有効化、.NET Framework / .NET(Core)での挙動差、CON・NULなどの予...
-
ネットワークドライブとUNCパスの落とし穴 ── 業務アプリでファイルサーバー(共有フォルダ)を扱う実務
業務アプリからファイルサーバー(共有フォルダ)へ出力・取り込み・監視を行うときの定番トラブルを整理します。ドライブ文字(Z:)がログオンセッション単位でありサービスや昇格プロセスから見えない理由、Windowsサービスの実行アカウントごとに共有側で必要な権限、資格情報とエラー1219、切断・遅延前提の設計、SMB...
-
Windowsアプリのタスクトレイ常駐とトースト通知 ── NotifyIconの落とし穴とAppNotificationの選び方
業務Windowsアプリをタスクトレイに常駐させ、トースト通知でユーザーへ知らせる実装を整理します。NotifyIconの正しい使い方と「閉じるでトレイへ」の設計、Explorer再起動時の再登録、トーストAPI3種(Windows App SDK AppNotification / Community Tool...
-
VB6アプリはいつまで動くのか ── ランタイムのサポート状況と現実的な.NET移行の進め方
VB6アプリケーションはいつまで動くのか。VB6ランタイムのサポートポリシー(Windows 11でも動作対象)と、IDEサポート終了済みという非対称な現状を整理し、全面リライト・自動変換・段階移行の判断表、移行前の棚卸し、VB6と.NETの非互換、C#とVB.NETの選択までを実務ガイドとしてまとめます。
-
業務アプリの和暦・祝日・締め日処理 ── 改元に強い設計とJapaneseCalendar・営業日計算の実務
帳票の「令和8年」表示、祝日を除いた営業日計算、20日締め翌月末払い──日本の業務アプリ特有の日付処理は、改元・祝日の法改正・月末の丸めという「あとから変わる仕様」を抱えています。JapaneseCalendarによる和暦表示と改元に強い設計、祝日をハードコードしてはいけない理由と内閣府CSVを使った祝日マスタ運...
-
WinForms/WPFアプリの多言語化 ── resx・サテライトアセンブリ・カルチャ切り替えの実務
Windowsデスクトップアプリの多言語化を、CurrentCultureとCurrentUICultureの違い、resxとサテライトアセンブリによるリソースの仕組み、WinFormsのLocalizableプロパティ、WPFでの現実的な方式選択、実行時の言語切り替え、レイアウト・書式・RTLまで含めて実務目線...
-
CSVは「ただのテキスト」ではない ── C#業務アプリのCSV実務(文字コード・Excel互換・インジェクション対策)
業務アプリのCSV入出力で事故が起きる典型パターン──Split(',')による自作パース、BOMなしUTF-8のExcel文字化け、先頭ゼロ落ち、CSVインジェクション──を整理し、RFC 4180のルール、.NETでのShift_JISの扱い(CodePagesEncodingProvider)、TextFi...
-
HttpClientをusingで囲んではいけない ── C#業務アプリのHTTP通信実務(生成パターン・タイムアウト・リトライ)
C#のHttpClientを毎回usingで生成するとソケット枯渇、staticにするとDNS変更に追従しない──この2大問題の仕組みと、PooledConnectionLifetime・IHttpClientFactoryによる正しい生成パターン、タイムアウト設計、Microsoft.Extensions.Ht...
-
PerfViewとdotnet-traceで「遅い」を特定する ── .NETパフォーマンス調査の実務入門
業務アプリが「遅い」「CPUが張り付く」「たまに固まる」とき、どのツールで何を見ればよいのか。PerfViewとdotnet-traceの役割分担、CPUサンプリングの読み方(inclusive/exclusive)、ThreadTimeによるブロック時間の調査、EventSource独自イベントとの組み合わせま...
-
Windowsイベントログ・ETW入門 ── 業務アプリのログをOS標準の仕組みに乗せる
Windows業務アプリのログをファイルログだけで済ませていないでしょうか。イベントログとETWは、運用担当者やOS標準ツールから見える別レイヤーの記録です。3手段の使い分け、.NETからの書き込み方法、EventSourceによるETW計装、収集・調査の実務、ソース未登録やログ肥大化などの落とし穴までを解説します。
-
appsettings.jsonだけじゃない ── Windows業務アプリの構成管理実務(環境別設定・秘密情報・書き込み先)
Windows業務アプリの構成管理を、appsettings.jsonの階層化、IConfigurationとIOptions/IOptionsSnapshot/IOptionsMonitorの使い分け、環境別設定、書き込み可能な設定の置き場所、秘密情報の扱い、実行中の設定変更、app.configからの移行まで...
-
Windows業務アプリの印刷とPDF出力 ── System.Drawing.Printing / WPF / 帳票ライブラリの使い分け
PrintDocumentによるWinForms印刷、WPFのFlowDocument/FixedDocument印刷、PDF出力の選択肢を、要件別の判断表として整理します。改ページ制御やDPIのずれといった実装の落とし穴、Windowsサービスからの印刷、既定プリンター依存の危険まで実務目線で解説します。
-
OSI参照モデルをはっきりイメージする ── HTTPリクエスト1個を7層に解剖する
OSI参照モデルを暗記ではなく実物で理解します。HTTP GETリクエスト1個を運ぶEthernetフレームをC#で組み立てて解剖し、L2〜L7がバイト列として物理的に入れ子になっている様子をヘックスダンプとWiresharkで確認します。各層と.NET API(HttpClient / SslStream / ...
-
Windowsのセッション分離をどう理解するか ── Session 0・RDP・複数ユーザー同時実行
Windowsアプリ開発者が混乱しがちな「セッション」の概念を整理します。サービスがUIを出せないSession 0分離の理由、RDP接続時のセッションの挙動、名前付きオブジェクトのセッション分離、共有PC・RDS環境でありがちな設計ミスまでを実務目線で解説します。
-
WinDbg + SOSでクラッシュダンプを読む ── 収集した後の実務解析入門
収集したWindowsクラッシュダンプをWinDbgとSOS拡張で実際に読む手順を解説します。シンボルパスの設定、!clrstack・!pe・!dumpheap -stat・!gcrootによる例外とメモリリークの追い方、ネイティブクラッシュの!analyze -v、dotnet-dump analyzeとの使い...
-
Windowsアプリの多重起動防止 ── 名前付きMutexと二重起動時のアクティブ化
業務Windowsアプリの定番要件『同じアプリを2回起動させない』を、名前付きMutexで実装する方法を整理します。Global\ と Local\の名前空間の違いによるRDP環境での落とし穴、所有スレッド制約とAbandonedMutexException、SetForegroundWindowの制限を踏まえた...
-
C#からWin32 APIを安全に呼ぶ ── P/Invoke実務ガイド(DllImport / LibraryImport / CsWin32)
C#からWin32 APIやネイティブDLLをP/Invokeで呼ぶときの実務ポイントを整理します。DllImportとLibraryImportの違い、CsWin32によるシグネチャ自動生成、文字列マーシャリングの罠、SafeHandleによるハンドル管理、SetLastErrorとエラー処理、構造体のStru...
-
WinForms/WPFアプリにEntra ID認証を組み込む ── MSAL.NETとWAMブローカーの実務構成
WinForms/WPFデスクトップアプリにEntra ID(旧Azure AD)認証を組み込む手順を実務目線で整理します。パブリッククライアントの考え方、ROPC廃止の現状、アプリ登録、MSAL.NETのAcquireTokenSilentパターン、WAMブローカー、トークンキャッシュの永続化、導入判断と運用の...
-
業務アプリの日時とタイムゾーン ── DateTimeの罠からUTC保存の原則、テスト設計まで
サーバー移設で時刻が9時間ずれる、海外拠点だけ日付が前日になる──日時事故の原因をDateTimeのKindと暗黙変換から整理します。DateTimeOffsetとの使い分け、UTC保存とISO 8601の原則、TimeZoneInfoと夏時間、SQL Server/SQLiteとの境界、TimeProvider...
-
WindowsデスクトップアプリのUI自動テスト ── UI Automationの仕組みとFlaUIで作る壊れにくいテスト
WinForms/WPFアプリのUI自動テストを、Windows UI Automationの仕組み(ツリー・AutomationId・コントロールパターン)から整理します。FlaUIによる最小実装、WinAppDriverの現状、AutomationId設計と条件待機で壊れにくくする方法、CI無人実行の罠まで実...
-
WPFの高DPI対応 ── 「DPIに強いはず」なのにぼやける・にじむ原因と対処
WPFはDIP(1/96インチ)でレイアウトされ最初からSystem DPI Awareですが、DPIの違うモニターへ移すと全体がにじみ、ビットマップや単線はぼやけます。原因の切り分け、.NET Framework 4.6.2/.NETでのPer-Monitor DPI対応、UseLayoutRoundingなど...
-
C#のExcel操作でEXCEL.EXEが残る問題 ── COM参照の解放パターンと置き換えの判断
C#からMicrosoft.Office.Interop.ExcelでExcelを操作するとEXCEL.EXEプロセスが残る問題を、COM参照カウントとRCWの仕組みから整理します。2ドットルールの罠、Marshal.ReleaseComObject派とGC派の解放パターン、HwndからPIDを特定する最終手段、...
-
WinFormsの高DPI対応 ── 4Kモニターでぼやける・崩れる原因と現実的な対処
4Kモニターや150%スケーリングでWinFormsアプリがぼやける・レイアウトが崩れる原因を、DPI仮想化とDPI認識モード(System Aware / Per-Monitor V2)から整理します。.NET/.NET Frameworkそれぞれの設定方法、AutoScaleModeとデザイナーの罠、段階的な...
-
Windowsのプロセス間通信をどう選ぶか ── 名前付きパイプ / TCP / gRPC / 共有メモリ / COM 判断表
Windowsアプリ同士の連携手段をどう選ぶか。名前付きパイプ、ローカルTCP、gRPC、共有メモリ、ファイル連携、COMの得意分野と落とし穴を判断表で整理し、UI+サービス分離・32bit/64bitブリッジ・権限境界などの定番構成と、名前付きパイプの実装例まで実務目線で解説します。
-
C#でSQLiteを業務アプリに使う ── WALモード・排他制御・破損対策・EF Coreとの使い分け
Microsoft.Data.SqliteでSQLiteを業務Windowsアプリに組み込む実務知識を整理します。接続文字列とプーリング、WALモードの仕組み、SQLITE_BUSYと書き込み一本化、トランザクションによる高速化、型マッピングの罠、VACUUM INTOによるバックアップ、EF Coreを使うべき...
-
Windowsサービスの作り方と運用 ── タスクスケジューラとの使い分けからBackgroundServiceのサービス化まで
常駐処理をWindowsサービスにすべきか、タスクスケジューラで足りるのか。判断表と、.NET Worker Service(UseWindowsService)によるサービスの作り方、実行アカウント・回復オプション・イベントログ・安全な停止処理まで、運用に乗せるための設計を実務目線で整理します。
-
IEモードの次はWebView2でいいのか ── ActiveXが動かない制約と現実的な移行設計
WebView2の基本構造、EvergreenとFixed Versionの配布戦略、ユーザーデータフォルダーの罠、ネイティブとWebの連携方法、そして「ActiveXは動かない」という制約を踏まえたIEモード依存システムからの現実的な移行順序を、社内システム目線で整理します。
-
Windowsアプリのデータ保存先の選び方 ── SQLite / JSON / レジストリ / Access 判断表
Windowsデスクトップアプリのデータをどこに・何で保存するか。AppData/ProgramDataの使い分け、SQLite・JSONファイル・レジストリ・Access(.accdb)それぞれの得意分野と落とし穴を判断表つきで整理し、破損対策やビット数問題まで実務目線で解説します。
-
PDB(プログラムデータベース)とは何か ── デバッグ情報・シンボル・Source Linkを理解する
PDB(Program Database / プログラムデータベース)とは何か、何が入っていて何が入っていないのか、Debug / Release、Portable PDB、Source Link、シンボルサーバー、ダンプ解析との関係まで実務向けに整理します。
-
Roslynとは何か ── C#コードをコンパイラの視点で読む・直す・生成する
Roslyn(.NET Compiler Platform)の概要、Syntax Tree、SemanticModel、Workspace、Analyzer、Source Generator、実務での使いどころと注意点を整理します。
-
Windowsアプリ 外注・受託開発を依頼する前に整理したいこと
Windowsアプリの外注・受託開発を依頼する前に、既存ソフト改修、装置連携、COM/ActiveX、配布・更新、保守の整理ポイントを解説します。
-
代数的データ型を.NET Framework / .NETで使う ── 状態と結果を型で表す設計
代数的データ型、特に直和型・判別共用体を.NET Frameworkや.NETで使う方法とメリットを、F#、C#のクラス階層、record、OneOf、C# 15 union previewまで含めて整理します。
-
Windowsの偽装トークンを正しく扱う ── スレッド単位の権限借用と安全な戻し方
Windowsの偽装トークンについて、アクセストークン、プライマリトークン、スレッドトークン、偽装レベル、RevertToSelf、.NETのWindowsIdentity.RunImpersonatedまで、実務で安全に扱うための考え方を整理します。
-
TCPでSendした単位ごとにReceiveできるという誤解 ── バイトストリームとして扱うための受信設計
TCP通信で、SendやWriteした単位ごとに受信できると思い込むと、分割・結合・文字化け・プロトコル破損が起きます。TCPをバイトストリームとして扱い、アプリケーション側でフレーミングする考え方と、.NET/C#での実装例を整理します。
-
.NETでGC待ちとメモリリークを見分ける ── 増えるメモリを観測・比較・証明する実務手順
.NETアプリケーションで、メモリが増えている理由がガベージコレクション待ちなのか、本当にメモリリークしているのかを、dotnet-counters、dotnet-gcdump、dotnet-dumpを使って切り分ける手順を整理します。
-
C#(CSharp)でPowerShellを実行して、オブジェクトとして受け取る方法
C#からPowerShellを起動し、文字列ではなくPSObjectとして結果を受け取る方法を、PowerShell SDK、AddCommand、AddParameter、BaseObject、Properties、エラー処理まで実務目線で整理します。
-
Windowsはなぜ今の形になったのか:開発者から見た歴代Windowsの進化
Windows 95からWindows 11までの変化を、見た目の年表ではなく、互換性、安定性、権限管理、ドライバ、Win32、.NET、セキュリティなどWindowsアプリ開発者の視点で整理します。
-
ClickOnce とは何か - 仕組み、更新、向いている場面・向いていない場面を実務目線で整理
.NET の Windows デスクトップアプリ配布で使われる ClickOnce について、マニフェスト、更新、キャッシュ、署名、向いている案件・向いていない案件を Mermaid 図つきで整理します。
-
Windowsアプリで子プロセスを安全に扱うチェックリスト
Windows アプリで子プロセスを安全に扱うには、起動 API よりもプロセス木の所有権と終了手順の設計が重要です。Job Object、終了伝播、標準入出力、watchdog を整理します。
-
Windowsアプリの1ファイル配布 - シングルバイナリとOS依存の限界
Windows アプリを 1 EXE に寄せたいとき、配布物を 1 個にすることと OS 依存を消すことの違いを、.NET、C++、WebView2、WinUI、サービス、ドライバまで整理します。
-
シリアル通信アプリの落とし穴 - 再接続とログ設計まで
装置連携や計測器制御で避けたいシリアル通信アプリの落とし穴を、フレーミング、タイムアウト、RTS/CTS、DTR/RTS、再接続、ログ設計まで実務目線で整理します。
-
.NET Frameworkから.NETへの移行前チェックリスト
.NET Frameworkから.NETへ移行する前に、プロジェクト種別、未対応技術、NuGet依存、SDKスタイル、WPF/WinForms、CI/CD、運用を確認する実務チェックリストです。
-
.NET Generic Hostとは - DI・設定・ログの土台
Generic Host の役割を、DI、設定、ログ、IHostedService、BackgroundService の関係から整理し、どこで効いてどこでは過剰かを実務目線でまとめます。
-
.NET Native AOTとは - JITやtrimmingとの違い
Native AOT とは何かを、JIT、ReadyToRun、self-contained、single-file、trimming、source generator との違いから整理し、向いているケースと厳しいケースを実務目線でまとめます。
-
.NETタイマー3種の使い分け - PeriodicTimer/Timer/DispatcherTimer
PeriodicTimer / System.Threading.Timer / DispatcherTimer の違いと、async 処理、ThreadPool callback、WPF の UI 更新でどう使い分けるかを整理します。
-
C# Native AOT DLLをC/C++から呼び出す方法
C# のクラスライブラリを Native AOT でネイティブ DLL として発行し、UnmanagedCallersOnly のエントリポイントを C/C++ から呼び出す構成を、使いどころと実装パターンと注意点から整理します。
-
.NET Generic HostとBackgroundServiceをデスクトップアプリで使う理由
Windows ツールや常駐アプリで起動、定期処理、終了処理、ログ、設定、DIを整理するために、Generic HostとBackgroundServiceをどう使うかまとめます。
-
ActiveX / OCX を今どう扱うか - 残す・包む・置き換える判断表
ActiveX / OCX を見つけたときに、残す・包む・置き換えるのどれを選ぶべきかを、32bit / 64bit、登録、ブラウザ依存、ベンダー保守まで含めて整理します。
-
WPF/WinFormsのasyncとUIスレッドを一枚で整理
WPF / WinForms で await 後の戻り先、Dispatcher / Invoke、ConfigureAwait(false)、.Result / .Wait() の詰まりどころを整理します。
-
FileSystemWatcher実務ガイド - 取りこぼしと重複対策
FileSystemWatcher の使い方と注意点を、取りこぼし、重複通知、完了判定の落とし穴、再スキャン、原子的 claim、idempotency の観点から整理します。
-
C# async/await実務判断表 - Task.RunとConfigureAwait
C# async/await のベストプラクティスを、I/O 待ち、CPU 計算、Task.Run、ConfigureAwait(false)、fire-and-forget の判断表つきで整理します。