请原谅我对这个问题的无知,但我是一个相对经验丰富的php程序员,除了一些Ruby之外没有任何其他Web编程语言的经验。
前段时间我被告知ASP和ASP.NET在某种程度上等同于PHP,因为它们执行的任务基本相同,即。处理发布和获取请求,可以打印html,访问数据库等等。
因此,如果它们相似并且在PHP中,我基本上可以完成我为Web应用程序所需的一切,对于Microsoft Stack中的另一种语言,即C#,需要什么?
如果我没有弄错的话,C#是SO中最受欢迎的语言之一,所以我猜我在这里缺少一些大的东西。
我可以澄清一下吗?提前致谢
答案 0 :(得分:5)
好的,这里涉及3层。
C#
< - 这是一种原始编程语言。它可以像任何其他语言一样单独使用。这大致相当于PHP,Ruby,Perl等
.NET
< - 这是一个从任何支持的语言本地与库交互的框架。如果没有.NET,如果你想在C#应用程序中使用VB类,则需要构建某种接口(例如通过网络的RPC或命令行包装器等)。使用.NET,您可以直接与VB.NET类交互,就像使用其他C#类(和数据等)一样。基本上,它可以更容易地集成多种语言。 PHP中没有相应的内容......
ASP
< - 这是一个用于构建基于Web的应用程序的框架。请记住,C#和VB是(缺乏更好的术语)通用语言。处理网站的语言没有内置任何内容。所以ASP在ontop上添加了一层,使创建网站变得更加容易(请求处理,MVC库等)。这类似于PHP中的框架概念(例如Zend Framework)。
现在,有两个版本的ASP。旧版本(称为Classic ASP)和新版本(ASP.NET)。不同之处在于ASP.NET构建于.NET框架之上。因此,使用ASP.NET可以使用您选择的语言创建网站(只要它具有.NET绑定,例如C#或VB.NET等)。
ASP.NET
和.NET
只不过是现有编程语言之上的图层(在这种情况下为C#
,但也支持许多其他编程语言)。他们在那里让您的生活更轻松。他们所做的一切都可以直接用C#完成,但框架可以抽象出常见的主题,让你专注于你的问题(就像任何好的框架一样)......
答案 1 :(得分:1)
ASP.NET是一个Web开发框架,您可以使用C#(或VB.NET)进行交互。
C#只是一种为.NET实现的语言
答案 2 :(得分:1)
PHP和asp / asp.net在这方面是相似的。但是当它归结为网站实现时,它们是非常不同的..在PHP中,你可以将PHP代码与html集成,使其变得非常容易动态网页。另一方面,asp.net基本上是MS创建html的简便方法,可以轻松地放置和实现服务器端和客户端脚本/代码。您需要了解C#或VB才能实现.NET服务器端代码。
答案 3 :(得分:1)
像Achilles所说,ASP.NET是一个拥有许多有趣功能的框架,等等。它不是一种语言。你不用.NET或ASP.NET编写东西。您使用一种.NET友好语言编写代码,例如C#。
作为差异的一个示例,您可以选择完全绕过.NET并针对Mono项目编写C#代码,Mono项目是类似.NET的框架,但不是来自Microsoft。
为了进一步说明,您可以编写aspx页面,但是您将使用HTML和ASP.NET服务器控件的组合,或者如果使用MVC,您将使用HTML和C#代码的组合。在这个aspx页面上。
答案 4 :(得分:1)
我认为你混淆了一些事情。
有ASP - 经常被称为经典ASP 。这是一种动态的,类似PHP的网络语言。 PHP和Classic ASP非常相似。
有ASP.Net,它依赖于C#或Vb.net等基础语言。
关于为何选择其中一个的问题:
PHP / Classic ASP与ASP.Net:
http://www.beansoftware.com/ASP.NET-Tutorials/Classic-ASP-vs-ASP.NET.aspx
答案 5 :(得分:0)
编写asp.net页面时,您需要使用C#或vb.net等语言。