名前空間は、コードを整理し、関心の分離を提供するのに役立ちます。これは、フォルダーまたは個別のプロジェクトを作成することによっても実行できます。優れたロジック分離により、保守可能でスケーラブルなアプリケーションを構築できます。
新しいフォルダを作成するか、新しいプロジェクトを作成するかを決定するときは、常識に頼る必要があります。たとえば、helloworldアプリケーション用にいくつかのプロジェクトを作成するのはやり過ぎです。シングルクラスのフォルダを作成するのもやり過ぎです。ただし、互いに密接に関連するクラスがいくつかある場合は、この特定の懸念事項を他のアプリケーションから分離することを検討してください。たとえば、がある場合はCustomerRepository
、とを追加OrderRepository
しVendorRepository
ます。彼らが代表している懸念を強調するのは良い決断です。フォルダを作成Repositories
し、それらすべてのクラスをそこに移動します。
大規模なアプリケーションでは、ビジネスロジック、データアクセスロジック、ユーザーインターフェイスなどの懸念事項を分離するのが一般的です。通常、これらの懸念に関連するクラスは別々のプロジェクトに行きます。コードを理解し、維持しやすくするために分離が行われていることを覚えておいてください。したがって、名前空間は、あなたとあなたのアプリケーションを維持するすべての人に対する懸念を説明する必要があります。たとえば、次の3つのプロジェクトを使用できます。
FooCompany.BLL
FooCOmpany.DAL
FooCOmpany.UI
これは、ビジネスロジック層、データアクセス層、およびユーザーインターフェイスの頭字語です。「標準」の名前はありません。コードをよりよく説明するものなら何でも使用できます。これは、私が会社のFoo製品バーに通常使用するプロジェクト構造の例です。
// Assembly for business logic
Foo.Bar.Domain
Foo.Bar.Domain.Model
Foo.Bar.Domain.Services
Foo.Bar.Domain.Repositories
// Assembly for data access
Foo.Bar.Persistence.NHibernate
// Assembly for application services
Foo.Bar.Services
// Project for presentation
Foo.Bar.Presentation.Web
Foo.Bar.Presentation.Web.Controllers
Foo.Bar.Presentation.Web.Views
ところで、名前空間名を開発している会社の名前で始めるのが一般的な方法です。名前空間の命名ガイドラインを参照してください。これにより、異なる名前空間に同じ名前の2つのクラスがある場合に、名前の競合を回避できます。