ASP.NET和ASP的区别是什么?

分析:

ASP与ASP.NET是Microsoft公司在Web应用程序开发上的两项重要技术。

ASP与ASP.NET区别如下:

(1)开发语言不同:ASP的开发语言仅局限于使用non-type脚本语言,给客户端脚本添加代码和给页面添加ASP代码的方法是一样的。

ASP.NET的开发语言更为广泛,可以使用符合.NET Framework规范的任何一种功能完善的strongly-type编程语言(比如Visual Basic、C#)。

(2)运行机制不同:ASP是解释型的编程框架,因没有事先编译,而是一边解释一边执行,故而页面的执行效率相对比较低。ASP.NET是编译型的编程框架,服务器上运行的是已经编译好的代码,因此可以利用早期绑定来实时编译,进而提高执行效率。

(3)运行环境不同:ASP的运行环境是Windows操作系统及IIS。ASP.NET的运行环境除了Windows操作系统及IIS,还需要安装.NET Framework。

(4)开发方式不同:ASP将用户界面层和应用程序逻辑层的代码混合写在一起,因此在维护和重用方面比较困难。ASP.NET将用户界面层和应用程序逻辑层的代码分离开,程序的复用性和维护性都得到了提高。

(5)诞生的时间不同:1996年11月,Microsfot公司推出了ASP(Active Server Pages)技术。2002年01月,Microsfot公司推出了ASP.NET技术。

总结:

ASP与ASP.NET虽然都是微软公司的两项Web技术,但由于它们诞生的时间与背景不同,所以它们之间的区别相对比较大,主要区别在开发语言、运行机制、运行环境、开发方式等方面的不同。

ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft .NET Framework中一套用于生成Web应用程序和Web服务的技术。ASP.NET页在服务器上执行,并生成发送到桌面或浏览器的标记(如 HTML、XML或者WML)。可以使用任何.NET兼容语言(比如Visual Basic、C#)编写Web服务文件中的服务器端(而不是客户端)逻辑。ASP.NET页使用一种由事件驱动的、已编译的编程模型,这种模型可以提高性能并支持将用户界面层同应用程序逻辑层相隔离。

注意:Web应用程序和Web服务可调用公共语言运行库的任意功能,例如类型安全、继承、语言互操作、版本控制和集成安全性等。

ASP.NET技术有几个显著的特性,既:

1、强大性和适应性 因为ASP.NET是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在支持.NET Framework所有平台上。ASP.NET同时也是language-independent语言独立化的,所以,可以选择一种最适合自己的语言来编写应用程序,或者可以用多种语言来写应用程序,这样的多种程序语言协同工作的能力可以保护基于COM+开发的程序,并能够完整的移植向ASP.NET。

2、简单性和易学性 .NET Framework封装了大量的类库,使ASP.NET完成一些常见的任务如表单的提交、客户端的身份验证、分布系统,并可以使网站配置变得非常简单。

3、高效可管理性 ASP.NET使用一种字符基础的、分级的配置系统,使服务器环境和应用程序的设置更加简单。ASP.NET已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,可以很大的提高运行速度。即使现在的ASP.NET应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高运行效能。

总结:

ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft .NET Framework中一套用于生成Web应用程序和Web服务的技术,利用公共语言运行时(Common Language Runtime)在服务器后端为用户提供建立强大的企业级Web应用服务的编程框架

今天,Scott Hanselman在其博客上宣布《ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0》,ASP.NET 5已经被判死刑,Scott在其中也解释了改名的根本原因:之前称之为“ASP.NET 5”确实让人感觉这是ASP.NET 4.6的升级版,比其功能更加强大,未来会替代ASP.NET 4.6。其实不是的,因为“ASP.NET 5”是另起炉灶开发,和 ASP.NET 4.6是并行独立的关系。

所在现在的名字变动如下:

  • ASP.NET 5 –> ASP.NET Core 1.0
  • .NET Core 5 –> .NET Core 1.0
  • Entity Framework 7 –> Entity Framework Core 1.0

这样的重命名可以让人(特别是.NET 圈子之外的人)马上了解到这个技术栈是微软在Web开发领域的一个“重新出发”,他们之间的关系以及和之前技术的关系如下图所示:

为了达成跨平台目标,微软开发工具部门在发布了 .NET 4.5 和 ASP.NET 4.5 之后花了相当长的时间来构架下一代网站开发技术。在这个超过两年的漫长过程中,以下几个目标逐渐清晰,这次改名让这几个目标更加明白的展现在你的面前:

  • 采用新思路来重新设计框架基础。这方面向 node.js 学习不少。
  • 采用全新技术,主要是 Roslyn。

  • 脱离 .NET Framework 的束缚实现跨平台

那么,我们如何做出选择呢?其实也很简单:

  • 如果你是重新开发全新的Web应用,而且打算跨平台运行,那么首选ASP.NET Core,这次改名后,就快发布了,还好在正式发布之前进行改名,改名是一个我们开发软件时候最难做的事情,看看自己写的代码就知道,有时候发布出去了只能将错就错;

分析:

ASP与ASP.NET是Microsoft公司在Web应用程序开发上的两项重要技术。

ASP与ASP.NET区别如下:

(1)开发语言不同:ASP的开发语言仅局限于使用non-type脚本语言,给客户端脚本添加代码和给页面添加ASP代码的方法是一样的。

ASP.NET的开发语言更为广泛,可以使用符合.NET Framework规范的任何一种功能完善的strongly-type编程语言(比如Visual Basic、C#)。

(2)运行机制不同:ASP是解释型的编程框架,因没有事先编译,而是一边解释一边执行,故而页面的执行效率相对比较低。ASP.NET是编译型的编程框架,服务器上运行的是已经编译好的代码,因此可以利用早期绑定来实时编译,进而提高执行效率。

(3)运行环境不同:ASP的运行环境是Windows操作系统及IIS。ASP.NET的运行环境除了Windows操作系统及IIS,还需要安装.NET Framework。

(4)开发方式不同:ASP将用户界面层和应用程序逻辑层的代码混合写在一起,因此在维护和重用方面比较困难。ASP.NET将用户界面层和应用程序逻辑层的代码分离开,程序的复用性和维护性都得到了提高。

(5)诞生的时间不同:1996年11月,Microsfot公司推出了ASP(Active Server Pages)技术。2002年01月,Microsfot公司推出了ASP.NET技术。

总结:

ASP与ASP.NET虽然都是微软公司的两项Web技术,但由于它们诞生的时间与背景不同,所以它们之间的区别相对比较大,主要区别在开发语言、运行机制、运行环境、开发方式等方面的不同。

ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft .NET Framework中一套用于生成Web应用程序和Web服务的技术。ASP.NET页在服务器上执行,并生成发送到桌面或浏览器的标记(如 HTML、XML或者WML)。可以使用任何.NET兼容语言(比如Visual Basic、C#)编写Web服务文件中的服务器端(而不是客户端)逻辑。ASP.NET页使用一种由事件驱动的、已编译的编程模型,这种模型可以提高性能并支持将用户界面层同应用程序逻辑层相隔离。

注意:Web应用程序和Web服务可调用公共语言运行库的任意功能,例如类型安全、继承、语言互操作、版本控制和集成安全性等。

ASP.NET技术有几个显著的特性,既:

1、强大性和适应性 因为ASP.NET是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在支持.NET Framework所有平台上。ASP.NET同时也是language-independent语言独立化的,所以,可以选择一种最适合自己的语言来编写应用程序,或者可以用多种语言来写应用程序,这样的多种程序语言协同工作的能力可以保护基于COM+开发的程序,并能够完整的移植向ASP.NET。

2、简单性和易学性 .NET Framework封装了大量的类库,使ASP.NET完成一些常见的任务如表单的提交、客户端的身份验证、分布系统,并可以使网站配置变得非常简单。

3、高效可管理性 ASP.NET使用一种字符基础的、分级的配置系统,使服务器环境和应用程序的设置更加简单。ASP.NET已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,可以很大的提高运行速度。即使现在的ASP.NET应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高运行效能。

总结:

ASP.NET不是一种语言,而是创建动态Web页的一种强大的服务器端技术,它是Microsoft .NET Framework中一套用于生成Web应用程序和Web服务的技术,利用公共语言运行时(Common Language Runtime)在服务器后端为用户提供建立强大的企业级Web应用服务的编程框架

今天,Scott Hanselman在其博客上宣布《ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0》,ASP.NET 5已经被判死刑,Scott在其中也解释了改名的根本原因:之前称之为“ASP.NET 5”确实让人感觉这是ASP.NET 4.6的升级版,比其功能更加强大,未来会替代ASP.NET 4.6。其实不是的,因为“ASP.NET 5”是另起炉灶开发,和 ASP.NET 4.6是并行独立的关系。

所在现在的名字变动如下:

  • ASP.NET 5 –> ASP.NET Core 1.0
  • .NET Core 5 –> .NET Core 1.0
  • Entity Framework 7 –> Entity Framework Core 1.0

这样的重命名可以让人(特别是.NET 圈子之外的人)马上了解到这个技术栈是微软在Web开发领域的一个“重新出发”,他们之间的关系以及和之前技术的关系如下图所示:

为了达成跨平台目标,微软开发工具部门在发布了 .NET 4.5 和 ASP.NET 4.5 之后花了相当长的时间来构架下一代网站开发技术。在这个超过两年的漫长过程中,以下几个目标逐渐清晰,这次改名让这几个目标更加明白的展现在你的面前:

  • 采用新思路来重新设计框架基础。这方面向 node.js 学习不少。
  • 采用全新技术,主要是 Roslyn。

  • 脱离 .NET Framework 的束缚实现跨平台

那么,我们如何做出选择呢?其实也很简单:

  • 如果你是重新开发全新的Web应用,而且打算跨平台运行,那么首选ASP.NET Core,这次改名后,就快发布了,还好在正式发布之前进行改名,改名是一个我们开发软件时候最难做的事情,看看自己写的代码就知道,有时候发布出去了只能将错就错;