当前位置 > 首页 > Asp.net

ASP.NET框架设计(一)-----Famework是如何执行程序?

2009-10-25 23:10:00来源:Asp.net

  阅读: 23 评论: 1 作者: pcxpt.exe 发表于 2009-10-25 22:51 原文链接

ASP.NET框架设计(一)-----Famework是如何执行程序?

沉默很久了,在DotNet Famework也生活了很久, DotNet的世界是精彩的。因此在我的即将毕业之前,打算对我在DotNet中的感悟做一个总结。也做为我原创的一个开始。

很小的时候就常常被告知要建造一座大厦基础非常重要,在接触DotNet几年后渐渐的我才明白了。在DotNet的大厦中15层是面向CLR语言的掌握程度(如c#vb等),5层以上的是从全局来架构一个系统,而大厦地表以下部分是DotNet Framework这个框架运行的核心部分。

Asp.net是一个非常强大的构建webwindows应用程序的,他可以非常灵活并相对快速的构建一个目标系统。但大多数人只熟悉Asp.net中的WebFormsWindowFormWebServices等在DotNet框架中的高层。在这个课题上我将总结关于我对框架的运行机制的一些叙述。

 

一、公共语言运行库(Common Language RuntimeCLR

为什么DotNet平台可以使用多种语言来构建目标程序?原因在与公共语言运行库(Common Language RuntimeCLR),CLR可以通过多种语言来使用的运行库(它的另外一个特性是使用异常来报告错误)。实际上,CLR不关心发人员用那种语言来编程。

微软面向CLR创建了几种编辑器(包括:vbvbc.exec#csc.exe等)和一个中间语言(Intermediate LanguageIL)汇编器。运行过程如下:

图片


 

无论用什么编译器最终生成的都是一个托管模块。托管模块是一个标准的32PE32文件或一个标准的64PE32+文件,但他们都需要CLR才能执行

二、元数据(metadata

元数据(metadata)是一个数据表。该表描述了模块中定义的内容(比如:类型等),还有一部分元数据表描述了托管模块引用的内容。元数据总是嵌入与代码相同的EXE/DLL,编译其同时生成元数据跟代码并绑定到最终生成的托管模块中。

三、中间语言(Intermediate LanguageIL

IL是一种与CPU无关的机器语言,但比大多数机器语言高级得多。高级语言可以通过编译器来生成IL,同样的也可以用汇编语言来写IL。下面我们通过一个方法来理解IL的执行。

为了执行一个方法,该方法对应的IL首先必须转换成本地CPU指令,通过CLRJIT(just-in-time)编译器来完成。

图片


  • css link on page using asp.net jquery

    2010-3-11 13:45:00

    Introduction i am going to introduce here Style Links on Page with CSS using Jquery

  • 超级简单:ASP.NET Localization (本地化,多语言)

    2009-12-23 0:23:00

    阅读: 19 评论: 1 作者: 麒麟 发表于 2009-12-23 00:04 原文链接 有很多讨论ASP.NET localization(本地化,多语言)的文章,这篇文章是不会的深

  • 以JSon来实现TextBox可选择可输入

    2009-4-18 12:55:00

    摘要: 这里只是把主要的代码贴出来,不再进行过多的说明,重要的地方以注释的方式进行说明。 <div id=pubDiv style=background-position: #9999FF;

  • EXT.NET复杂布局(四)——系统首页设计(上)

    2011-12-30 23:12:00

    很久没有发帖了,很是惭愧,因此给各位使用EXT.NET的朋友献上一份礼物。 本篇主要讲述页面设计与效果,下篇将讲述编码并提供源码下载。 系统首页设计往往是个难点,因为往往要考虑以下因

  • 【十五分钟Talkshow】在.NET应用程序中访问Excel的几种方式

    2012-2-28 19:18:00

    摘要提示: 通过三个视频,我介绍和比较了在.NET应用程序中访问Excel的常见几种方式 }通过Excel API访问 }通过OpenXML访问 }通过第三方组件访问

  • 大访问量的系统搭建

    2009-3-30 23:53:00

    摘要: 最近在做一个系统,访问量特别大,每天有上亿次的访问量,下面是我采取的一些做法,想和大家一起讨论一下,希望园中的兄弟们多提宝贵意见和建议。一、硬件 搞服务器集群,采用负载均衡。二、数据库 1、

  • iBATIS In Action:什么是iBATIS(2)

    2007-9-2 19:59:00

    摘要: 本文翻译了《iBATIS In Action》一书第二章的后半部分。 内容如下: 2.5 iBATIS快速上手 2.6 未来:iBATIS将去向何处 2.7 总结 阅读全文

  • Asp.net控件开发学习笔记(二)-控件开发基础

    2009-9-30 20:04:00

    摘要: 接上篇……..通过查看System.Web.UI.HtmlControls命名空间,我们可以发现,很多HTML对应的标签都可以通过添加runat=”ser

  • Asp.net控件开发学习笔记(七)----WebControl基类

    2009-10-10 17:04:00

    摘要: WebControl基类 在Asp.net控件开发中,WebControl基类给我们提供了对于控件的Style更加灵活的解决方案,因为在System.Web.UI.Control基类中只能手

  • LINQ to SQL、NHibernate比较(二)-- LINQ to SQL实例

    2009-9-22 18:38:00

    摘要: 用ADO.NET操作数据库大家一定再熟悉不过了,select、insert、update等等SQL语句大家也都必然滚瓜烂熟。我将自己在学习LINQ to SQL过程中的动手经历记录下来,作为