ASP.NET与.NET Framework和C#的关系
你好,是我琉忆。
今天我们讲一讲ASP.NET与.NET Framework和C#的关系。
在开始介绍ASP.NET之前,我们需要先了解以下运行ASP.NET的开发平台.NET框架。如果你之前学过C#那么对.NET框架会有一定的了解。当你在编写ASP.NET代码时会发现ASP.NET的代码和C#相近甚至等同。那么你一定会有一些疑问。他们三者是什么关系呢?我们一起来看看。
一.NET Framework
Microsoft.net是2000年6月22日微软向全世界推出的,全新的软件开发和服务平台,目的是向全世界的客户提供强大的、个性化的互联网服务。从2002年发布最初的版本1.0,到2012年正式推出4.5,共经历了1.0、1.1、2.0、3.0、3.5
、4.0、4.5、4.7八个版本。
.NET的核心就是.NET
Framework(.Net框架)是.NET程序开发和运行的环境,在这个平台下可以用不同的语言进行开发,因为.NET是跨语言的一个平台。语言可以是C#,F#,Visual
Basic.NET等等。JAVA和.NET不同的是java是跨平台的,不跨语言的。.NET跨平台仅限于安卓系统和IOS苹果系统。
1、.NET Framework包含以下两个主要组件:
CLR:公共语言运行库(Common Language Runtime),提供内在管理,代码安全性检测等功能。
FLC:.NET框架类库(.NET Framework Class Library),提供大量应用类库,类库中有很线程的资源可使用(比如:类、方法、属性)提高效率。
它的底层结构如图:
2、公共语言运行时(CLR)
.NET Framework 的核心是其运行库的执行环境,称为公共语言运行时(CLR)或.NET运行库。通常将在CLR的控制下运行的代码称为托管代码。
CLR主要负责托管代码的编译和运行。在.NET中代码的编译分为两个阶段:
(1)把源代码编译为Microsoft中间语言(MSIL Microsoft Intermediate Language)。
(2)CLR把MSIL编译为平台专用的机器代码。
3、CLR的结构
CLR的结构由以下三部分组成:
①CLS:公共语言规范,获取各种语言转换成统一的语法规范。
②CTS:通用类型系统,将各种语言中的数据类型转换成统一的类型
③JIT:实时编译器(即时编译器)用于将转换之后的语言编译为二进制语言,交给CPU执行。
4、.NET框架类库(FCL)
.NET框架类库提供了实现基本功能的类,例如输入输出、字符串的操作、网络通信等。
.NET Framework中,所有的命名空间都是从System的命名空间形成的。System命名空间又称为根命名空间。对应命名空间的作用如下图所示:
【如果你还没关注我的话,可以点点关注,每天更新文章我通知你。】
二、C#
随着.NET 平台的诞生,微软推出了配合 .NET平台的应用程序开发语言——C#(C Sharp)。
学习C#语言,能开发什么样的程序呢?可以开发的程序如下图:
C#是一个.NET平台下的一个编程设计语言,仅仅是一个语言。是运行在.NET CLR上的,用于创建应用程序的高级语言。程序设计语言是为了方便开发人员和计算机沟通工具。
C#.NET应用程序编译步骤如下:
1、使用C#语言编写应用程序代码;
2、把C#源程序编译为Microsoft中间语言(MSIL Microsoft Intermediate Language),以程序集的形式存在;
3、在执行代码时,必须使用JIT编译器将程序集编译成本机代码;
4、在托管的CLR环境下运行本机代码,程序执行结果显示出来;
三.ASP.NET
ASP.NET 是微软 .NET 体系提供的
Web开发框架,是网站开发的技术,是.NET框架中的一个应用模型,用于生成基于Web的应用程序的内容丰富的编程框架。使用ASP.NET开发Web应用程序并维持其运行,比其他开发语言更加简单。与Java、PHP和Per等高级技术相比,ASP.NET具有方便性、灵活性、生产效率高、安全性高及面向对象等优点,是目前主流的网络编程技术之一。
ASP.NET 支持 3 种开发模式:
1、Web Pages
Web Pages 是开发 ASP.NET 网页最简单的开发模式。它提供了一种简单的方式来将 HTML、CSS、JavaScript 和服务器脚本结合起来:
(1) 容易学习,容易理解,容易使用;
(2) 围绕着单一的网页创建;
(3) 与 PHP 和经典 ASP 相似;
(4) Visual Basic 或者 C# 的服务器脚本;
(5) 全 HTML、CSS 和 JavaScript 控制;
Web Pages 内置了数据库、视频、图形、社交媒体和其他更多的 Web Helpers,因此很容易扩展。
这个模块可以单独开发使用,也可以在MVC中视图的模板中结合使用。
2、Web Forms
Web Forms 是三种创建 ASP.NET 网站和 Web 应用程序的编程模式中的一种。
其他两种编程模式是 Web Pages 和 MVC(Model View Controller 模型-视图-控制器)。
Web Forms 是最古老的 ASP.NET 编程模式,是整合了 HTML、服务器控件和服务器代码的事件驱动网页。
Web Forms 是在服务器上编译和执行的,再由服务器生成 HTML 显示为网页。
Web Forms 有数以百计的 Web 控件和 Web 组件用来创建带有数据访问的用户驱动网站。
3、MVC
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
(1) Model(模型)表示应用程序核心(比如数据库记录列表)。
(2) View(视图)显示数据(数据库记录)。
(3) Controller(控制器)处理输入(写入数据库记录)。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
企业中普遍用这种开发模式,重点掌握这种开发模式。
四、我写的书开始预售了!
最近正在写一本《ASP.NET Web动态网站》开发的书,预计2月底写完,敬请期待~
如果有需要的小伙伴可以提前预定哦~
预定网址:http://www.71muke.com/course/info/99
更多编程知识获取,可以关注公众号:琉忆编程库。
ASP.NET与.NET Framework和C#的关系的更多相关文章
- ABP 教程文档 1-1 手把手引进门之 ASP.NET Core & Entity Framework Core(官方教程翻译版 版本3.2.5)
本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 官方文档分四部分 一. 教程文档 二.ABP 框架 三.zero 模块 四.其他(中文翻译资源) 本篇是第一部分的第一篇. 第一部分分三篇 1- ...
- ASP.NET MVC - Entity Framework
ASP.NET MVC - Entity Framework 实体关系 关系是某个实体(表)的一条记录对应于另一个实体(表)的一条或多条记录. 一对多关系 单方面的包含关系称为一对多,而一对多和一对一 ...
- 使用ASP.NET MVC+Entity Framework快速搭建系统
详细资料: http://www.cnblogs.com/dingfangbo/p/5771741.html 学习 ASP.NET MVC 也有一段时间了,打算弄个小程序练练手,做为学习过程中的记录和 ...
- ASP.NET Identity + Entity Framework 6 注意
最近一个项目使用ASP.NET Identity + Entity Framework 6开发,本来一切正常. 某时注意到,更改密码功能程序执行起来没有问题,界面上也报修改密码成功,但实际上密码并没有 ...
- 类型:.net;问题:ASP.NET路由;结果:ASP.NET 路由 .NET Framework 4
ASP.NET 路由 .NET Framework 4 更新:2007 年 11 月 ASP.NET 路由使您可以使用不必映射到网站中特定文件的 URL.由于 URL 不必映射到文件,所以可以在 ...
- .NET Framework 版本和依赖关系[微软官方文档]
.NET Framework 版本和依赖关系 微软官方文档: https://docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/ver ...
- 【转载】C#之C#、.NET Framework、CLR的关系
C#..NET Framework.CLR的关系 很多人没有将C#..NET Framework(.NET框架).CLR(Common Language Runtime,公共语言运行库)这三者之间的关 ...
- Entity Framework 实践系列 —— 搞好关系 - 两情相悦(双向一对一)【转载】
Entity Framework 实践系列 —— 搞好关系 - 两情相悦(双向一对一) 自从搞好了单向一对一关系,装满代码的心中塞进了挥之不去的情丝 —— 单相思.谁都知道音乐世界离不开情感,可谁又知 ...
- 在Entity Framework 中实现继承关系映射到数据库表
继承关系映射到数据库表中有多种方式: 第一种:TPH(table-per-hiaerachy) 每一层次一张表 (只有一张表) 仅使用名为父类的类型名的一张表,它包含了各个子类的所有属性信息,使用区分 ...
随机推荐
- 基于ShardingJDBC的分库分表及读写分离整理
ShardingJDBC的核心流程主要分成六个步骤,分别是:SQL解析->SQL优化->SQL路由->SQL改写->SQL执行->结果归并,流程图如下: sharding ...
- spring cloud --- Ribbon 客户端负载均衡 + RestTemplate + Hystrix 熔断器 [服务保护] ---心得
spring boot 1.5.9.RELEASE spring cloud Dalston.SR1 1.前言 当超大并发量并发访问一个服务接口时,服务器会崩溃 ,不仅导致这个接口无法 ...
- nvm切换node版本出现乱码 exit status 1:
nvm切换nodejs版本出现exit status 1:乱码 跟着网上的教程一步一步做,还是出现问题.浪费一下午的时间 最后发现却因为我没用CMD管理员权限运行 扑街 解决方法: 用管理员身份运行就 ...
- reduce/reduceRight
使用 reduce 和 reduceRight 方法可以汇总数组元素的值,具体用法如下: reduce function appendCurrent (previousValue, currentVa ...
- 深度分析 [go的HttpClient读取Body超时]
故障现场 本人负责的主备集群,发出的 HttpClient 请求有 30%概率超时, 报context deadline exceeded (Client.Timeout or context can ...
- Java库中的LocalDate类
Java库中的LocalDate类 类库设计者决定将保存时间与给时间点命名分开.所以标准Java类库分别包含了两个类:一个用来表示时间点的Date类:另一个是用来表示大家熟悉的日历表示法的LocalD ...
- Julia语言介绍
官网:https://julialang.org/ 中文社区:https://cn.julialang.org/ Julia 是一个面向科学计算的高性能动态高级程序设计语言. 首先定位是通用编程语言, ...
- 【reverse】逆向5 标志寄存器
[reverse]逆向5 标志寄存器 1.引言 通过一个creak.exe文件的爆破,引出现阶段需要学习的知识 2.标志寄存器 标志寄存器有上图这么多个 记住这几个寄存器的位置和名称 下面是6个状态标 ...
- 【reverse】逆向4 初识堆栈
[reverse]逆向4 初识堆栈 1.问题引入 假设我们需要一块内存,有如下的要求 主要用于临时存储一些数据(如果数据很少可以放入寄存器中) 能够记录存了多少数据 能够非常快速的找到某个数据 2.模 ...
- golang中的go get命令
### 下载指定版本 go get k8s.io/klog@v1.0.0 go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装. 这个命令在内部实际上分成了两 ...