仓酷云

标题: ASP.NET网站制作之[你必需晓得的.NET] 第七回:咀嚼范例――从通用范例体系入手下手仓酷云 ... [打印本页]

作者: 变相怪杰    时间: 2015-1-18 11:25
标题: ASP.NET网站制作之[你必需晓得的.NET] 第七回:咀嚼范例――从通用范例体系入手下手仓酷云 ...
net网页编程的设计机制:首先产生一个中间码,第二部编译为本地(机器)码。这个机制有很大的缺点。系列文章目次索引:《你必需晓得的.NET
本文将先容以下内容:

1.弁言

<br>


<br>

本文不是连环画,之以是在开篇以图形的情势来展现本文主题,实在就是想加倍出格的夸大这几个观点的主要性和存眷度,同时但愿从分析其干系和接洽的角度来说述.NETFramework面前的故事。由于,在作者看来想要深切的懂得.NET,必需起首从懂得范例入手下手,由于CLR手艺就是基于范例而睁开的。而懂得范例则有需要把核心放在.NET范例系统的大众基本架构上,这就是:通用范例体系(CommonTypeSystem,CTS)。

我之以是将最基础的内容以自力的章节来年夜加文字,除为前面几篇关于对范例这一话题深切会商做以展垫以外,更主要的是从论坛上、博客间,我发明有良多偕行对.NETFramework基本架构的几个主要系统的了解有所偏向,因而很有需要补上这一课,必备我们在深切探究常识的过程当中,可以熟能生巧。

2.基础观点
仍是老套路,起首引进MSDN对通用范例体系的界说,通用范例体系界说了怎样在运转库中声明、利用和办理范例,同时也是运转库撑持跨言语集成的一个主要构成部分。通用范例体系实行以下功效:

那末我们怎样来了解呢?
仍是一个实际的场景来引进会商吧。小王之前是个VB迷,写了一堆的VB.NET代码,如今他变心了,就投奔C#的阵营,由于盛行嘛。以是固然就想在以后的基于C#开辟的项目中,使用本来VB.NET现成的工具,省点事儿:-)。那末CLR是怎样来完成范例的转换的,比方DimiasSingle变量i,编译器会主动的完成将i由Single到float的映照,固然其缘故原由是一切的.NET编译器都是基于CLS完成的。详细的历程为:CTS界说了在MSIL中利用的预界说数据范例,.NET言语终极都要编译为IL代码,也就是一切的范例终极都要基于这些预界说的范例,比方使用ILDasm.exe剖析可知,VB.NET中Single范例映照为IL范例就是float32,而C#中float范例也映照为float32,由此就能够创建起VB.NET和C#的范例干系,为互操纵打下基本。
.methodpublichidebysigstaticvoidMain(string[]args)cilmanaged
{
.entrypoint
//代码巨细15(0xf)
.maxstack1
.localsinit(float32V_0)
IL_0000:nop
IL_0001:ldc.r41.
IL_0006:stloc.0
IL_0007:ldloc.0
IL_0008:callvoid[mscorlib]System.Console::WriteLine(float32)
IL_000d:nop
IL_000e:ret
}//endofmethodBaseCts::Main已往,因为各个言语在范例界说方面的纷歧致,形成跨言语编程完成的难度,基于这一成绩,.NET中引进CTS来办理各个编程言语范例纷歧致的成绩,范例机制使很多言语的代码能够无缝集成。因而CTS同样成为.NET跨言语编程的基本标准,为多言语的互操纵供应了便利之道。能够复杂的说,基于.NET的言语配合利用一个范例体系,这就是CTS。
进一步的切磋通用范例体系的内容,我们晓得CTS撑持两种基础的范例,每品种型又能够细分出其上级子类,能够以下图来暗示:

<br>

.NET供应了丰厚的范例条理布局,从上图中也能够看出该条理布局是基于单承继条理完成的,反应了.NET面向对象准绳中完成单承继、接口多承继的特性。关于值范例和援用范例,是以后要切磋的重点内容,也是『咀嚼范例』子系列的重中之重,在此不作进一步切磋,可是下面的这张图有需要分明的印在心中,由于没有甚么比这个更基本的了。

3.地位与干系

地位夸大的是CTS在.NET手艺框架中的地位和感化,作者希冀以这类体例来天然的引出.NET手艺架构的其他基础内容,从而在各个手艺要点的条理中,来说分明各个手艺要点的些细接洽,从年夜局的角度来对其有个基础的掌控。我想,如许也能够更好的了解CTS自己,由于手艺历来都不是伶仃存在的。
.NET手艺能够以标准和完成两部分来分别,而我们常常夸大和提起的.NETFramwork,次要包含大众言语运转时(CommonLanguageRuntime,CLR)和.NET框架类库(FrameworkClassLibrary,FCL),实际上是对.NET标准的完成。而别的一部分:标准,我们称之为大众言语架构(CommonLanguageInfrastructure,CLI),次要包含通用范例体系(CTS),大众言语标准(CommonLanguageSpecification,CLS)和通用两头言语(CommonIntermediateLanguage,CIL)。我们以图的情势来看看CTS在.NET手艺阵营中的地位,再来扼要的先容新退场的各个明星。

<br>


可见,这些基础内容互相接洽,以复杂的文字来廓清其观点、接洽和功效,明显还不敷力度。但是在此我们以举一反三的体例来引进对这些常识的寻找,目标是给一个出口,今后来举行更深切的探究是每一个计划职员的发展的关头,就像对FCL的熟悉,必要理论,必要工夫,必要心机。

4.通用划定规矩

usingAClass=Anytao.net.MyClass;
usingBClass=Anytao.com.MyClass;
实在,我们经常使用的int、char、string对应的是System.Int32、System.Char、System.String的别号。

5.结论
范例的话题,是个老失落牙的囫囵觉,但也是个永不言退的反动党。在实践的程序计划中,我们常常要吃这一亏。由于,良多非常的发生,良多功能的消耗,良多冗余的计划都和范例解下不解之缘,以是明晰、分明的懂得范例,没有甚么不成以。主要的是,我们以甚么角度来懂得和化解,内功的修炼仍是要从内力入手下手。本系列不求一应俱全,但求以更奇怪、更周全的角度,分明、洁净、深切的把某个成绩说透,此足尹。
咀嚼范例,就从CTS入手下手了。
ASP.NET网站制作之[你必需晓得的.NET] 第七回:咀嚼范例――从通用范例体系入手下手仓酷云 ...
登录/注册后可看大图

<br>
参考文献
(USA)JeffreyRichter,AppliedMicrosoft.NETFrameworkProgramming
(USA)DavidChappell,Understanding.NET
广而告之
[预报]
扼要的探究了CTS的基础常识和几个干系,我们将要把文字侧重在对范例的深切探究上,近期本系列就以范例这一话题为中心来懂得以下几个相干主题:值范例和援用范例,装箱与拆箱,强范例等。这些观点和手艺都是.NET基础常识中最主要的内容,我将经由过程本人的视角和概念来揭开范例观点中的主要常识点,层层深切、循规蹈矩的翻开通向.NET更深条理的年夜门。
以是,本文是个展垫,下回会更出色和等候。

作者: 若相依    时间: 2015-1-21 05:38
提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。
作者: 因胸联盟    时间: 2015-1-27 21:25
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
作者: 金色的骷髅    时间: 2015-1-30 16:32
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
作者: 山那边是海    时间: 2015-2-4 20:20
逐步缩小出错代码段的范围,最终确定错误代码的位置。
作者: 透明    时间: 2015-2-9 16:58
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者: 爱飞    时间: 2015-2-27 12:01
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者: 冷月葬花魂    时间: 2015-3-5 11:05
主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
作者: 兰色精灵    时间: 2015-3-6 16:52
市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。
作者: 柔情似水    时间: 2015-3-13 04:19
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
作者: 简单生活    时间: 2015-3-20 12:39
这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2