经典ASP内联网和新ASP.NET应用程序

经典ASP内联网和新ASP.NET应用程序

问题描述:

我们有一个现有的经典ASP内联网,由数百页组成。它的目录结构看起来像这样...经典ASP内联网和新ASP.NET应用程序

/root 
    app_1 
    app_2 
    ... 
    img 
    js 
    style 

很明显,app_1等在实际目录结构中有更好的名称。

尽管许多应用程序具有不同的行为,但它们都是同一个Intranet的一部分,因此通过/ style包含样式表,通过/ img包含样式表和通过/ js包含客户端脚本来共享通用外观。

当我想在ASP.NET中添加一个Intranet应用程序时,麻烦(至少对我来说)来了。

最后,我想这样的结构:

/root 
    app_1 
    app_2 
    dotnetapp_1 
    dotnetapp_2 
    ... 
    img 
    js 
    style 

在我看来,那ASP.NET“应用程序”喜欢把自己的从周围的一切独立的(这可能只是我的理解他们是如何)。你在Visual Studio中创建一个新的“项目”,就像你有一个新的“根”在我想要使用的实际的根之下。就像这个新的应用程序是一个独立的,具有自己的图像和风格以及什么的应用程序。但是,我希望它成为现有Intranet的子部分。

最终,我希望能够将我的整个经典ASP Intranet作为“根”,并拥有仍然可以访问/ style和/ img的ASP.NET“子应用程序”,我想ASP.NET对于“将有/ masterpages。

我以前试过这个,但我认为VS窒息了几百个经典ASP页面,当我将现有的Intranet根目录作为ASP.NET项目根目录时,它添加到“项目”中(通过File- > Open-> Web Site)。我很高兴编辑使用VS 2008 SP1的现有经典ASP Intranet(我目前使用优秀的Notepad++),因为我想用VS获得更多的信息,但我想这不是绝对必要的。

我也尝试将每个新的ASP.NET应用程序作为一个应用程序来处理,使/ dotnetapp_1目录成为应用程序的“根”(同样,通过VS2008中的File-> Open-> Web Site) 。然而,当我尝试引用/ masterpages时,VS会抱怨,因为它“属于另一个应用程序”。我认为我通过在每个ASP.NET目录内添加一个虚拟目录来指责它,这个虚拟目录“指向”根目录/主页面,但我不确定当我这样做时,VS能够愉快地提供所见即所得编辑,而不是制作副本在我添加到Intranet的每个ASP.NET应用程序中的主页面。我也很有可能访问.NET MVC框架,所以请提供任何有关该框架的答案。我希望“项目”对于MVC来说不是很重要,而只是一堆文件创建了一个对整个(即内联网)有贡献的应用程序。

所以,问题是:如何最好地将ASP.NET应用程序添加到现有的经典ASP Intranet(我不关心经典ASP和ASP.NET之间会话共享的技术问题,只有目录和项目的结构布局),并且能够在Visual Studio 2008 SP1中编辑这些单独的应用程序,并且通过常见的Intranet外观和感觉使这些应用程序“相关”

  • 请不要只发布答案“使用MasterPages”。我感谢MasterPages。NET的方法共享相同的应用程序中的相关页面之间的样式(更可能)。我明白了。我在寻找的是将ASP.NET应用程序尽可能顺利地添加到现有Intranet中的最佳方法,这使得编辑每个应用程序变得简单,并且每个应用程序可以共享(如果可能)Intranet常见样式。

一个解决方案是使用IIS管理器来配置网站(由Visual Studio为您的ASP.NET应用程序创建),并为每个常用文件夹添加一个虚拟目录,以便(通过'虚拟'性质的虚拟目录),他们将出现在与你的ASP.NET应用程序相同的根文件夹中。

/root 
    app_1 
    app_2 
    dotnetapp_1 
    <virtual>img 
    <virtual>js 
    ... 
    img 
    js 
    style 

你或许可以脚本IIS或者如果你需要这样做批量修改一个XML文件,我敢肯定,必须有一个更优雅的方式做同样的事情,不需要得多鼠标工作!

+0

正如我的问题所述,这是我过去在每个ASP中使用虚拟目录的方法.NET应用程序目录引用/ masterpages。凌乱,更不用说有点讨厌每次都必须这样做。我也认为VS也不是100%高兴。也许这是_is_解决方案? – Sprogz 2008-10-01 13:18:59

由于ASP.NET现在是Microsoft标准网络开发平台您可能更适合从一个全新的ASP.NET网站开始,并将现有的ASP页面和文件夹导入其中。一旦你建立并运行了,在ASP.NET中添加新的功能将会很快。

Microsoft知道有些客户会混合传统的ASP和ASP.NET一段时间,他们通过使经典的ASP页面在ASP.NET网站内工作来适应这种需求。你试图做的是与此相反(让ASP.NET在ASP中工作,sorta),并且你已经遇到了困难。

+1

谢谢。所以,使用VS2008我可以做一些像“创建新网站”一样的东西,并创建一个基本的.NET文件结构。那么怎样才能“添加”我现有的经典ASP,以便这些文件可以在VS中编辑,但不包含在盛大的“编译网站项目”中,还可以添加新的ASP.NET子应用程序。 – Sprogz 2008-10-01 13:24:07

难道你不能将asp.net网站作为虚拟目录运行吗?

www.site.com/dotnetapp/ 

其中dotnetapp是一个完全独立的虚拟目录?

夫妇不同的方式去了解这一点:

  1. 如果您列出的文件夹结构所需的Web文件夹结构,那么您的任何ASP.NET应用程序可以直接引用/root/js/whatever.js或../js/whatever.js,它会到达您已经拥有的文件夹。这是已经提到的虚拟目录解决方案的替代方案。这是一个相当混乱的解决方案,我在当前工作中继承的一些项目都是这样做的。
  2. 在之前的工作中,我管理了一个混合的经典ASP/ASP.NET应用程序几年,并且通过在根上创建了一个ASP.NET Web应用程序并将所有的ASP页面移动到其中。你想做的任何“子应用程序”应该只是这个单个项目中的文件夹。 [ASP页面在VS2008中没有颜色编码了,但这真的很烦人。]