2

从本周开始,我被要求开始学习如何用 ASP 开发网站。我通过 XNA 对 C# 有中等水平的经验,所以这部分对我来说并没有太大的麻烦。

我一直在关注音乐商店教程,它让我设置了一个“ASP.NET MVC 3”应用程序。

当我在本地运行测试时,我即将完成教程并拥有一个正常运行的站点,但我不明白需要上传哪些文件。我之前曾为 ASP 网站进行前端更新,但在组成网站的文件等方面,它们与此完全不同。

我在我的项目中没有看到一个.aspx页面,这是我认为 ASP 网站是根据经验构成的。我开始认为这些项目不是 MVC 项目,而可能只是“ASP.NET Web 应用程序”风格的项目。

ASP.NET 和 ASP.NET MVC 有什么不同吗?依我的模糊理解,MVC 只是一个封装了 ASP.NET 的框架?此外,ASP是什么东西还是只是 ASP.NET 的同义词?最后回到我最初的困惑,当我想启动一个 ASP.NET MVC 项目时,哪些文件要上传到服务器上?

我是否只是上传整个目录,服务器会以与内置测试 ASP 服务器相同的方式处理它?或者网站是否以某种方式编译成几个文件,我只是上传其中一个目录(我想我在某处读过)。

在此处输入图像描述

4

3 回答 3

4

ASP 是 Active Server Pages 的首字母缩写词。在 .NET 之前,ASP 是 Microsoft 的第一个迭代脚本网页。所有这些页面通常都以扩展名 .ASP 结尾。

.NET 发布时,对 ASP 进行了重大改革,并更名为 ASP.NET。新版本的 ASP.NET 尝试对 Web 开发进行建模,类似于 Windows 应用程序开发,您在其中使用控件和事件处理模型。这是微软多年来开发网页的主要模型,它仍然存在并受到支持,但今天它被称为 ASP.NET Web 窗体。ASP.NET Web 窗体页面通常具有您提到的 .ASPX 扩展名。

在 2000 年代中期左右,Ruby on Rails 起飞,使用基于 MVC 的模型来开发 Web 应用程序。几年后,Microsoft 发布了 ASP.NET 的替代版本,称为 ASP.NET MVC,它使用了类似的概念。许多人认为 MVC 方法是一种比 Web 表单模型更自然的网页开发方法(请注意几年前这个网站上的史诗般的 Q/A 线程)。无论如何,ASP.NET MVC 与 ASP.NET Web 窗体共享部分,但外观和工作方式大不相同;一方面,没有 .ASPX 页面,因为 MVC 在大多数情况下使用不同形式的路由来确定要显示的内容。

这是一个非常简短的历史,掩盖了很多主题。您发布的屏幕截图是一个 ASP.NET MVC 项目。

就发布而言,发布 ASP.NET 网站的典型途径是在 Visual Studio 中打开项目,选择 Build|Publish,然后告诉 VS 将它放在哪里。根据您使用的方法,您可能需要在 IIS 中在您发布站点的框上进行其他配置。

于 2012-07-25T00:54:50.840 回答
1

您可能熟悉 ASP.NET WebForms,这是一个 MVC 项目。你可以在这里找到更多:

ASP.NET MVC

为了上传网站,您需要将网站从 Visual Studio 内部发布到本地文件位置,然后将所有内容上传到网站。

如果目标服务器没有安装 MVC,您可以在 Visual Studio 中右键单击网站项目并选择“添加可部署依赖项”。

这将确保服务器具有运行 MVC 项目所需的所有文件。

于 2012-07-25T02:08:55.423 回答
1

首先,当您说 时ASP,您指的是旧的(过时的)技术。ASP.NET 就是您在问题中所指的具体内容。

ASP.NET 是一项 Microsoft 技术,它与 IIS 服务器协同工作以提供“Windows 应用程序”类型的网站体验。您的网站逻辑被编译成一个 .NET DLL“类库”。当 Web 请求使用与您的应用程序目录匹配的 URL 到达 IIS 时,IIS 会在内部启动您的应用程序并对其进行维护。

不明白需要上传什么文件

Visual Studio 实际上有一个内置的发布者可供您使用。请参阅Build -> PublishVS / Web Developer 中的菜单。

我在我的项目中没有看到一个 .aspx 页面,这是我认为 ASP 站点是根据经验构成的。

ASP.NET Web 窗体使用页面的 aspx 扩展,它们的前端呈现组件。另一方面,ASP.NET MVC 使用视图的概念,它不依赖于特定的组件。见下一段。

ASP.NET 和 ASP.NET MVC 有什么不同吗?

是的。不,也许。ASP.NET 包含所有允许 IIS(Web 服务器)运行 Web 应用程序并提供网页的“魔法”。卷可以(并且已经)写在这上面。ASP.NET 还通过 Http Modules 和 Providers 支持许多配置。这些组件是通过 Web 应用程序web.config文件声明和配置的,通常由 IIS 和 ASP.NET 自动创建和保存。它们共同构成了使 ASP.NET开箱即用的粘合剂

MVC 建立在现有的 ASP.NET 基础类之上。为了支持模型-视图-控制器模式,一些特性已经被借用,一些特性已经被替换,并且已经创建了不止一些特性。

例如,MVC 为我们提供了支持View Engines- 一个运行时库,它允许我们以特定格式编写视图(网页)。ASPX 视图引擎在 MVC 启动期间存在。后来出现了 Razor,使用了.cshtml扩展。MVC 框架的用户也已经实现了各种各样的他们自己的视图引擎。由于 ASP.NET 和 MVC 的模块化特性,这是可能的。

我是否只是上传整个目录,服务器会以与内置测试 ASP 服务器相同的方式处理它?或者网站是否以某种方式编译成几个文件,我只是上传其中一个目录(我想我在某处读过)。

我建议使用Build -> PublishVisual Studio 中的菜单。如果您的主机支持,您可以使用web deploy它,但也可以使用 FTP 和文件系统方法。

bin文件夹包含在服务器上运行 Web 应用程序所需的类库。该web.config文件提供了执行此操作的配置。但是,您的视图不会编译到程序集中。它们按原样发布,并由视图引擎延迟渲染。

于 2012-07-25T04:31:43.080 回答