1

我正在开发一个项目,最终它将成为一个网络应用程序。但我正在尝试对业务对象和数据访问采用一种分层方法,我在一个空白解决方案中创建了以下类库项目:

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 应用程序中。

我有两个问题:

  1. 关于分层应用程序这种方法是否正确,Web 应用程序(或任何需要使用我的框架的应用程序)将需要在其 Bin 目录中包含所有三个 DLL - 我是否正确理解这一点?

  2. MyCompany.MyProject.Model 项目包含我的所有业务对象。关于封装 - 例如我有一个 Customer 对象:

    公共类客户

    私有 _customerID 作为 Int32

    公共属性 CustomerID() As Int32 Get Return _customerID End Get Friend Set(ByVal value As Int32) _customerID = value End Set End Property

    结束类

这是我认为应该公开客户对象 ID 的方式,因为设置客户 ID 上的 Friend 访问修饰符应该只能由框架在内部设置,并且只能由 Web 外部读取应用程序或将来创建的任何其他应用程序。但是因为我的代码在单独的类库项目中,例如 MyCompany.MyProject.Repository 无法访问它,即使我的命名空间也效仿。

这似乎不符合我对封装的理解,我在这里做错了什么?

非常感谢您的帮助。

谢谢你。

4

1 回答 1

0

你描述的场景比较常见。在这种情况下,我更喜欢使用朋友程序集。它们允许访问内部(.net)或朋友(VB)成员。您可以在此处找到有关朋友组件的更多信息。

希望能帮助到你!

于 2013-06-11T15:27:50.900 回答