APP_CODE目录是否仍在ASP.NET应用程序中使用?

时间:2018-10-28 08:42:04

标签: asp.net iis

编辑: 请注意,指出的答案已有7年以上。因此,正如问题中所述,我想知道2018年是否有任何变化。

第二,我还想知道在Web服务器上托管站点的过程,这个问题从未提到过。 @mlhDev已经回答了这个问题。

原始: 我尝试搜索了很多内容,但是所有对ASP.NET文件夹结构的引用,要么是引用非常旧的.NET版本,要么是基于ASP.NET MVC / ASP.NET Core。

我对ASP.NET还是很陌生(来自经典ASP的背景并试图进行升级)。如果有推荐的ASP.NET Web应用程序目录结构(暂时没有MVC或Entity Framework或任何其他精美概念),请指导我。

我还尝试在Windows 10计算机上寻找IIS,需要通过“添加Windows功能”安装IIS,但是我很困惑:

  1. 如何在不安装IIS的情况下浏览我的Web应用程序
  2. 安装IIS之后,我仍然看不到我的应用程序文件,那么这些文件部署在哪里?
  3. 而且,在App_Code,App_Data和其他此类文件夹在哪里,我需要显式创建这些文件夹还是自动添加这些文件夹?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

Visual Studio使用了一个非管理员模式的程序,即IIS Express(Cassini的前身,类似的想法,但产品不同),该程序不需要提升的权限或UAC权限来托管网站,它已成为新Visual Studio的默认设置网络项目。这就是为什么不需要安装您熟悉的IIS的原因。

ASP.NET Web表单(非MVC风格)可以取代其他C#项目,并允许您编译C#代码,从而为UI(.aspx文件)和逻辑(.aspx.cs)提供单独的文件,称为后台代码)并生成已编译的输出:这些后台代码文件被编译为dll文件,并部署在生产Web服务器上的/ bin文件夹中。还有一种方法可以编译UI文件。

是的,有一些魔术文件夹可以完成不同程度的魔术,但是没有,您无需创建它们就可以使用它们。如果某个教程说“将其放置在您的app_code文件夹中”而您没有,请在那时创建它。

我在这些示例中引用了C#,但是ASP.NET完全支持VB.NET以及任何其他CLR语言(尽管社区和工具支持会有所不同)。

有ASP背景的个人建议

我来自ASP经典世界,所以我想我知道您来自哪里。我想提出一些您没问过的要点。

有两种类型的ASP.NET Web窗体项目,最常见的是Web项目。它要求您有一个项目文件(.csproj),该文件可跟踪项目中包含的页面。附带编译时支持-Visual Studio需要知道要编译什么以及忽略,嵌入什么等等。

第二种类型的细微差别被称为网站。我不建议将它用作学习机会,因为它非常挑剔,而且随着项目规模的扩大,您会遇到更多随机问题,需要大量挖掘。我将其作为您的代码从ASP经典到ASP.NET的升级路径。它最像经典。您没有项目文件,只需指向代码所在的文件夹即可。您所看到的(在Windows资源管理器中)就是您所得到的。但是非常挑剔-与Web项目相比,经典的学习曲线较少,但维护曲线更高。

最后,即使我说过UI文件和代码文件是分开的,您也可以将代码与UI放在同一个文件中。同样,不建议将其用于学习,因为这会导致难以维护的超级草率代码,但是如果您尝试以最少的返工量升级超大型经典代码库,则可能会感兴趣。 ASP.NET经历了一个“ page life cycle”,我相信您会读到的,但是如果所有代码都在预渲染或渲染阶段执行,则最终会得到一个非常相似的执行模型和结构到ASP Classic。

不推荐这三件事(网站代码库,没有代码隐藏文件,并且仅使用预渲染阶段),尤其是如果您要尝试做的只是学习技术和专业发展;我只提到在升级大型ASP经典代码库时为您节省时间。