截至本周初,我已被要求开始学习如何在ASP中开发网站。我对C#通过XNA有一定的经验,所以对我来说这部分并不是很麻烦。
我一直在关注Music Store Tutorial,它通过设置“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服务器的方式处理它?或者该网站以某种方式编译成几个文件,我只上传其中一个目录(我想我在某处读过)。
答案 0 :(得分:4)
ASP是Active Server Pages的首字母缩写。 Pre .NET,ASP是微软第一个迭代脚本化的网页。所有这些页面通常以扩展名.ASP结束。
当.NET发布时,ASP得到了彻底检修并重命名为ASP.NET。新版本的ASP.NET尝试模拟Web开发,类似于Windows应用程序开发,您使用控件和事件处理模型。这是微软多年来网页开发的主要模式,它仍然存在并得到支持,但今天它被称为ASP.NET Web Forms。 ASP.NET Web窗体页面通常具有您提到的.ASPX扩展名。
在2000年代中期,Ruby on Rails开始使用基于MVC的模型开发Web应用程序。几年后,微软发布了一个名为ASP.NET MVC的替代版本的ASP.NET,它使用了类似的概念。许多人认为MVC方法是开发网页的一种比Web表单模型更自然的方法(注意几年前在这个网站上的史诗Q / A线程)。无论如何,ASP.NET MVC与ASP.NET Web Forms共享部件,但外观和工作方式完全不同;一方面,没有.ASPX页面作为MVC,在大多数情况下,使用不同形式的路由来确定要显示的内容。
这是一个非常短暂的历史,掩盖了很多主题。您发布的屏幕截图是ASP.NET MVC项目。
就发布而言,发布ASP.NET网站的典型途径是在Visual Studio中打开项目,选择Build | Publish,然后告诉VS将其放在何处。根据您使用的方法,您可能必须在发布站点的框中的IIS中进行其他配置。
答案 1 :(得分:1)
您可能熟悉ASP.NET WebForms,这是一个MVC项目。你可以在这里找到更多:
要上传网站,您需要将网站从Visual Studio内部发布到本地文件位置,然后将所有内容上传到网站。
如果目标服务器没有安装MVC,您可以右键单击Visual Studio中的网站项目,然后选择“添加可部署的依赖项”。
这将确保服务器具有运行MVC项目所需的所有文件。
答案 2 :(得分:1)
首先,当你说ASP
时,你指的是旧的(过时的)技术。 ASP.NET特别是您在问题中提到的内容。
ASP.NET是一种Microsoft技术,它与IIS服务器协同工作,为网站提供“Windows应用程序”类型体验。您的网站逻辑被编译到.NET DLL“类库”中。当Web请求使用与您的应用程序目录匹配的URL访问IIS时,IIS会在内部启动您的应用程序并对其进行维护。
我不明白需要上传哪些文件
Visual Studio实际上有一个内置的发布者可供您使用。请参阅VS / Web Developer中的Build -> Publish
菜单。
我在项目中没有看到单个.aspx页面,这就是我认为ASP站点是由经验构成的。
ASP.NET Web窗体使用页面的aspx扩展,即它们的前端渲染组件。另一方面,ASP.NET MVC使用Views的概念,它不依赖于特定组件。见下一段。
ASP.NET和ASP.NET MVC有什么不同吗?
是。不,也许吧。 ASP.NET包含允许IIS(Web服务器)运行Web应用程序并提供Web页面的所有“魔力”。卷可以(并且已经)写在这上面。 ASP.NET还通过Http模块和提供程序支持很多配置。这些组件是通过Web应用程序web.config
文件声明和配置的,通常由IIS和ASP.NET自动创建和保留。它们共同构成了使ASP.NET只是工作开箱即用的粘合剂。
MVC建立在现有的ASP.NET基础类之上。一些功能已被借出,一些功能已被替换,并且为了支持模型 - 视图 - 控制器模式,已经创建了一些功能。
例如,MVC为我们提供了对View Engines
的支持 - 一个运行时库,它允许我们以特定格式编写视图(网页)。 ASPC视图引擎在MVC发布期间存在。后来Razor使用了.cshtml
扩展名。 MVC框架的用户也实现了各种各样的视图引擎。由于ASP.NET和MVC的模块化特性,这是可能的。
我是否只上传整个目录,服务器将以内置测试ASP服务器的方式处理它?或者该网站以某种方式编译成几个文件,我只上传其中一个目录(我想我在某处读过)。
我建议使用Visual Studio中的Build -> Publish
菜单。如果主机支持,您可以使用web deploy
,但也可以使用FTP和文件系统方法。
bin
文件夹包含在服务器上运行Web应用程序所需的类库。 web.config
文件提供了执行此操作的配置。但是,您的视图不会编译到程序集中。它们按原样发布,并由视图引擎延迟呈现。