一文讲懂C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别

2023-11-17

微软的命名很糟糕。技术上有两个框架: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 页面传输到浏览器。由于只有脚本的结果返回到浏览器,所以服务器端脚本不易复制。用户看不到创建他们正在浏览的页的脚本命令。]

小结:

C#是一种编程语言,而ASP.NET、ASP.NET Core、ASP.NET MVC、ASP.NET Web Forms、ASP.NET Core MVC则是基于C#语言的Web开发框架(浪潮之巅的Web)

ASP.NET(Windows)是微软推出的一种Web开发框架,它使用C#语言进行开发,可以用于创建Web应用程序和Web服务。ASP.NET Core(跨平台)是ASP.NET的下一代版本,它是一个跨平台的开源框架,可以在Windows、Linux和macOS等操作系统上运行。

ASP.NET MVC是一种基于模型-视图-控制器(MVC)模式的Web开发框架,它将应用程序分为三个部分:模型(Model)、视图(View)和控制器(Controller),使得开发人员可以更好地组织和管理代码。

ASP.NET Web Forms是一种基于事件驱动模型的Web开发框架,它使用ASP.NET服务器控件和事件模型来创建Web应用程序。与ASP.NET MVC不同,ASP.NET Web Forms不使用MVC模式,而是使用Web Forms模式。

ASP.NET Core MVC是ASP.NET Core的MVC框架,它使用MVC模式来组织和管理代码,同时具有跨平台、高性能、可扩展性等优点。

总的来说,这些框架都是用于Web开发的,但它们的设计思想、架构模式、适用场景等方面有所不同。开发人员可以根据自己的需求和技术水平选择适合自己的框架。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一文讲懂C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别 的相关文章

随机推荐

  • [vue-router] uncaught error during route navigation

    vue路由在加载组件之前会执行一些逻辑 尤其是生命周期的钩子函数 如果你在以上的钩子函数中 写了自己的逻辑 并报错了 就会触发 vue router uncaught error during route navigation这个错误 原因
  • 基于upload-labs的文件上传漏洞总结

    普通的前端绕过 1 抓包 2 上传jpg等格式的木马文件 3 bp上改回php后缀即可 普通绕过 1 抓包 2 上传jpg等格式的木马文件 3 bp上改后缀名为将后缀改为 php3 php4 php5 phtml等等 大小写绕过 即后缀名改
  • minikube命令

    Basic Commands 0minikube version查看版本 1minikube start启动一个集群 minikube start vm driver none image repository registry cn ha
  • ei计算机投稿 知乎,知乎热议:科研有很水的idea应该发表出来吗?

    原标题 知乎热议 科研有很水的idea应该发表出来吗 科研有很水的idea应该发表出来吗 来源 https www zhihu com question 372648294 小伙伴们 对于只能发EI 水会 OA SCI期刊那种 自己看到都觉
  • k8s基本命令

    k8s命令 https kubernetes io zh docs tutorials kubernetes basics 官网地址 基本命令 查看节点服务器 kubectl get nodes 查看命名空间 kubectl get ns
  • kettle(一)kettle介绍

    kettle介绍及组成 一 kettle 是什么 kettle 是一个ETL工具 ETL Extract Transform Load 数据抽取 转换 装载 kettle 是java编写 绿色无需安装 抽取高效稳定 kettle 主要用来对
  • 【零知ESP8266教程】快速入门5-使用按键来控制你的灯

    上节课 我们已经学习了如何制作一个简易交通灯 那么如何去控制一个LED的亮或者灭呢 此次试验采用按键来控制我们的LED 实现LED的简单控制 一 工具原料 电脑 windows系统 ESP8266开发板 micro usb线 LED灯一个
  • (模板)多项式乘法对任意数取模

    多项式乘法 系数对MOD 1000000007取模 常数巨大 慎用 只要选的K个素数乘积大于MOD MOD N 理论上MOD可以任取 define MOD 1000000007 define K 3 const int m K 100453
  • ajax怎么渲染数据,ajax数据请求渲染

    JQuery引入 html JS function var url https api douban com v2 movie search q E4 B8 89 E4 BD 93 count 1 ajax method get url d
  • 数据结构——第五章树(详细知识点总结)

    知识框架 5 1 树的基本概念 5 1 1 树的定义 树是n n gt 0 个节点的有限集 当n 0时 称为空树 在任意一棵非空树中应满足 有且仅有一个特定的称为根 Root 的结点 当n gt 1时 其余结点可分为m m gt 0 个互不
  • ArcGIS Maritime Server 开发教程(八)ArcGIS Bathymetry 扩展模块

    ArcGIS Maritime Server 开发教程 八 ArcGIS Bathymetry 扩展模块 本章导读 ArcGIS Bathymetry 扩展是 ArcGIS Maritime 解决方案中用于管理水深的重要模块 与传统的离散点
  • 内网穿透FRP详细教程

    简介 frp 是一个专注于内网穿透的高性能的反向代理应用 支持 TCP UDP HTTP HTTPS 等多种协议 可以将内网服务以安全 便捷的方式通过具有公网 IP 节点的中转暴露到公网 通过在具有公网 IP 的节点上部署 frp 服务端
  • 【笔记】构造函数的私有、公有、特权、静态成员

    根据书 javascript DOM高级程序设计 一书整理的笔记 var Myconstuctor function name 特权成员 与私有方法不同 特权方法能够被公开访问 而且还能够访问私有成员 特权方法是指在构造函数的作用域中使用t
  • 玩转wsl2之环境搭建

    Windows是市场占有率最高的桌面操作系统 很多开发人员还是习惯于在Windows系统中进行开发工作 但服务器领域多采用Linux操作系统 因此开发人员在开发过程中 经常会遇到windows系统开发的软件难以部署到Linux系统的问题 W
  • HTML表格嵌套、合并表格

    一 表格元素 lt table gt table常用属性 border 边框像素 width height 表格宽度 高度 bordercolor 表格边框颜色 bgcolor 表格背景颜色 二 tr th td元素 th和td元素是在tr
  • linux学习笔记-安装配置使用clamav杀毒软件

    1 安装clamav 2 更新病毒库 freshclam 如果更新不了 或者更新特别慢 可以手动下载病毒库文件 放到 var lib clamav 文件下 在更新病毒库 病毒库文件链接 三个文件 bytecode cvd http data
  • Python面试题,通过代码获取nginx.log中状态码的出现次数

    先用pyton分析nginx的一行日志 通过split函数把日志变成一个用空格分开的列表 得到了状态码是在索引为8的列表元素 开始操作 打开nginx日志文件 定义一个空字典 用来存放状态码出现的次数 结合while循环遍历每行日志
  • Python面试,这16个问题你一定要熟知

    一 Python 是如何进行内存管理的 答 从三个方面来说 一对象的引用计数机制 二垃圾回收机制 三内存池机制 对象的引用计数机制 Python 内部使用引用计数 来保持追踪内存中的对象 所有对象都有引用计数 引用计数增加的情况 一个对象分
  • C++查看变量类型办法(typeinfo)

    一 类型含意 bool b char c signed char a unsigned char h signed short int s unsigned short int t signed int i unsigned int j s
  • 一文讲懂C#、ASP.NET、ASP.NET MVC、ASP.NET web form、asp.net core mvc的区别

    微软的命名很糟糕 技术上有两个框架 ASP NET和ASP NET Core 它们分别基于 NET Framework和 NET Core构建 当Microsoft首次尝试创建一个遵循MVC模式的 现代 Web应用程序平台时 它将这个新平台