Profil von biigbiglee龙王阁FotosBlogListenMehr ![]() | Hilfe |
|
|
23 September 学习掌握C#1、寻求微软的支持
在学习VS.net 的过程中,有疑问首先要向MicroSoft求助,如果你不懂得利用微软提供的庞大的学习资源,真是有点舍近求远了。 (1)要安装MSDN,他比所有VS.Net书籍详细。在帮助中,进行搜索,然后慢慢研究,实在研究不透,也不用急,还可以使用Google、baidu和CSDN。 (2)在线MicroSofe.Net 框架SDK快速入门教程(http://chs.gotdotnet.com/quickstart),可配合MSDN使用。分三块内容, ASP.NET | Windows窗体|常见任务。 常见任务快速入门旨在帮助我们找到常见编程问题的答案。 (3)微软中国社区(http://www.mscommunity.com/profile).在社区注册,有问题就到社区去提问。 (4)在线中文MSDN(http://www.microsoft.com/china/MSDN/default.asp);在线英文MSDN(http://msdn.microsoft.com),考考我们的E文,不过有词典嘛,不怕 (5).NET 主页 http://www.microsoft.com/china/net (6)Visual Studio.Net 主页(http://www.microsoft.com/china/msdn/vstudio/prodinfo/overView.asp) 2、向CSDN寻求帮助(http://www.csdn.net) CSDN 号称最大的开发者网络,确实不假,文档(http://www.csdn.net/develop);论坛(http://expert.csdn.net/expert/forum.asp)只要善于利用搜索功能,我们在开发中遇到的多数问题可以在文档和论坛中找到答案。 两大绝招,第一招,“搜索大法”,首先是在CSDN的文档和论坛进行搜索,看有无类似答案。 第二招,“提问大法”,只要有礼貌有诚意的在论坛提问,一定有人乐于回答问题 3、其他相关网站 pconline跟我学NET专栏(http://www.pconline.com.cn/pcedu/empolder/net) Yesky 的Visual Studio.Net专栏(http://www.yesky.com/softchannel) ccidnet 的Net 专区(http://tech.ccidnet.com/pub/column/c340.html) 4、资料下载 91asp提供电子书下载(http://www.91asp.cn) 清华大学出版社Vs.Net源代码下载(http://www.wenyuan.com.cn/soft_index.asp) 5、国外资源 http://www.codestudy.com http://www.codeproject.com http://www.aspnetpro.com 6、其他特色网站专栏 CSDN上Latitude的VS.Net专栏(http://www.csdn.net/develop/author/netauthor/Latitude) DotNet中华网(http://www.aspxcn.com) ASP.NET仍然不能称之为一种编程语言,但是现在可以把它看作是一个创建、管理、部署Web应用程序的平台。可以使用任何.Net语言在这个平台上开发互联网应用程序,这其中当然包括C#。它们之间的关系可以从下图中看出:这就是著名的.Net 平台结构图,从这个图上可以看到,ASP.NET、Windows Forms和VS.Net都不过是.Net开发平台的一部分,用于.Net应用程序的开发及展示。.Net 平台的核心技术为:通用语言运行时(CLR:Common Language Runtime)、基类库(Base Class Library)、.Net语言及Visual Studio.Net。
从这个图上也可以看出,.Net Framework是架构在Windows平台上的一个虚拟的运行平台,你可以想象将最下层的Windows换作其它的操作系统,比如说Linux,一样可以实现使用符合了CLS(Common Language Specification,通用语言规范)的.Net语言(VB.Net、C#、JScript.Net等)来创建ASP.NET或Windows Forms(可能会叫做Linux Forms)应用程序的功能,这其实就是我们前面介绍的Mono计划所要实现的功能。所以可以这么认为,理论上,C#是一种可以跨平台的语言,这很像Java,另一个比较像Java的地方是,C#也是一种(特殊意义上的)解释性的语言。同Java一样,C#编写的程序代码也是先通过C#编译器编译为一种特殊的字节代码(中间语言,Microsoft Intermediate Language,MSIL),运行的时候再经由特定的编译器(JIT编译器,Just In Time,JITer)编译为机器代码以供操作系统执行。
不仅是C#语言,所有.Net语言(将会包括我们常用的几十种现代的编程语言)都可以编写面向CLR的程序代码,这种代码在.Net中被称为托管代码(Managed Code),所有的Managed Code都直接运行在CLR上,具有与平台无关的特性。
解释性的语言很安全,并且可以通过它的运行平台为其赋予更多的功能,比如自动内存管理、异常处理等。事实上,C#语言的许多特点都是由CLR提供的,下面的CLR结构图说明了这一点。
可以看到,类型安全(Type Checker)、垃圾回收(Garbage Collector)、异常处理(Exception Manager)、向下兼容(COM Marshaler)、多线程支持(Thread Support)这些C#的特点都是由CLR来提供的。CLR最早被称为下一代Windows服务运行时(NGWS Runtime),是直接建立在操作系统层上的一个虚拟的运行环境,主要的功能是管理代码的运行。在.Net 平台结构图中,CLR的上面是.Net的基类库(Base Class Library,BCL),这组基类库包括了从基本输入输出到数据访问等各方面,提供了一个统一的面向对象的、层次化的、可扩展的编程接口。从.Net 平台结构图中也可以看到,基类库可以被各种语言调用和扩展,也就是说,不管是C#、VB.NET还是VC++.NET,都可以自由地调用.Net的基类库。事实上, C#并没有属于自己的类库,它所使用的编程接口就是.Net提供的基类库。所以,在决定使用C#时,真正需要费工夫学习的其实是.NET框架的基类库:C#自身只有区区77个关键词,而且其语法对许多程序员来说都是他们非常熟悉的。BCL则相反,它包含了超过4500个以上的类和无数的方法、属性,在你的C# 程序中随时都可能会用到它来完成自己的任务。
很多人都思考过应如何开始学习一种新的语言,对于一个有经验的编程人员来讲,这确非难事。但是对于一个对编写代码一无所知的人而言,如果你是以C#开始你的编程之旅的,数目繁多的概念及新名词可能会令你有些不知所措。这时候请注意你的学习顺序,任何一种编程语言的学习都是按照运行平台、语法、基类库直至各方面的应用这一顺序来进行的,但是在实际的学习中,它们之间并不是孤立的。推荐的方法是:对运行平台和语法有了一个整体的认识后,在应用中学习各种基类库的用法。鉴于C#这一语言的特殊性,全面了解它的运行平台(.Net Framework)必会使你的学习事半功倍。所以请记住上面提到的两个图,在以后的学习中,虽然可能不会明确的涉及到它们,但是在整个C#的学习过程中,它们却是无处不在的。
还有一个很重要的概念需要你明白,这就是公共语言架构(Common Language Infrastructure ,CLI)。CLI是CLR的一个子集,也就是.NET中最终对编译成MSIL代码的应用程序的运行环境进行管理的那一部分。在CLR结构图中CLI位于下半部分,主要包括类加载器(Class Loader)、实时编译器(IL To Native Compilers)和一个运行时环境的垃圾收集器(Garbage Collector)。CLI是.Net和CLR的灵魂,CLI为IL代码提供运行的环境,你可以将使用任何语言编写的代码通过其特定的编译器转换为MSIL代码之后运行其上,甚至还可以自己写MSIL代码在CLI上面运行。如你所知,欧洲计算机制造商协会(ECMA)已经于2001年10月13日批准C#语言规范(ECMA-334)成为一种新诞生的计算机产业标准。同时国际标准组织ISO也同意该标准进入该组织的审批阶段。并且,作为.Net与CLR的核心部分,CLI与C#也同时获得了ECMA的批准(ECMA-335)。拥有了C#与CLI这两项标准,你可以自己写出能够运行于任何操作系统上的.Net平台(只要你愿意)。如前所述,著名的Mono项目就是这么干的,Mono项目包括三个核心的部分:一个C#语言的编译器,一个CLI和一个类库。在Java的世界中,这项工作是由SUN公司完成的,SUN针对不同的操作系统开发出相应的Java虚拟机以便让一个由Java开发的应用程序运行在不同的操作系统上 |
|
|