【发布时间】:2010-09-24 23:12:20
【问题描述】:
场景:
假设我有四个非常相似的应用程序(即大部分功能是相同的,但它们的差异足以证明每个应用程序都是独立的应用程序)。
在它们之间重用通用功能代码的最佳方式是什么? COM+?网络服务?
一般来说,我通常只将代码放在单独的项目 (dll) 中,但无论何时更新,都必须为每个 ASP.Net 应用程序更新文件,并且不确定是否有更好的方法去做吧。
谢谢!
【问题讨论】:
标签: asp.net .net-2.0 code-reuse
场景:
假设我有四个非常相似的应用程序(即大部分功能是相同的,但它们的差异足以证明每个应用程序都是独立的应用程序)。
在它们之间重用通用功能代码的最佳方式是什么? COM+?网络服务?
一般来说,我通常只将代码放在单独的项目 (dll) 中,但无论何时更新,都必须为每个 ASP.Net 应用程序更新文件,并且不确定是否有更好的方法去做吧。
谢谢!
【问题讨论】:
标签: asp.net .net-2.0 code-reuse
如果可能,您可以创建一个包含 DLL 项目和多个 Web 应用程序或网站项目的 Visual Studio 解决方案。 Web 项目将具有对 DLL 项目的“项目”类型引用,并且所有内容都将同时构建。然后,您可以根据需要为每个 Web 项目使用“发布”工具。
【讨论】:
如果所有应用程序都位于同一虚拟服务器上,请考虑将共享程序集放在 GAC 中。这使您可以在需要时区分版本,并将所有内容放在同一个地方作为奖励。缺点:此程序集在完全信任的情况下运行,您应该使用策略和 CAS 来确保外部不受信任程序集的信任杠杆点没有提升。您还需要了解 [AllowPartiallyTrustedCallers] 属性。
至于其他的选择,COM+,嗯,有点重量级。适合交易的东西。 Web 服务对于数据量大的服务来说不是很好,但如果做得好,可以相当可维护。分享的越多,回报就越好。
【讨论】:
您可以拥有自己的项目,但不要将公共 dll 添加到项目引用中,而是将公共项目添加到所有解决方案中,然后添加对公共项目的引用。
这样你就可以在任意数量的解决方案上建立一个项目,你的问题就解决了;)
【讨论】: