1 软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和...

41
Page 1 1 1 软软软软软软软软 软软软软软软软软 中中中中中中中中中中中中中中中中 中中 .NET 中中中 C# 中中中中中中中中中 .NET 应应应应应应应应应

description

.NET 应用前景与学习策略. 1 软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序. 1) 中国软件开发现状 — 按功能分类. 应用系统开发为主 各种管理软件 占软件开发整体份额 85 % 财务软件占软件开发 整体份额 10 % GIS 地理信息系统 占软件开发整体份额 2 % 硬件驱动 2 % 其他 1%. 2) 中国软件开发现状 — 按开发模式分类. 开发模式以 Web 应用程序为主 95 %的系统软件是基于 Web 的 B/S 结构 B/S : Browser/Server - PowerPoint PPT Presentation

Transcript of 1 软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和...

Page 1: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 1

1 1 软件开发技术现状软件开发技术现状

中国软件开发现状及开发语言之比较

使用 .NET 平台和 C# 语言能开发什么程序

.NET 应用前景与学习策略

Page 2: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 2

1) 中国软件开发现状—按功能分类

应用系统开发为主

各种管理软件占软件开发整体份额 85 %

财务软件占软件开发整体份额 10 %

GIS 地理信息系统占软件开发整体份额 2 %

硬件驱动 2 %

其他 1%

Page 3: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 3

2) 中国软件开发现状—按开发模式分类

开发模式以 Web 应用程序为主

95 %的系统软件是基于 Web 的 B/S 结构

B/S : Browser/Server

传统的 C/S 结构日渐没落C/S: Client/Server

Page 4: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 4

3) 中国软件开发现状—开发语言使用率

C 、 C++ 语言:使用率 10 %以下

VB :即将被淘汰,使用率 5 %以下

Java :使用率 40 %

C#: 使用率 40 %

其他语言 5 %

C# 的使用率还在提高, Why?

Page 5: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 5

C# 的优点 (1)

由于 .NET 与以前的技术有着极大的差异,微软特意为 .NET 平台开发了一种新的编程语言 C# (读做“ C Sharp” )。

C# 的核心语法和 Java 的语法很相似。然而,并不能说 C# 抄袭了 Java 。 C# 和 Java 都属于 C 语言系列(包括C 、 Objective C 、 C++ 等),它们有类似的语法。

正如 Java 在许多方面是 C++ 的提炼版一样, C# 也可以视为Java 的提炼版。

Page 6: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 6

C# 的优点 (2)

C# 是多种语言的混合体 : 它像 Java 一样语法简洁, 像 VB6 一样使用简单, 像 C++ 一样功能强大和灵活。

以下是 C# 核心特征的一部分,其中大部分特点也是其他支持 .NET 的程序语言所共有的特征。

C# 生成的代码只能在 .NET 运行库中执行。 称为托管代码( managed code )。

这些包含托管代码的二进制单元可以称为程序集( assembly) .

Page 7: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 7

多语言世界中的生活

有多种不同的语言支持 .NET 。 除了 .NET Framework 3.5 SDK 一起发布的 5 种语言 :

C# 、 Visual Basic .NET 、 J# 、 C++/CLI (以前称为托管 C++ )和 JScript .NET )之外,

还有 Smalltalk 、 COBOL 和 Pascal 的 .NET 编译器等。

Page 8: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 8

.NET 是当今最流行的快速开发平台

应用程序开发的目标 :

在最短时间内制作出最好的软件。

当今最流行的快速开发平台是什么 ?

是微软公司的 .NET Framework 。

经过近 10 年的发展,微软的 .NET 已经变得非常庞大和成熟,而且 .NET 发展的步伐越来越快。

Page 9: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 9

.NET 之前的世界

C / Win32 API 程序员的生活 :

1) C 程序员不得不面对手动内存管理、令人讨厌的指针运算。

2) 作为一种结构化语言, C 语言不具备面对象开发的优点(很容易开发出意大利面条式的代码)。

3) 这种令人生畏的语言还要再加上 Win32 API 定义的数以千计的全局函数和数据类型,现在那么多有问题的程序在到处运行也就不足为怪了!

Page 10: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 10

.NET 之前的世界

C++ 语言是对原始的 C/API 软件开发模式的一个很大提升。

可以把 C++ 想象成在 C 之上的面向对象层。虽然 C++ 程序员得到了“ OOP 三大支柱”(封装、继承和多态)带来的好处,但是,他们依然无法摆脱 C 语言所带来的一些痛苦的方面(例如,手动内存管理、令人讨厌的指针运算)。

今天依然有许多 C++框架存在:如 MFC (微软基础类)一组C++ 类,用以简化 Win32 程序的开发。

MFC 的主要作用是把原始 Win32 API 的一个 "健全子集 " 包装成类、宏和很多代码生成工具(又称向导)。尽管使用了 MFC和一些辅助工具提供帮助,事实上,用发源于 C 的 C++ 编程依然是一个艰难并且易犯错误的过程。

Page 11: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 11

.NET 之前的世界

VB6 最大的不足(在 Visual Basic .NET 中已经改正)在于,它不是一个完全的面向对象语言,它只是一种支持对象( object aware )的语言。

例如, VB6 不允许程序员在类型之间建立 "is-a" 的关系(即没有传统的继承)。

Page 12: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 12

.NET 之前的世界

虽然 Java 是一种优雅的语言,但是有一个潜在的不足:

使用 Java 意味着在开发周期内从前台到后台都要使用 Java 。

事实上, Java 基本上不支持与其他语言的集成,因为这有违Java 的初始目标 : 用单一语言满足所有需要。

但现实是,已经有数百万的既有代码,如果它们能与 Java 结合,事情就很简单了。然而,使用 Java 很难做到这一点。当然, Java 还是提供了访问非 Java API 的有限能力,但它对跨语言集成的支持度很少。

Page 13: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 13

.NET Framework 解决方案

历史回顾就这么多了。总之,程序员的生活是痛苦的。 .NET 以一种相对激进且蛮横的方式来改善我们的生活。

.NET 提供的解决方案“改变了所有的东西”。 .NET 是一个完全不同的新的模型。

什么是 .NET?微软的定义: .NET is a "revolutionary new platform,

built on open Internet protocols and standards,

with tools and services that meld computing and communications

in new ways".

.NET = 新平台 + 标准协议 + 统一开发工具

Page 14: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 14

.NET 核心功能

1) 对已有代码具有完全的互操作性: 已有的 COM 二进制组件可以和更新的 .NET组件共存。 而且平台调用服务允

许在 .NET 的代码里调用基于 C 的库(包括操作系统的底层 API )。

2) 完全的语言集成: .NET 支持跨语言继承、跨语言异常处理和跨语言的调试。

3).NET 语言共享的公共运行时引擎 CLR :这个引擎的一个特点是具有一组明确定义的类型 CTS ,而每一种支持 .NET 的语言都能“明白”这些类型。

4) 全面的基类库 BCL :这个库除隐藏了原始 API调用的复杂性外,还提供了 .NET 语言所使用的一致的对象模型。

5) 简化的部署模型:在 .NET环境下,不需要将二进制单元注册到系统注册表。另外, .NET允许同一个 *.dll 的不同版本存在于同一台机器上。

Page 15: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 15

中国软件开发现状—开发语言

使用率上升最快的开发语言 C#

2002 年 3 月第一个版本,当年上半年使用率不足 2 %2002 年下半年使用率上升到 10 %2003 年使用率上升到 16 %2004 年使用率上升到 25 %2005 年使用率上升到 30 %2006 年使用率上升到 40 %2008 年使用率上升到 45 %

Page 16: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 16

中国软件开发现状—主流软件使用的开发语言

中国网通的互联星空收费平台使用 C# 开发中国联通的手机短信平台使用 C# 开发中国小灵通短信平台使用 C# 开发亚信的石化、鞍钢 ERP 使用的是 C#用友的财务软件是使用 C# 开发联想的防火墙管理系统是使用 C# 开发 ……

全世界的软件开发公司都在积极地使用 .NET 平台和C# 开发语言

为什么 C# 语言的使用率上升如此之快 ?

Page 17: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 17

.NET 平台 .NET 平台的 C# 语言都能开发什么程序 ?

Web 应用程序 B/S网站和各种基于浏览器的管理系统

客户端程序 C/S如图书馆系统,超市售货系统等

游戏3D游戏2D游戏网络游戏游戏客户端

GIS, PDA, …………

Page 18: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 18

软件企业从业人员分析-薪水对比

在印度,有 2-4年工作经验的 .NET开发者可以得到 6-7十万卢布的年薪,经验相当的 J2EE开发者的年薪则是 3.5十万卢布( 1 美元大约可以兑换 43卢布)。

印度《经济时报》( Economic Times)全文请看:http://economictimes.indiatimes.com/articleshow/1101383.cms

Page 19: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 19

.NET 平台 为什么流行

整个平台基于 XML 标准轻松实现 WebService强大的语言支持,一个平台支持多种语言开发跨语言支持,一个程序可由多种语言共同开发易于开发分布式应用程序程序运行速度快可维护行好客户无需另购服务器,成本降低学习周期短……

Page 20: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 20

面对当今软件开发格局,我们应该选择什么?

Page 21: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 21

C#, .NET 之父 – Anders Hejlsberg

Page 22: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 22

新技术的冲击 软件开发的主战场是互联网 近年来互联网程序的变革同时发生在客户端与服务器端变革之一: AJAX 技术改善传统的 ASP.NET 技术。

AJAX(Asynchronous JavaScript and XML) 是多种技术的综合,它使用 XHTML 和 CSS 标准化呈现,使用 DOM实现动态显示和交互,使用 XML和 XSTL 进行数据交换与处理,使用 XMLHttpRequest 对象进行异步数据读取,使用 Javascript绑定和处理所有数据。 变革之二: WPF 与 Silverlight

Windows Presentation Foundation (WPF) 是 .NET Framework 3.0 的关键组件,是支持下一代视窗应用程序表现层编程的平台,也是微软新发布的 Vista操作系统的三大核心开发库之一,主要负责图形显示。

Silverlight 前身代号是“WPF/E” ,是微软最新面向 Web 开发的技术,类似于 Flash 相同的解决方案,作为一个浏览器的插件,可以显示矢量图形、动画和视频。变革之三:软件即服务, WCF 一统天下。

Page 23: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 23

.NET 业界技术人才需求趋势预测 软件技术为经济发展服务

互联网经济提供巨大的机遇

掌握 .NET Web 开发技能的人才需求量将会持续上升

Page 24: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 24

.NET Web 开发技术学习路线图

面向对象理论基础静态网页设计技术

( HTML 、 CSS 、 JavaScript )

ASP.NET 标准技术数据存取技术

( ADO.NET 和 SQL Server )

AJAX

Silverlight+WCF

Web Service

新一代 Web 技术

当前流行 Web 技术

当前成熟的Web 技术

Web 技术基础

Page 25: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 25

2 软件技术的学习策略

Page 26: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 26

几个常见误区

纸上谈兵:仅通过“看书”和“听课”来学会编程自认为书都看懂了,老师讲的内容都明白了,就是“会编程”了。

评论:“看书”和“听课”仅有 20% 的作用 ,

80% 是编程实践 !

一步登天:一上来就抱本砖头厚的——《 ASP.NET 技术内幕 》、《 28天精通C# 编程》狂啃。

道听途说:听说许多大型网站都不是 ASP.NET 的,学 .NET 是不是不太好?据说在大学里要努力把理论知识学好,毕业后就会比那些直接实践的人发展潜力大……

Page 27: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 27

选择适合的学习策略学习策略的选择建立在对自己的正确认识之上。

问一问自己:自己的长处是什么?短处是什么?然后围绕着自己的长处来选择发展方向,决定诸如“考研”还是“就业”的人生重大选择问题。确定自己的总体目标 .

了解社会上人才需求的现状,做到知彼知己。

制订适合于自己的学习策略:学什么?怎样学?要达到一个什么样的程度?

Page 28: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 28

信息时代的软件技术学习原则 自学为主,求学为辅(鲁班门前弄大斧,三人行,必有我师)

个人兴趣与社会需求相结合( 360 行,行行出状元)

与人沟通、共同学习原则(通过互联网寻找同道中人)

“ 怀疑一切”的批判学习态度(吾爱吾师,吾更爱真理)

Page 29: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 29

掌握行之有效的学习方法 观其大略的学习方法(见木又见林,先见林后见木)

理性知识感性把握,在实践中学习、掌握和应用理论循序渐进的学习路线与“建构主义”的学习思想。

新知识要有附着点,形成知识体系才有用。

编程的反复学习方法:编程百遍、其义自见。

快乐编程 ---接受它的每一面:成功,失败,或各种挫折…

Page 30: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 30

.NET 学习全景图 .NET 有一个庞大的技术体系,一个初学者,如何决定自己的学习步骤呢?就我自己的经验,谈谈我对这个问题的看法 .

Page 31: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 31

.NET 学习 第一步 : 掌握 VS.NET 的使用

作为一个学习 .NET 的初学者,首先要掌握VS.NET 的使用 .

之所以把掌握这一开发工具放在第一位,是因为在后面的学习过程中,需要使用VS.NET 进行不断地编程实践,而只有通过实践,才能最终掌握 .NET 技术。

Page 32: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 32

.NET 学习 第二步 : 掌握一种 .NET 语言

由于 .NET 支持多种语言,所以读者可以根据自己的喜好选择一门计算机语言,但请注意以下选择语言的标准:

( 1 )必须是全面向对象的语言,只有面向对象的语言才能充分发 挥 .NET 的威力;

( 2 )拥有较多的开发者和技术资源,这样您就可以很容易地找到志同道合的人共同学习。

目前支持 .NET 的语言已有几十种,而且还在不断地增加中。

C# 是目前 .NET 下开发的主流语言

Page 33: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 33

.NET 学习 第三步 : 掌握 Windows Form 程序开发

所谓Windows Form 程序,就是传统的运行于个人电脑上的单机应用程序。

通过 Windows Form 技术的学习,读者可以掌握最基础的windows 软件开发技术,并对面向对象理论会有深入的体会,

有了这些基础,深入学习网络编程就是水到渠成的一件事。

Page 34: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 34

.NET 学习 第四步 : 学习 .NET 网络技术

( 1 ) ASP.NET :主要掌握如何设计 ASP.NET 网页,搭建一个运行于 .NET Framework 之上的 Web 网站;

( 2 ) Web Service :学习如何把网站的各种功能以 Web Service 的形式提供给外界,或者集成外部的 Web Service实现功能强大的信息系统。 Web Service 是一个潜力无穷的新技术,将对下一代的互联网产生深远的影响。

Page 35: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 35

.NET 学习 第五步 : 移动设备开发技术

学习移动设备开发技术,比如为手机等智能移动设备开发程序,设计嵌入式系统等 .

.NET Compact Framework 就是专为移动设备应用程序开发而准备的,使用 .NET Compact Framework 开发移动设备程序与使用 .NET Framework 开发普通程序是类似的,已有的 .NET Framework 开发经验仍然适用 .

Page 36: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 36

成为 .NET 技术专家

如果你能沿着路线图走到这里,那就恭喜您,您已成为了一名 .NET 技术专家,更宽广的道路将展现在您的面前。

Page 37: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 37

Chapter 1 C# (do it!)

1 VS.net2005 (IDE)

2 C# Console Application

Page 38: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 38

目标

熟悉 Visual Studio.NET 的集成开发环境( IDE)

学会使用创建、编译和执行简单的 C# 应用程序

学会使用创建、编译和执行简单的 C++ 应用程序

Page 39: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 39

项目及解决方案

一个项目中包含了许多相关项。 解决方案通常作为一个或多个项目的容器。

解决方案

项目 1

项目 2

项目 1

项目 2

Page 40: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 40

VS.NET, do it!

Page 41: 1  软件开发技术现状 中国软件开发现状及开发语言之比较 使用 .NET 平台和 C# 语言能开发什么程序

Page 41

C# 与 .NET3.0高级程序设计 人民邮电出版社

[ 美 ]Andrew Troelsen2008.3