5

我有一个大型 ASP.NET 应用程序(旧版),它实际上(功能上)由两个门户组成。所以我需要将它分成两个独立的应用程序,以简化每个应用程序的开发。

当然,两者之间有共同的特点。其中一些位于 DAL 和 BL 中,这不是问题 - 所有这些代码都是独立的项目,它们组成了两个应用程序中要引用的程序集。

但问题在于一些页面、大量用户控件、一些 css 和 javascript 文件,它们在两个“门户”(应用程序)之间共享。

我想就如何处理它们征求一些建议。我主要关心的是避免重复,所以理想情况下它们应该放在一个地方,并被两个应用程序使用。

首先,我尝试将文件从一个项目添加到另一个作为链接文件。虽然这适用于代码文件(它们被内置到它们链接到的项目中),但它不适用于 aspx / ascx 或 css / javascript / images。如果我首先发布(如果标记为内容,它们会在发布期间被复制),但我不能在开发期间一直这样做,并且在从源代码调试/运行应用程序时找不到此类文件(sincve,显然,当人们正在寻找其中任何一个时,链接文件实际上在应用程序文件树中并不可用。

另一个想法是创建预构建事件,并从一个公共位置复制所有共享文件。例如,我创建了一个 Common 项目,并将所有在应用程序之间共享、按文件夹组织的文件以及在预构建时我执行一个xcopy.

另一个想法是让所有共享文件成为我svn:external在两个项目中引用的 SVN 存储库的一部分。

不过都看我的小麻烦。有没有人有类似的情况?你是怎么处理的?

对我的任何建议有什么建议吗?

4

2 回答 2

0

您至少有两个选择:

对于 css、js、图像等资源,虚拟目录方法似乎很简单。我也倾向于喜欢它来共享用户控件。

库方法应该需要更多的工作,但从长远来看将确保控件的更好的可重用性。

于 2013-02-05T15:26:35.323 回答
0

本周我遇到了一个相同的问题,css 和 javascript 文件在三个遗留项目中重复了三次。

我从两个项目中删除了文件,并将它们替换为第一个项目的链接文件,但是当我运行网站时,我在属于这两个项目的页面中缺少 css 和 javascript 文件的 404 错误。

因此,我只是将 nuget 包“MSBuild.WebApplication.CopyContentLinkedFiles”添加到我的解决方案中,一切正常 - 这两个项目的 css 和 javascript 文件部署得很好,我的 404 错误消失了。

我没有任何共享的 .aspx / .ascx 文件,但我想它也适用于他们。

另请参阅此问题/答案

于 2016-11-10T22:03:45.847 回答