Project1 = Asp.net页面项目(表示层)
Project2 =数据访问层
当Project1被托管并且运行顺畅时,如果我必须在Project2中添加一些PRIVATE方法并在我知道Project1调用的一些PUBLIC方法中调用这些方法,那么我应该在Project2中进行更改吗? ?
我做了以上操作,但没有调用新方法。 (我认为Project1仍然指向Project2的旧程序集)
我确信如果我重建Project1,更改将会起作用。
但是如果我必须在Project2中进行每次更改后重建Project1,那么拥有单独的层架构有什么意义呢?我认为关于单独层级的好处是,可以在1层中进行尽可能多的更改,而无需重建其他层...这是错误的感知吗?
答案 0 :(得分:3)
首先,单独的层并不真正意味着单独的程序集。多层archtecture程序可以很容易地存储在一个程序集中,并且DAL,表示和BL类由一些逻辑分隔符(如命名空间)甚至是带有类的项目文件夹分隔(甚至没有任何逻辑分隔,但是你会知道某些类是对于DAl,另一个用于BL,等等)
对于您的问题 - 如果您的DAL是通用的并且具有固定的界面,您可以更新您的dal程序集(例如,修复一些错误的方法或其他内容),如果您不更改公共方法的界面。显然,如果您更改某个接口,则引用此程序集的其他程序集不仅必须重建,而且必须重写以便使用新的方法名称,例如
答案 1 :(得分:3)
您无需重建它。您可以将新的project2 dll复制到web app \ bin目录,如果界面未更改,它将起作用。 project1的构建将冗余地重建project1并产生相同的结果,并且还包括最新版本的project2,这也是它工作的原因。