CATEGORY

設計技術

経験から思うアプリ構成・設定の設計ポリシー

はじめに スタンドアロンアプリケーションやクラウドベースのWebアプリケーション等の設定に関する設計ポリシーを説明します。 ここではアプリケーションの設定情報を構成(Configuration)、個々の設定項目・値のことを設定(Setting)、と表記します。(「設定」の集合が「構成」のイメージです。) 構成情報・設定を格納するストレージを「構成情報ストレージ」と表記します。構成情報ストレージの具 […]

C#: 動的なプロパティアクセスの実装方式案と性能評価

想定する処理要件 選択値に応じて異なる値を表示する画面、出力項目のカスタマイズが可能なCSVファイル生成機能、等の業務機能を想定しています。 このような機能では、DB等のデータストアから取得したデータをエンティティに格納し、特定のプロパティの値に応じて別のプロパティの値を取得するような設計・実装を行う場合があります。 ここでは、このような特定のプロパティ値に基づいて別のプロパティ値を取得する方式を […]

クライアント証明書を使った認証・認可方式

はじめに 利用ユーザに対して「マインバー操作」や「ユーザアカウント管理」などの重要な機能を提供する業務システムでは、そのような機能へのアクセスを制限する必要があり、その実現方式の一つとしてクライアント証明書を使う方法が考えられます。ここでは、典型的な業務システム(Webアプリ)を例題とした、クライアント証明書による認証・認可機能の実現方式について説明します。 パスワード認証や2要素認証などによるユ […]

C#: パスワードハッシュ生成サンプル(PBKDF2)

概要 鍵導出関数であるPBKDF2を使って、「パスワードからAES-256等で使用可能なキー(256ビット)」(パスワードハッシュとしても使用可)を生成するサンプルを紹介します。 完全なサンプルコードはgithubで公開しています。 次の実行環境を使用しています。 OS Windows 10(64ビット) IDE Microsoft Visual Studio Community 2022(17. […]

WebアプリでのHTTP GETとPOSTの比較

はじめに 業務Webアプリの開発で、検索画面の実装でGETとPOSTのどちらを使用すべきか悩んだのでその整理で纏めています。 主に次の資料をベースに筆者独自の見解等を追記しています。 HTTP Request Methods GET Vs. POST: Key Difference Between HTTP Methods GETとPOSTの比較 GETメソッドはページを取得するため、POSTはデ […]

経験から思うログの設計・実装ポリシー

はじめに これまで様々な企業でシステムやWebアプリの設計開発や運用・保守を行ってきました。これらの経験を踏まえて思うログの設計・実装ポリシーについて説明します。 個人の感想や愚痴になっている個所も多々あるため、参考程度でご覧いただけると幸いです。 多くの現場では主に3つのチームに分かれてプロジェクトを進めていました。私が担当していた業務やアプリ基盤チームの目線での説明になります。 チーム名 担当 […]

HTML4, HTML5エスケープ(文字参照)

数値文字参照・文字実体参照 半角の不等号(<>等)などのHTML上で直接記述できない文字や記号を表記する方法が文字参照です。 HTMLやXMLの基になっているSGMLから提供されている手段です。 文字参照では、次の2種類の表記方法があります。 分類 説明 例 備考 数値文字参照 特定文字を数値で表記 &#1234;(10進数で指定)&#x04D2;(16進数で指定) 1 […]

パック10進数の変換方法とC#のサンプル

なお、ゾーン10進数はこちらで紹介しています。 パック10進数 ゾーン10進数の変換方法 10進数の各桁を「上位4ビットで1桁、下位4ビットで1桁」のバイトに変換して生成します。 生成したバイト列の最後の下位4ビットが符号部になっており、符号を示す値を設定します。 符号部の値は実行環境に依存する場合があります。IBM汎用機の場合、符号無しはF(1111)、正はC(1100)、負はD(1101)とな […]

ゾーン10進数の変換方法とC#のサンプル

なお、パック10進数はこちらで紹介しています。 ゾーン10進数 ゾーン10進数の変換方法 10進数の各桁を「ゾーン部(上位4ビット)+数値部(下位4ビット)」のバイトに変換して生成します。 生成したバイト列の最後は「符号部(上位4ビット)+数値部(下位4ビット)のバイトを設定します。 生成したゾーン10進数が実行環境で可読文字(“0”,”1″等の文字 […]

JIS X 0208, Shift_JIS, Windows-31Jの歴史と違い

文字コードの話は難しそうなイメージがあり、必要になったタイミングでその都度、最小限の知識を習得して対応してきました…が、効率が悪く踏み込んだ話になった時に困る場合もあるので、ここで真面目に整理しようと思いました。 はじめに 私の経験上、Windowsユーザを想定したアプリ開発が多いため、Windows環境で使用されるWindows-31Jを主とした話となります。 Windows-31J […]