2012-12-04 88 views
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应用程序。

我有两个问题:

  1. 至于分层应用程序是这种做法是正确的,在Web应用程序(或需要用我的框架的任何应用程序),就需要有三个DLL的,在它的Bin目录 - 我正确理解这个吗?

  2. MyCompany.MyProject.Model项目包含我所有的业务对象。至于封装 - 比如我有一个客户对象:

    公共类客户

    私人_customerID作为的Int32

    公共财产客户ID()作为的Int32 获取 返回_customerID 最终获取 朋友套装(ByVal值As Int32) _customerID =值 结束集 结束属性

    结束等级

这是我认为为客户对象的ID应该暴露的方式,因为朋友访问修饰符上的设置,为客户的ID应该只能由框架内部设置的,并且只能通过网络应用程序或将来创建的任何其他应用程序从外部读取。但是因为我的代码位于独立的类库项目中,所以MyCompany.MyProject.Repository例如无法访问它,即使我的命名空间也是如此。

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

你的帮助是非常赞赏。

谢谢。

回答

0

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

希望它有帮助!