你好,是我琉忆。

今天我们讲一讲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

更多编程知识获取,可以关注公众号:琉忆编程库。

标签智能推荐:

年终培训关于磁盘冗余阵列、热备、群集、负载均衡、云计算、F5、Nginx等的概念和基本原理

在系统部署实施过程中,客户往往会关注系统的可用性方面的指标。对于一个具备高可用性的系统来说,多机部署方案是必不可少的。我们这个知识分享,就从多个不同层面来介绍多机部署方案。--------------------F5big-ip的网络部署示意图

跳表

【知识分享】跳表(Skiplist)数据结构介绍_哔哩哔哩_bilibili调表是一个能够媲美红黑树的一个数据结构,他的查询和插删能够达到logn查询最开始从header开始插入删除如果某一层级不存在元素,则会删除这一层级,跳表高度减一

开博第一天

哈哈,好久之前都说开个博客,记录自己的学习历程,分享知识,总结经验,但是一直没有实施,今天机缘巧合,刚好有空,随手申请了一个。自我介绍:2013年开始从事C++编程,主要使用框架是Qt。接触过Python,JS,UE4。三个月前开始接触C#语言及.Net框架。标签:女性程序员狮子座宝妈鸡汤姐乐天派博客未来的内容:1.个人随笔2.知识分享3.规划及总结4.其他

NodeJS中安装第三方模块nrm以及它的使用

deJS中安装第三方模块nrm以及它的使用nrm(npmregistrymanager):npm下载地址切换工具npm默认的下载地址在国外,国内下载速度慢使用步骤1,使用npminstallnrm-g下载它2,查询可用下载地址列表nrmls运行nrmls出错!解决方法3,切换npm下载地址nrmuse下载地址名称搞定!【投稿说明】博客园是面向开发者的知识分享社区,不允许发布任何推广、广告、政治方面

NodeJS中系统模块path路径操作

re('path');//需求:在当前目录下拼接以下路径lvhanghmm/lvhanghmm2/lvhanghmm3constfinalPath=path.join('lvhanghmm','lvhanghmm2','lvhanghmm3');console.log(finalPath);在控制台中执行这个文件搞定!【投稿说明】博客园是面向开发者的知识分享社区,不允许发布任何推广、广告、政治方面

一周技术总结——20220722(39)

1、新接触了一个新的module:importargparse2、学习使用新的工具-->Postman;3、明白了大型商业代码的阅读方法-->仍需要再接再厉,keepreading;4、第一次接触到了RestAPI编程,了解了RestAPI变成的思想;5、第一次组内分享,学习了如何进行知识分享;6、感受了一周的居家办公,真的是很不一样的体验;---愈发觉得,从华为OD离职,是一个极其明

随笔测试,这里是标题,vue+antdv开发博客园主题

t为受控组件,它总会显示Vue绑定值。通常情况下,应当处理 input 事件,并更新组件的绑定值(或使用v-model)。否则,输入框内显示的值将不会改变。不支持 v-model 修饰符。发布至首页候选区发布至博客园首页(原创、精品、知识分享)【发文说明】博客园是面向开发者的知识分享社区,不允许发布任何推广、广告、政治方面的内容。博客园首页(即网站首页)只能

NodeJS中写入文件内容的操作

.txt','lvhanghmm',(err,writeOfContent)=>{try{console.log(writeOfContent);//undefined}catch(e){console.log('写入内容失败',e)}})第二步还是在控制台中执行这个文件!nodewriteFile.js成功啦!【投稿说明】博客园是面向开发者的知识分享社区,不允许发布任何推广、广告、政治方面

宜搭中让当前的日期组件自动显示当天的日期

宜搭中让当前的日期组件自动显示当天的日期第一步当然就是选择一个日期组件啦!第二步:在右侧的默认值中选择公式编辑第三步:点击编辑公式按钮第四步:在出现的编辑框中输入如下代码!点击确定!TIMESTAMP(NOW())第五步:点击预览,即可看到效果!【投稿说明】博客园是面向开发者的知识分享社区,不允许发布任何推广、广告、政治方面的内容。博客园首页(即网站首页)只能发布原创的、高质量的、能让读者从中学到

NodeJS中模块成员导出的另一种方式![module.exports]

e}!`}module.exports.greeting=greeting;require.jsconsta=require('./module.exports');console.log(a.greeting('lvhanghmm'))第二步还是在控制台中执行require.js文件noderequire.js搞定!【投稿说明】博客园是面向开发者的知识分享社区,不允许发布任何推广、广告、政治方面