我有一个很大的ASP.NET应用程序(遗留),实际上(功能上)由两个门户组成。所以我需要将它分成两个独立的应用程序,以减轻每个应用程序的开发。在两个应用程序中分割ASP.NET应用程序 - 处理共享页面/用户控件/脚本
当然这两者之间有共同的特征。其中一些在DAL和BL中,这不是问题 - 所有代码都是单独的独立项目,它们组成了要在两个应用程序中引用的程序集。
但问题是有一些页面,很多用户控件,一些CSS和JavaScript文件,这两个“门户”(应用程序)之间共享。
我想问一些关于如何处理它们的建议。我主要关心的是避免重复,所以理想情况下他们应该呆在一个地方,并由两个应用程序使用。
首先我试过的是将一个项目中的文件作为链接文件添加到另一个项目中。虽然这适用于代码文件(它们被内置到它们链接的项目中),但它不适用于aspx/ascx或css/javascript /图像。如果我首先发布(如果标记为内容,它们会在发布期间被复制),但在开发过程中我无法一直这样做,并且在应用程序从源代码调试/运行时找不到这些文件(sincve,显然当应用程序文件树中找不到任何链接文件时,链接文件实际上并不可用。
另一个想法是创建预构建事件,并且要从共同位置复制所有共享文件。 例如,我创建了一个项目常见,并把那里的文件夹组织正在应用程序之间共享的所有文件,并在预编译我执行xcopy
。
而另一个想法是做一个SVN仓库的所有共享文件的一部分我参考svn:external
,在这两个项目中。
但所有看起来我的小麻烦。有没有人有类似的情况?你是怎么处理的?
对我的任何建议有任何建议吗?
感谢您的建议 – bzamfir
第一个建议似乎是最适合我的方案(因为我不需要用户控件是可重用的,它们并不意味着)。但是我有两个问题:1.是否可以使用IIS Express? 2.似乎我必须改变所有的路径,把我所有的图像,CSS和脚本指向虚拟目录;这不是一件容易的事情,因为应用程序有几百页。 – bzamfir
@bzamfir问题1,我必须说我不知道。对于问题2,这取决于你的组织。如果您的资源位于少量位置,则可以将/ images或/ css变为虚拟,而无需更改页面中的路径。 – jbl