Asp.net 分拆或不分拆业务;NET中每个项目中的数据层

Asp.net 分拆或不分拆业务;NET中每个项目中的数据层,asp.net,Asp.net,目前,我的业务逻辑有单独的项目,数据访问有单独的项目。然后,我有一个购物车网站,一个内联网,一个外联网等各种其他项目。这些网站都使用上述的商业和数据项目 我今天的任务是让所有这些项目都使用服务器上biz&data项目的单个DLL。我知道现在项目只是将DLL本地复制到项目中。然后我开始思考——我将对购物车站点进行重大更改,包括DB模式更改,因此我必须更新DL&BL。因此,如果我复制了一个新的DLL,我应该如何记住它是否会破坏其他东西?我是不是看错了?我是否应该为每个项目单独设置业务逻辑和数据访问权

目前,我的业务逻辑有单独的项目,数据访问有单独的项目。然后,我有一个购物车网站,一个内联网,一个外联网等各种其他项目。这些网站都使用上述的商业和数据项目


我今天的任务是让所有这些项目都使用服务器上biz&data项目的单个DLL。我知道现在项目只是将DLL本地复制到项目中。然后我开始思考——我将对购物车站点进行重大更改,包括DB模式更改,因此我必须更新DL&BL。因此,如果我复制了一个新的DLL,我应该如何记住它是否会破坏其他东西?我是不是看错了?我是否应该为每个项目单独设置业务逻辑和数据访问权限,而不是集中设置?

老实说,我认为您设置内容的方式比将所有内容放在一个项目中更正确。这不仅迫使层之间分离,还使代码更易于维护

祝你好运,
迈克

老实说,我认为你把东西安排好的方式比把它们都放在一个项目中更正确。这不仅迫使层之间分离,还使代码更易于维护

祝你好运,
Mike

理论上,您应该有一个VisualStudio解决方案,该解决方案将所有这些项目组合在一起,它们都引用您的业务和数据“层”项目。这样,如果您对它们进行了更改,则在重新编译解决方案时,可以避免中断更改

我已经做过很多次了;我现在有了一个解决方案,它包含一个网站、一个桌面客户端和几个共享DLL。如果我对核心DLL做了突破性的更改,我会知道的

在解决方案中,项目相互引用。这样,当我重新编译时,项目间引用就会更新


如果您没有充分利用解决方案的优势,您应该这样做。

理论上,您应该有一个Visual Studio解决方案,该解决方案将所有这些项目组合在一起,并且它们都引用您的业务和数据“层”项目。这样,如果您对它们进行了更改,则在重新编译解决方案时,可以避免中断更改

我已经做过很多次了;我现在有了一个解决方案,它包含一个网站、一个桌面客户端和几个共享DLL。如果我对核心DLL做了突破性的更改,我会知道的

在解决方案中,项目相互引用。这样,当我重新编译时,项目间引用就会更新

如果您没有充分利用解决方案的优势,那么您应该这样做

我将对Cart站点进行重大更改,包括DB模式更改,因此我必须更新DL&BL

首先,正如已经推荐的那样,您应该将所有这些项目放在一个解决方案中,以便在编译时捕获损坏的依赖项。但是,如果更改schema/DL以支持更改,然后只部署一个需要修改的项目,则仍然会遇到问题。正如您所注意到的,它们最终都会有自己的已编译BL/DL DLL副本。在我的公司,我们处理这个问题的方法是,如果DL有任何更改,总是重建/重新部署解决方案中的每个项目

我将对Cart站点进行重大更改,包括DB模式更改,因此我必须更新DL&BL


首先,正如已经推荐的那样,您应该将所有这些项目放在一个解决方案中,以便在编译时捕获损坏的依赖项。但是,如果更改schema/DL以支持更改,然后只部署一个需要修改的项目,则仍然会遇到问题。正如您所注意到的,它们最终都会有自己的已编译BL/DL DLL副本。在我的公司,我们处理这一问题的方法是,如果DL有任何更改,则始终重建/重新部署解决方案中的每个项目。

确保您知道层和层之间的区别。确保您知道层和层之间的区别。这是我以前处理这一问题的方式,但我觉得解决方案资源管理器有点过时了拥挤不堪。但是,正如您所说,处理这些问题并将它们全部放在一个解决方案中可能是值得的。请记住,您可以有多个解决方案。您可能有一个包含上述所有项目,您可能有一个包含所有这些项目以及测试项目,您可能有一个只是UI,其他所有内容都是对已编译代码的引用。解决方案是表达不同需求的不同“观点”的好方法。这是我以前处理它的方式,但我觉得解决方案浏览器有点拥挤。但是,正如您所说,处理这些问题并将它们全部放在一个解决方案中可能是值得的。请记住,您可以有多个解决方案。您可能有一个包含上述所有项目,您可能有一个包含所有这些项目以及测试项目,您可能有一个只是UI,其他所有内容都是对已编译代码的引用。解决方案是针对不同需求表达不同“观点”的好方法。