Windowsアプリ/Webアプリ/バッチアプリを問わずシステムにはメッセージが不可欠です(ログも含めて広義の意味で)。 メッセージはDBなりリソースなりに格納して使う形態が多いと思います。
プログラム内でべた書きするのは感心しません。メッセージは何処が判定し登録してますでしょうか。とあるシステムでは共通メッセージと個別メッセージの2分類で管理し、個別メッセージは開発者が登録するスタイルを取ってました。これだと不具合が結構発生します。
"商品マスター未登録です" などのメッセージは大概のシステムでは必要となりますが、規定ルールが曖昧だとメッセージが増幅してしまいます。"商品マスタ未登録" 、"住所マスタ未登録"、"社員テーブル未登録"…これだとテーブルの数だけメッセージが増えます。ここはプレースをつかって "{0}未登録" としたい所です。
これ以外にも、 "商品マスタ未登録"、"商品マスタに登録されてません"、"商品マスタがありません"など同意異文のメッセージが増幅しがちです。
プログラム単位にメッセージを派生させるのは限界があるように思います。システム全体を見て、テーブルIO関係、UI入力関係、印刷関係など事前に大枠で分類し、共通文言をプレースで括るように文言を規定したほうが好いと思うのです。
メッセージIDを振っていくのは不可避と思いますが、メッセージ出力部分でメッセージIDがマジックNO化してしまうのが難です。マジックNO化を避けて文言を直に書くのはもっと嫌です。といってスッキリ記述する妙案も無いしねぇ.....