面向对象和组件的C编程ppt课件.ppt
《面向对象和组件的C编程ppt课件.ppt》由会员分享,可在线阅读,更多相关《面向对象和组件的C编程ppt课件.ppt(62页珍藏版)》请在三一办公上搜索。
1、面向对象和组件的C#编程教材由科学出版社出版,李 军 武汉大学 测绘学院 “我成长”网站 ,第一章 C#和.NET Framework简介,计算机语言,为什么是C#.NET,C#.NET的发展史,如何学好编程,.NET Framework简介,集成开发环境IDE,创建C#控制台程序的操作步骤,.NET程序集,1.1 计算机语言,计算机语言可分成:机器语言、汇编语言、高级语言。现在有超过2500种计算机语言。如果仅仅使用汇编,估计程序员的思维永远无法跳出“子过程”这个抽象级别。,新的语言出现,老的淘汰掉,从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种语言,接近于数学语言或自然语言,又不
2、依赖于硬件,编出的程序能在所有机器上通用。1 9 5 4年,第一个完全脱离机器硬件的高级语言FORTRAN问世了。5 0多年来,共有几百种高级语言出现,而且在不断的变化:新的语言出现,老的淘汰掉。,有重要意义的计算机语言,有重要意义的有几十种,使用较普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、PL / 1、Pascal、C、PROLOG、Ada、C+、VC、VB、Delphi、JAVA、C#、PHP、Python、Ruby等。高级语言可以辅助程序员学习和生产,只有利用高级语言,人们才能有效地把真实事件抽象成计算机能认识的东西。,编程语言排行榜,TIOBE刚刚公布了20
3、11年3月编程语言排行榜。C#连升两级,第一次排名第四,而且市场占有率也逐渐逼近C+。它也是近年来前十语言中一直保持上升趋势的。美国职位搜索网站Indeed的趋势也印证了这一点,C#目前的职位已经超过C+。长期看C#是唯一一个能与Java抗衡的语言。,前20名编程语言排行,C#、PHP、Python、Objective-C是新兴语言的代表,从语言分类来看,以PHP、JavaScript为代表的动态语言和Lisp函数式语言越来越受到重视,但过程式语言和面向对象语言的地位也不可取代。各种编程语言在互相融合,取长补短:静态的和动态的融合,函数式语言和面向对象语言的融合,向多范型的方向发展,C#就是一
4、个典型。,中国的实际情况,程序员杂志联合CSDN网站和各种IT机构所做的大型网络调查(20042006中国程序员大调查),部分结果如下:,转向C#.NET,绝大多数程序员是从其他平台或编程语言转向C#.NET Framework应用开发。其中:来自C/C+的人数最多,达27.29%;来自VB的占22.49%;来自Java的占16.42;来自Delphi的占15.99%(跟着Anders没错)。请注意,.NET Framework似乎对每个领域的开发者都具有吸引力,这的确是它可怕的地方。,1.2 为什么是C#.NET,2000年6月,微软公司向全球宣布其下一代软件和服务,即Microsoft .
5、NET 平台的构想。此外,微软还宣布了基于 .NET 平台的新产品计划,其中包括新一代的Windows 操作系统、Visual Studio 开发系统;而.NET Framework是VS新的编程平台。通过公共语言运行时(CLR),支持多种语言(C#、VB.NET、C+等)的开发。在微软把视窗操作系统和软件向网络迁移的新市场战略中,C#语言是最重要的环节。,微软推.NET背景,考虑一下微软推出.NET时的处境,就会更好的理解它这么做的原因。1)当时,Windows的核心地位不仅正在被互联网所侵蚀,而且受到了Java语言的强力挑战。使用Java编程更轻松,而且具有自己的跨平台运行时,当时已被IB
6、M和甲骨文等IT巨头大力支持。2)而微软的开发工具看上去疲态尽显。VB存在不足,VC+和Windows类库却又对所有人较难。同时,使用COM和ASP的Web开发又显得非常杂乱和不堪一击。,.NET十年得失,1)如果.NET的目标是赶走Java,那么它至少取得了一定程度上的成功。2)C#在不断的变得更加普及,现在已经是多数Windows应用开发的首选语言。3)ASP.NET则已经成为一个倍受欢迎的Web框架。4)市场对C#人才的需求一直在稳步增长,在英国,C#职位数量所占份额已经达到32%,超过了Java的26%。这是C#.NET的成功之处。5)但.NET的不足之处也很明显:.NET绑死在Win
7、dows操作系统下,不是开源的。,.NET为中国程序员带来了什么?,程序员1: 通过.net我找到了工作,还不错! 在公司里我们培训了java、Delphi等 , 所以.net算入门砖吧, 不过初学者很容易通过.net理解编程的内涵,入门语言要容易上手的好。程序员2: 我打算继续深入学习.net,达到一个新的高度,毕竟这孩子也相当不错,尽管那些有钱的企业,大企业都对它没有兴趣,选择了.net你可能会穷一点,但是它的应用领域是越来越清晰了,小型企业应用它肯定长驱直入,我最看好的是移动开发领域,当然这要看WindowsMobile了,它有多成功,那么.net就有多风光,但是我一直坚信在个人终端领域
8、,微软无人可挡其锐。,语言决定思维,选择一门语言,就是选择了一种思维模式。软件开发语言几十年的发展,其实也代表了人们对软件认识的变化。相对于Java的老态龙钟,C#一直蓬勃发展,直到最新的4.5版。Java语言的生产力已经严重落后于C#。自诞生起,C#似乎便和Java有些纠缠不清,因为在当时看来,无论是语言层面还是它们所处平台的目标都十分相似。不过经过了将近10年的发展,如今C#的生产力已经大大领先于Java语言,甚至在近几年的变革中已经成为了Java模仿的对象。,C#首席设计师Anders 谈到:,1) 在设C#期间,我们考察了很多种语言,如C+、Java、C、Smalltalk等,C#混合
9、了以往开发语言的精华。C#和这些别的语言尤其是Java的关键不同点是它非常接近C+。在我们的设计中努力使然。2) 我们希望把C+具备的强大和灵活、VB具备的简单易用同时赋予C#语言。很多语言都有我们感兴趣的相同的核心思想,比如深度面向对象、简化对象等等。3) 在C#语言的几个设计目标中,确保编程人员的高效生产率是最重要的一点。我们在设计C#的时候,就从大家熟悉的C+开始并对该语言进行了简化。,C#首席设计师Anders 谈到:,4) 超越这些传统的语言论题,我们设计语言的一个关键的目标是使C#面向组件。C#是C/C+家族里第一个面向组件的语言。5) 我们努力避免用“象牙塔”的方式设计C#和.N
10、et框架。我们承受不起重写我们所有的软件的负担;你要善于利用你已经拥有的。所以,我认为互操作性也是关键的。6)另一个重要概念是“一站购物式软件”。一旦你用C#写代码,你就在这一个地方写了一切。不再需要头文件、IDL(接口定义语言)文件、GUID和复杂的接口。因为它是自包容的单元。,编程语言的发展趋势及未来方向,2010,Anders在比利时作了一场演讲,阐述了他眼中的编程语言的发展趋势及未来方向:如今影响力较大的趋势主要有三种(下图),它们分别是1)“声明式的编程风格”,包括“领域特定语言”及“函数式编程”,2)过去的五年非常火热的“动态语言”(其最重要的方面是“元编程”能力),3)以及多核环
11、境下的“并发编程”。,1.3 C#.NET的发展史,由于需求的多变性,以及市场竞争的激烈,程序员的压力往往是很大的。他们都希望有高效的语言工具,以在最短时间内制作出最好的软件。这也是应用程序开发的目标。 在.NET出现之前,程序员的生活是痛苦的。1)C程序员:C程序员不得不面对手动内存管理、令人讨厌的指针运算。b) 作为一种结构化语言,C程序员很容易写出冗长的代码,可读性差,不好维护。c) 再加上API定义的数以千计的全局函数,Bug成灾也就不足为怪了!,程序员的生活是痛苦的,2)C+程序员:a) C+程序员得到了面向对象带来的好处。b) 但依然无法摆脱C语言所带来的一些痛苦的方面:手动内存管
12、理、讨厌的指针等等。事实上,C+编程依然是一个艰难并且易犯错误的过程。 3)Java程序员:虽然Java是一种优雅的语言,但是有一个潜在的不足:a) 使用Java意味着在开发周期内从前台到后台都要使用Java。Java基本上不支持与其他语言的集成,因为这有违Java的初始目标: 用单一语言满足所有需要。b) Java的速度也是一个问题。,.NET出现后,应用程序员的生活会得到改善。,什么是.NET?看看微软的定义: .NET基于Internet 标准协议构建, 是一个革命化的新平台, 它融入了计算和通讯的工具和服务。.NET = 新平台 + 标准协议 + 统一开发工具.NET 是一个完全不同的
13、新的模型。.NET 提供的解决方案“改变了所有的东西”。.NET以一种相对激进且蛮横的方式来改善我们的生活。C#是一种基于.NET框架(.NET Framework)的、面向对象的高级编程语言。以框架类库(BCL)作为基础,以Visual Studio.NET为开发平台。,.NET核心功能,1) 对已有代码具有完全的互操作性 已有的COM组件可以和更新的.NET组件共存。 而且平台调用服务允许在.NET的代码里调用基于C的库(包括操作系统的底层API)。2) 完全的语言集成.NET支持跨语言继承、跨语言异常处理和跨语言的调试。一个平台支持多种语言开发,一个程序可由多种语言共同开发。3) .NE
14、T语言共享的公共运行时引擎CLR这个引擎的一个特点是具有一组明确定义的类型CTS,而每一种支持.NET的语言都能“明白”这些类型。,.NET核心功能,4) 全面的基类库BCL这个库除隐藏了原始API调用的复杂性外,还提供了.NET语言所使用的一致的对象模型。5) 简化的部署模型在.NET环境下,不需要将二进制单元注册到系统注册表。另外,.NET允许同一个*.dll的不同版本存在于同一台机器上。 6) 其它优点整个平台基于XML标准,轻松实现WebService,易于开发分布式应用程序;程序运行速度快,可维护行好;学习周期短。,C#,.NET和VS.NET发布情况,注:ECMA是指欧洲计算机制作
15、协会,ISO是指国际标准组织,C#从2.0起突然发力,瞬间将Java语言甩开,2005年底,微软又发布了基于.NET Framework 2.0的C#2.0,植入了适用于大型团队开发的各种优秀的复杂功能。C#2.0有了极大的改善,可以帮助程序员编写更清晰易懂、更容易维护的代码。这种改善来自于不断加入的新功能,例如泛型类型、以及其他大量有用的语言结构。而且,这些改变还伴随着为 .NET Framework 库提供相应的支持。,C#3.0的改进更是堪称经典,1) .NET Framework3.0提供了一套新的内核API,这个版本已经成为Windows Vista操作系统的一部分。2) .NET
16、Framework 3.5 得到增强的功能领域包括基类库、Windows workflow foundation(WF)、Windows Communication Foundation(WCF)、Windows Presentation Foundation(WPF) 和 Windows CardSpace(WC)。3)VS2008主要变化在于强化了对网页应用开发的支持。4)强化了对LINQ开发模式的支持、提供了LINQ to SQL改善数据存取,增加了WPF、WCF、Workflow的设计工具和项目等。5)C#3.0的新特性灵感来自于函数式编程语言,广泛地引入了Language Integ
17、rated Query (LINQ) 模式到通用语言运行库中。6)C# 3.0的其它一些新特性有:匿名类型,Lambda表达式,分部方法等等。,C#4.0的改进,1) C# 4.0 延续了这种不断提高易用性的趋势。2) 大大简化了许多常见任务,包括泛型类型、传统的互操作以及处理动态对象模型。 3) C# 4.0最大的创新点是拥有了动态编程语言的特性。 C#有别于Java的特性并非这么普通,它是凝聚了Anders 这个天才的理想,都是对生产力提高有重大意义的。,1.4 如何学好编程- Anders的回答,1)各个编程语言几乎在每个方面都不相同。语法是你要学习的很大一部分,但这是以前的事了,现在你
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 组件 编程 ppt 课件

链接地址:https://www.31ppt.com/p-1371580.html