1

私はプロジェクトを開発していますが、最終的には Web アプリになります。しかし、私はビジネス オブジェクトとデータ アクセスのための一種の階層化されたアプローチに従おうとしています。単一の空のソリューションで次のクラス ライブラリ プロジェクトを作成しました。

MyCompany.MyProject.Repository
MyCompany.MyProject.Model
MyCompany.MyProject.Service

MyCompany.MyProject.Repository には MyCompany.MyProject.Model への参照があります。 MyCompany.MyProject.Service には MyCompany.MyProject.Model および MyCompany.MyProject.Repository への参照があります。

私のこの小さなフレームワークは、将来複数のアプリケーションで使用される予定なので、Web アプリケーションに対して個別に作成しています。

2 つの質問があります。

  1. アプリのレイヤー化に関しては、このアプローチは正しいです.Webアプリ(または私のフレームワークを使用する必要があるアプリ)は、3つのDLLすべてをBinディレクトリに持つ必要があります-これを正しく理解していますか?

  2. MyCompany.MyProject.Model プロジェクトは、すべてのビジネス オブジェクトを保持しています。カプセル化に関して - たとえば、 Customer オブジェクトがあります。

    一般クラスのお客様

    Int32 としてのプライベート _customerID

    Public Property CustomerID() As Int32 Get Return _customerID End Get Friend Set(ByVal value As Int32) _customerID = value End Set End プロパティ

    クラス終了

これは、顧客オブジェクトの ID を公開する必要があると私が考える方法です。Set の Friend アクセス修飾子により、顧客の ID はフレームワークによって内部的にのみ設定され、Web によって外部からのみ読み取られる必要があります。アプリまたは将来作成されるその他のアプリ。しかし、私のコードは別のクラス ライブラリ プロジェクトにあるため、たとえば MyCompany.MyProject.Repository は、私の名前空間が追随していてもアクセスできません。

これは、カプセル化に関する私の理解に合わないようです。ここで何が間違っていますか?

あなたの助けに感謝します。

ありがとうございました。

4

1 に答える 1