【问题标题】:Is the APP_CODE directory still used in ASP.NET applications? [duplicate]APP_CODE 目录是否仍在 ASP.NET 应用程序中使用? [复制]
【发布时间】:2018-10-30 07:36:39
【问题描述】:

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

其次,我还想知道问题中从未提及的在 Web 服务器上托管网站的过程。 @mlhDev 已经回答了这个问题。

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

我对 ASP.NET 非常陌生(来自经典 ASP 的背景并尝试升级)。如果有推荐的 ASP.NET Web 应用程序目录结构(目前没有 MVC 或实体框架或任何其他奇特的概念),请指导我。

我也尝试在我的 Windows 10 机器上寻找 IIS,它需要通过“添加 Windows 功能”安装,但我很困惑:

  1. 如何在不安装 IIS 的情况下浏览我的 Web 应用程序
  2. 安装 IIS 后还是看不到我的应用文件,请问这些文件部署在哪里?
  3. 还有,App_Code、App_Data 和其他此类文件夹在哪里,我需要明确创建这些文件夹还是自动添加这些文件夹。

任何帮助将不胜感激。

【问题讨论】:

  • 看到这个问题。 stackoverflow.com/questions/7480437/…。如果您已经安装了 Visual Studio(社区版是免费的),那么会附带一个 IIS 版本,并在您开始调试时启动。 ASP.net 使用编译后的代码,所以一般你不会上传你的 .cs 文件到服务器,只上传程序集(即编译后的 .dll)

标签: asp.net iis


【解决方案1】:

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 Classic-to-ASP.NET 升级路径。这是最像经典的。您没有项目文件,您只需指向代码所在的文件夹。所见即所得(在 Windows 资源管理器中)。但非常挑剔 - 经典的学习曲线低,但维护曲线比 Web 项目高。

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

不推荐这三件事(网站代码库、无代码隐藏文件和仅使用预渲染阶段),尤其是如果您只想学习技术和职业发展;如果您要升级大型 ASP Classic 代码库,我只是为了节省您的时间。

【讨论】:

  • 非常感谢您提供的信息。我正在尝试升级大型经典代码库,我相信您的指导会很有帮助。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
  • 2016-07-15
相关资源
最近更新 更多