在两个应用程序中拆分ASP.NET应用程序 - 处理共享页面/用户控件/脚本

bza*_*fir 5 svn asp.net split linked-list

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

当然,两者之间有共同的特征.其中一些是在DAL和BL中,这不是问题 - 所有代码都是单独的单独项目,它们构成了在两个应用程序中引用的程序集.

但问题在于一些页面,许多用户控件,一些css和javascript文件,它们在两个"门户"(应用程序)之间共享.

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

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

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

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

但所有人看起来都很麻烦.有没有人有类似的情况?你是怎么处理的?

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

jbl*_*jbl 0

您至少有两个选择:

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

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