.NET框架体系结构

刚开始接触.NET很疑惑,看完视频也不是太懂,通过总结和反复,从概括和概念入手,慢慢变得清晰了。这篇博客主要是我对.NET基础知识的了解,算作积累吧。.NET框架体系结构由四个主要部分组成公共语

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

刚开始接触.NET很疑惑,看完视频也不是太懂,通过总结和反复,从概括和概念入手,慢慢变得清晰了。这篇博客主要是我对.NET基础知识的了解,算作积累吧。

 

.NET框架体系结构

由四个主要部分组成

.NET框架体系结构

    公共语言运行时(CLR).NET框架应用程序的执行引擎..NET框架的关键作用在于,它提供了一个跨编程语言的统一编程环境,这也是它能独树一帜的根本原因。

          .NET框架为开发人员提供了一个统一、面向对象、层次化、可扩展的类库集,即基底类别库(BCL

    而ADO.NET是一个新的数据访问框架,满足了ADO无法满足的三个重要需求:提供了断开的数据访问模型,这对Web环境至关重要;提供了与XML的紧密集成;还提供了与.NET框架的无缝集成.

    活动服务企页面(ASP.NET)提供了一个统一的Web开发模型,其中包括为开发人员生成企业级Web应用程序所需的各种服务和全新控件.它是一个已编译的、基于.NET环境的、可以用任何与.NET兼容语言创建的应用程序。

 

 

.NET程序的编译与运行

 

    在编译使用.NET框架创建的代码时,不是立即创建成操作系统特定的本机代码,而是把代码编译为微软中间语言(MSIL)代码。在执行应用程序时由JIT编译器把MSIL编译为专用于某种操作系统和目标机器结构的本机代码,然后操作系统才能执行应用程序。 

程序集

    在编译应用程序时,创建的MSIL代码存储在一个程序集中,程序集包括可执行的应用程序文件(.exe)和其他应用程序使用的库(.dll),还包括元数据和可选资源。

托管代码

    托管是什么意思,说白了就是让CLR管理着应用程序,从源代码到MSIL,再到本机代码,再到程序执行,由.NET与操作系统进行交互。不在CLR控制之下运行的应用程序时非托管的。 

托管代码最重要的一个功能是无用存储单元收集(garbage collection),也称垃圾回收,确保应用程序不再使用某些内存时,这些内存会被完全释放。

   下面这张图是.NET程序的编译与运行时的情况:

 

 

.NET框架体系结构

 

 

 

.NET  VS J2EE

.NET框架与SUN公司的J2EE体系结构是当今企业应用的两大体系结构,它们有很多相似之处,如下图(左侧为.NET框架,右侧为J2EE):

 

 

.NET框架体系结构

 

 

    可以看出,对于.NET框架的每一部分,J2EE体系结构都有所体现,他们都是企业级开发平台,并且广泛应用于Web开发领域。.NET框架和Java都使用了托管的运行时环境,都将源代码转换为一种中间语言,然后将其编译为 本地的可执行代码,两种体系结构都提供了无用存储的单元收集器、动态类加载和异常处理等。

 

下面是关于.NET的几个小问题:

  1. .NET框架可以运行于哪些平台?

目前可以运行在windows95/98/MEwindowsNT4.0windows2000windowsXPwindows2003windowsvista、windows 7、windows 10上。

此外还有一个称为.NET精简框架的.NET框架版本,它运行在WindowsCE和其他嵌入式操作系统上。

  1. .NET框架支持哪些编程语言?

.NET框架与编程语言无关。事实上任何语言都可以支持.NET框架。目前可以用许多语言来创建.NET程序,包括:C++VB.netJScriptC#。以后也会有大量的第三方语言可以用来创建.NET框架应用程序,包括CobolEiffelPerlPythonSmalltalk等。

  1. .NET框架可以创建哪些类型的应用程序?

并不限制应用程序的类型,可以创建控制台应用程序、windows应用程序、Web应用程序、Web服务和其他各种类型的应用程序。

  1. .NET框架和COM+服务之间是什么关系?

.NET框架中,不仅可以完全访问COM+服务,而且也更容易创建服务组件。.NET框架组件还可以利用COM+中所提供的服务,如事务、对象池、排列组件、事件等。

 

    那么“什么是.NET?”

    微软董事长兼首席软件设计师比尔盖茨的回答:“.NET是指连接信息、人群、系统和设备的软件。”

    微软原总裁兼首席执行官鲍尔默说:“.NET代表了一个集合、一个环境、一个可以作为平台支持下一代Internet的可编程结构。”

 

现在再看这两个解释,确实是这么回事,好像没有那么抽象了。。。

推荐:http://www.cnblogs.com/roucheng/p/3521864.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120561.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Opencv cvCircle函数

    Opencv cvCircle函数cvCircle(CvArr*img,CvPointcenter,intradius,CvScalarcolor,intthickness=1,intlineType=8,intshift

    2022年7月1日
    25
  • L1正则化的理解(l1和l2正则化代表什么意思)

    在论文中看到L1正则化,可以实现降维,加大稀疏程度,菜鸟不太懂来直观理解学习一下。在工程优化中也学习过惩罚函数这部分的内容,具体给忘记了。而正则化正是在损失函数后面加一个额外的惩罚项,一般就是L1正则化和L2正则化。之所以叫惩罚项就是为了对损失函数(也就是工程优化里面的目标函数)的某个或些参数进行限制,从而减少计算量。L1正则化的损失函数是是不光滑的,L2正则化的损失函数…

    2022年4月16日
    61
  • 联想拯救者y7000按键功能_联想Y7000P屏幕闪现白色横条

    联想拯救者y7000按键功能_联想Y7000P屏幕闪现白色横条前阶段买了一个拯救者Y7000P,记录一下功能键的使用:1、一些基本的使用就不详细说了Fn+F1-F11(音量亮度调节等等):其中Fn+F4是关闭开启麦克风,Fn+F7是用来设置扩展屏幕的场景Fn+F9进入设置界面Fn+F10关闭开启摄像头Fn+F11关闭开启触摸板开启关闭切换键盘灯:Fn+Space(空格)切换三种工作模式:Fn+Q键开启关闭屏幕上的Y字logo:Fn+L键2、Fn+Q切换的三种模式:(切换时需接通电源)安静模式:

    2022年9月19日
    4
  • Java和Python有什么区别,初学者学Java还是Python?「建议收藏」

    Java和Python有什么区别,初学者学Java还是Python?「建议收藏」这里是我的一些总结,有些是参考别人的(在这里谢谢!!!)区别:1.Python比Java简单,学习成本低,开发效率高2.Java运行效率高于Python,尤其是纯Python开发的程序,效率极低3.Java相关资料多,尤其是中文资料4.Java版本比较稳定,Python2和3不兼容导致大量类库失效5.Java开发偏向于软件工程,团队协同,Python更适合小型开发6.Java偏向于商业开发,Python适合于数据分析7.Java是一种静态类型语言,Python是一种动态类型语言8.Ja

    2022年7月9日
    19
  • IntelliJ IDEA 远程debug调试

    IntelliJ IDEA 远程debug调试远程DEBUG的必要性由于部署环境的差异性,相信很多朋友都碰到过开发环境正常测试过的功能在测试环境甚至生产环境下出现bug的情况。一般情况下,生产环境可以采取的手段比较单一,即通过日志的方式获取运行中的环境上下文,分析日志文件并尝试重现bug。这会带来的问题还是不少的,首先,日志的分析是一项比较耗时的工作;其次,现有的日志记录不一定能反映出问题,你可能需要多次重复这个过程(分析日志->猜测问题->加日志->部署->获取日志)来慢慢逼近问题。倘若是测试环境,我们还多了一项可供选择的手

    2025年10月21日
    1
  • 2018年SCI论文–整合GEO数据挖掘完整复现 七 :DAVID在线工具进行KEGG富集分析

    文章目录论文地址DAVID官网获得KEGG富集分析结果气泡图cytoscape软件绘制代谢通路网络图networkdatatabledata论文地址DAVID官网KEGG富集分析和GO富集分析方法一致,具体步骤见我上篇文章DAVID在线工具进行GO富集分析,这里主要展示可视化结果获得KEGG富集分析结果1.输入文件为所有差异表达基因列表2.选择GO富集分析结果时,我们点击“Path…

    2022年4月6日
    187

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号