Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将ASP.NET应用程序拆分为两个应用程序-处理共享页面/用户控件/脚本_Asp.net_Svn_Split_Linked List - Fatal编程技术网

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

将ASP.NET应用程序拆分为两个应用程序-处理共享页面/用户控件/脚本,asp.net,svn,split,linked-list,Asp.net,Svn,Split,Linked List,我有一个大型ASP.NET应用程序(遗留),它实际上(功能上)由两个门户组成。因此,我需要将其拆分为两个独立的应用程序,以简化每个应用程序的开发 当然,两者之间有共同的特点。它们中的一些在DAL和BL中,这并不是一个问题——所有这些代码都是在单独的项目中分离出来的,这些项目由两个应用程序中都要引用的程序集组成 但问题在于一些页面、大量用户控件、一些css和javascript文件在两个“门户”(应用程序)之间共享 我想就如何处理这些问题征求一些意见。我主要关心的是避免重复,所以理想情况下,它们应

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

当然,两者之间有共同的特点。它们中的一些在DAL和BL中,这并不是一个问题——所有这些代码都是在单独的项目中分离出来的,这些项目由两个应用程序中都要引用的程序集组成

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

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

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

另一个想法是创建预构建事件,并从公共位置复制所有共享文件。 e、 g.我创建一个公共项目,并将应用程序之间共享的所有文件放在那里,组织在文件夹中,并在预构建时执行
xcopy

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

但这一切看起来都是我的小麻烦。有人有过类似的情况吗?你是怎么处理的


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

你至少有两个选择:

  • 通过虚拟目录共享:
  • 创建用户控件库:
对于css、js和图像等资源,虚拟目录方法似乎很简单。 我也倾向于使用它来共享用户控件


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

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

我删除了其中两个项目中的文件,并将其替换为第一个项目的链接文件,但当我运行该网站时,我发现两个项目页面中缺少404个css和javascript文件错误

因此,我只是简单地将nuget包添加到我的解决方案中,一切都很好——css和javascript文件在这两个项目中部署得很好,我的404错误消失了

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


另请参见此内容。

第一个建议似乎最适合我的场景(因为我不需要可重用的用户控件,它们也不需要)。但我有两个问题:1.是否可以使用IIS Express?2.似乎我必须更改所有指向虚拟目录的图像、CSS和脚本的路径;这不是一项容易的任务,因为应用程序只有几百页。@bzamfir对于问题1,我必须说我不知道。对于问题2,这取决于您的组织如果您的资源位于少数位置,/images或/css可以成为虚拟的,而无需更改页面中的路径。