微软的命名很糟糕。技术上有两个框架:ASP.NET和ASP.NET Core,它们分别基于.NET Framework和.NET Core构建。
当Microsoft首次尝试创建一个遵循MVC模式的“现代”Web应用程序平台时,它将这个新平台称为“ASP.NET MVC”,以区别于以前的ASP.NET应用程序(主要是Web Forms)。然后,为了更加混淆事情,他们后来添加了“ASP.NET Web Api”,这实际上并不是一个不同的东西,而只是ASP.NET MVC的扩展。ASP.NET MVC的最新版本是5,最后一个版本ASP.NET Web Api是2。
然后,Microsoft开始研究ASP.NET“vNext”,它实际上只是新版ASP.NET MVC的代号。最初,计划是将它作为MVC的新版本,因此它也开始被称为“ASP.NET MVC 6”。然而,MVC 6不是一件事,也从未真正存在过。
最终,很明显,微软想要使用“vNext”的方向需要在框架层面进行根本转变,并且开始在.NET Core和ASP.NET Core上开展工作。从技术上讲,该框架是“ASP.NET核心”,期间。它不是“ASP.NET Core MVC”。“MVC”,“Web Api”和“Razor Pages”术语只是特定样式的ASP.NET Core应用程序的名称。它们之间没有根本区别,任何ASP.NET Core应用程序都可以包含MVC样式的控制器和视图,返回JSON / XML和/或Razor Pages的API控制器或其任何组合。
长和短,称之为ASP.NET Core就足够了。如果你正在做一些特定的事情,比如使用Razor页面,那么你应该指定你正在使用Razor Pages。同样对于API控制器等,但它仍然只是ASP.NET Core。
NET、C#和ASP.NET三者之间的区别如下:
一、什么是.NET?
.NET是微软公司下的一个开发平台,.NET核心就是.NET Framwork(.NET框架)是.NET程序开发和运行的环境,在这个平台下可以用不同的语言进行开发,因为.NET是跨语言的一个平台。语言可以是C#,f#,j#,vb.net等等。JAVA和.NET不同的一点是java是跨平台的,不跨语言的。.NET跨平台仅限于安卓系统和IOS苹果系统。
1…net框架的组成分为两部分:
CLR:公共语言运行时(Common Language Runtime),提供内在管理,代码安全性检测等功能。
FLC:.NET框架类库(.NET Framework Class Library),提供大量应用类库,类库中有很多线程的资源可使用(比如:类,方法,属性),提高开效率。
2.CLR的结构:
CLS:公共语言规范,获取各种语言转换成统一的语法规范。
CTS:通用类型系统,将各种语言中的数据类型转换成统一的类型
JIT:实时编译器(即时编译器)用于将转换之后的语言编译为二进制语言,交给CPU执行。
3 .NET运行的机制流程
各种语言(c#,F#,j#等对应的源程序)——>经过CLS,CTS第一次编译——>统一规范语言(中间语言)MSIL(.EXE,.DLL)——>JIT第二次编译——>二进制语言——>运行在CPU中
java的运行机制:
java——>编译——>字节码文件(.CLASS)——>jvm解释(jvm虚拟机)——>二进制语言——>运行在CPU中
二、什么是C#?
C#是一个.NET平台下的一个程序设计语言,仅仅是一个语言。是运行在.net CLR上的,用于创建应用程序的高级语言。 程序设计语言是为了方便开发人员和计算机沟通的工具。
三、什么是ASP.NET?
ASP.NET是一个网站开发的技术,是.NET框架中的一个应用模型,用于生成基于Web的应用程序的内容丰富的编程框架。使用ASP.NET开发Web应用程序并维持其运行,比其他开发语言更加简单。与Java、PHP和Perl等高级技术相比,ASP.NET具有方便性、灵活性、生产效率高、安全性高及面向对象等优点,是目前主流的网络编程技术之一。
ASP(Active Server Pages)是服务器端脚本编写环境:
[Active Server Pages(ASP)是服务器端脚本编写环境,使用它可以创建和运行动态、交互的 Web 服务器应用程序。使用 ASP 可以组合 HTML页、VBScript脚本命令和JavaScript脚本命令等,以创建交互的 Web 页和基于 Web 的功能强大的应用程序。
由于脚本程序是在服务器上而不是在客户端运行,传送到浏览器上的 Web 页是在 Web 服务器上生成的。所以不必担心浏览器能否处理脚本:Web 服务器已经完成了所有脚本的处理,并将标准的 HTML 页面传输到浏览器。由于只有脚本的结果返回到浏览器,所以服务器端脚本不易复制。用户看不到创建他们正在浏览的页的脚本命令。]