danludwigをエコーするために、実際には標準はありません。私は、機能に応じてライブラリと名前空間を分割することを好みます。Company.Dbはデータベースと対話するための私のライブラリであり、Company.Mailは消印メールサービスなどのラッパーです。
次に、同様のライブラリを単一のリポジトリにグループ化する傾向があります。したがって、ソース管理の「ストレージ」リポジトリには、Company.Db、Company.Caching、Company.FileStorageなどが含まれます。Company.MailとCompany.SMS(テキストメッセージを送信するためにTwilioと対話するため)を保持する別のリポジトリ「メッセージング」があります。 。新しいアプリや新しいサービス(モバイルクライアント用のWCFエンドポイントなど)を使用して分岐する場合は、「メッセージング」リポジトリをプルダウンするだけで、ユーザーと通信するためのすべてのクラスライブラリがあります。
アプリケーションは次のようになります
Company.Application.Webite
\Libraries\Messaging
\Libraries\Messaging\Company.Mail
\Libraries\Storage
\Libraries\Messaging\Company.Db
\Libraries\Messaging\Company.Caching
\Libraries\Web
...
Company.Application.Wcf
\Libraries\Messaging
\Libraries\Storage
\Libraries\Messaging\Company.Db
\Libraries\Messaging\Company.Caching
...
このように、誰かがサイト経由で登録するか、モバイルアプリ経由で登録するかにかかわらず、Company.Mail.MailServices.SendWelcomeEmail()はまったく同じウェルカムメールを送信し、コードの重複はありません。
これがあなたのために働くかどうか、あるいは理にかなっているのかどうか、誰が知っていますか。また、このスキームを100回変更して、自分の開発スタイル/ワークフローで機能するレイアウトを見つけようとしました。何を選んでも、好きなものを見つけたり、嫌いなものを見つけたりするので、あまり心配したり、ストレスを感じたりすることはありません。好きではないものをコーディングして変更するだけでなく、すべてを「完璧」にするために多くの時間を費やすという罠に陥ることがあります。