程序员的.NET时代 学习资料推荐汇总

来源:互联网 发布:java短信平台 编辑:程序博客网 时间:2024/05/07 13:07

程序员的.NET时代
http://dev.21tx.com 2004年05月13日
(一)
技术总是在不断发展,微软.net平台经历了三年时间的历程,已经被广大开发人员所接受。我们利用

Visual Studio.NET,可以快速、高效地进行Windows Form和Web Form的应用开发。.NET是一个全新的

概念,.NET代表了一个集合、一个环境、一个编程的基本结构,作为一个平台来支持下一代的互联网,

因为我们相信世界不会倒退到集中计算的主机模式下。在XML Web Service技术逐渐成熟的时候,软件

可被当作一种服务,支持新的设备,这些设备包括PC、移动电话、PDA、车载系统和机顶盒等,实现相

关设备协同工作,给用户带来全新的体验,微软演绎着一场新的互联网革命。作为.NET开发人员,我们

应该会对未来充满信心。

程序员是这场互联网革命的推动者,我们大家都在不断的学习技术、充实自我,以适应未来的变化(在

这里我不想进行.NET和Java的比较,因为这两个领域的技术各有所长,而且涵盖的范围都相当广,单纯

进行语言的比较是没有意义的)。微软用.NET为未来十年做了准备,所以当务之急,必须掌握.NET开发

工具这个利器,来构建我们的应用。其实.NET入门也是比较容易的,一般来说,基本掌握.NET程序设计

三个月就够了,半年以后,你就会成为一个合格的.NET程序员。如果想成为.NET领域的高手,那就得在

这个领域积累非常丰富的经验。

.NET是这十年中比较流行的开发工具。我用.NET开发已有两年多时间了,现将我的学习经验和方法和大

家分享。系统地学习.NET需要一个循序渐进的过程,我们分为入门级和提升级。如果你是入门者,下面

的每个学习阶段都是很重要的。假若你对.NET比较了解,可以选择你的需要的知识进行学习。

入门篇

1. 学习面向对象(OOP)的编程思想

许多高级语言都是面向对象的编程,.NET也不例外。如果您第一次接触面向对象的编程,就必须理解类

、对象、字段、属性、方法和事件、封装、继承和多态性、重载、重写等概念。需要说明的是,微软的

产品帮助文档做得非常完善,而且查询相当方便,入门者不得不看。安装完Visual Studio.NET2003(或

者Visual Studio.NET 2002)后,在“程序”组里有一个Visual Studio 组合帮助集合。初学者从帮助

文档就会获得许多知识。

 

2. 选择一门语言,学习语法及相关基础知识

选择语言的标准:根据你自己的需求和个人的技术背景。在.NET平台下,C#、VB.NET都是调用

Framework的类库,效率基本一样,C#的语法严谨,适合以前C++、VC的程序员。VB.net不区分大小写,

写法随意一些.,自动缩进,适合以前VB的程序员,微软也一再提倡用VB.NET进行快速开发。VC++.net

更接近底层,可以用托管和非托管两种方式进行编程。

选择了需要使用的语言后,我们需要了解语言的语法规则,包括语句、类型、表达式、运算符、函数等

等,我建议一开始写程序就要养成良好的编程风格,规范地进行变量的命名,在代码中写好注释。这对

以后的软件开发生涯都是很有意义的。

 

3. 理解.NET思想并熟悉框架类库(Framework Class Library)

我们借用一幅图来说明一下公共语言运行库(CLR)、框架类库(FCL)与应用程序之间以及与整个系统

之间的关系。


首先,我们要了解公共语言运行库、程序集、通用类型系统的概念。在此基础上,学习.NET框架类库。

.NET 框架类库是一个与公共语言运行库紧密集成的可重用的类型集合。.NET 框架类库封装了大部分

Win32 API ,许多以前需要调用API才能实现的功能,在.NET下非常容易就实现,许多情况下只需要一

句话就足够了。所以,我们在程序设计的时候要尽量避免调用Win32 API。学习.NET 框架类库的捷径:

掌握常用的类库,其它不常用的类库只需要了解,用到的时候查阅即可。

 

4. 利用Visual Studio.NET写程序

在.NET平台下写程序我们一般用微软的开发工具Visual Studio.NET,因为一个好的IDE,能极大地提高

开发效率。我建议初学者从Windows Forms或者是Web Form开始,等有一定的基础之后,再转向写类库

或是控件、组件方面的东西。微软的帮助文档里自带许多示例,我们可以一边看帮助,一边进行演练。

在学习其中的代码的同时,一定要理解和思考。多写代码、从项目中锻炼是编程高手的成长之路。记住

:一定要多看多写源代码;多上论坛(如CSDN和Dev-club)和微软的新闻组讨论技术问题。

我们一定要用好Visual Studio.NET这个集成开发环境,除了编写代码外,我们还要了解.NET的部署原

理,学习打包、部署及管理应用程序。多人开发的项目可以考虑用Visual Source Safe进行源代码管理

,这一系列开发工具的使用都要有大量的实践。

 

推荐书籍:

《C#高级编程》(第二版)(清华大学出版社)

《Microsoft.NET程序设计技术内幕》(清华大学出版社)

《 Visual VB.NET技术内幕》 (清华大学出版社)

《 Visual C#.NET技术内幕》 (清华大学出版社)

.NET入门教程(包括Windows Form和Web Form):

http://chs.gotdotnet.com/quickstart

 

5. 最好掌握大型数据库编程

一般来讲,大多数软件开发都涉及到数据库。大部分软件的后台数据库都使用如Access、SQL Server、

Oracle等。ADO.NET提供了对关系数据、XML 和应用程序数据的访问。我们必须掌握Connection、

Command、DataReader 和 DataAdapter 对象的使用,正确运用DataSet数据集和DataView进行数据操作

。当然,要有一定的数据库基础,包括表、视图、存储过程等的使用。必须把后台数据库和前台的

ADO.NET都掌握好,才能真正精通数据库编程。

在项目的开发中,建议使用数据访问应用程序块(Data Access Application Block)来简化SQL查询。

微软msdn网站有下载,我们可以利用SqlHelper类进行的数据访问,使用起来非常简单,很容易地构建

我们的数据访问层。参考微软MSDN文档:

http://msdn.microsoft.com/library/default.ASP?url=/library/en-us/dnbda/html/daab-rm.asp

 

推荐书籍:

《ADO.NET技术内幕》(清华大学出版社)

《ADO.NET高级编程》(中国电力出版社)

《VB.NET和SQL Server 2000高级编程—创建高效数据层》(清华大学出版社)

 

6. 学习XML WEB Service

XML Web services 正在开创一个分布式应用程序开发的新时代。XML Web Services 是把软件当成服务

的一种体现,通过使用 XML 消息处理启用数据交换和应用程序逻辑远程调用。XML使数据能够通过防火

墙,实现异类系统之间移动数据。虽然公共的Web Services还不是很普及,但是在一些企业中,已经涉

及到了Web Services的开发。用Visual Studio.NET 很容易创建Web服务,调用Web服务也相当简单,只

需要添加一个Web引用,然后调用即可。进行这方面的学习,需要了解Web 服务描述语言 (WSDL)、SOAP

协议等。

(二)
1. 学习.net框架开发平台底层原理和体系结构

.NET框架的核心是公共语言运行时(Common Language Runtime,CLR)。通常情况下,我们使用一种高

级语言(如C#或者VB.NET)编写程序,这些高级语言的编译器产生的是一个托管模块(即中间语言IL代码

)。托管模块是一个需要CLR才能执行的标准Windows PE文件。执行中间语言代码的时候,CLR中的即时

编译器(Just-in-time,简称JIT) 把其转换成CPU指令。这中间有许多细节,包括怎么初始化CLR,微软

组件运行时执行引擎MSCorEE.dll(Microsoft Component Object Runtime Execution Engine,在

system32目录下)怎么工作等等。如果你想精通.NET技术,就必须对.NET框架原理、程序集、元数据、

值类型/引用类型、类型设计、异常处理、自动垃圾回收等核心技术有一个清楚的认识。

 

推荐书籍:

《.NET框架程序设计》(修订版) (清华大学出版社)

《Applied .NET Framework Programming》(影印版)Jeffrey Richter著

《.Microsoft .NET IL汇编语言程序设计》

《.NET 本质论》(中国电力出版社)

 

2. 熟练运行底层工具进行调试和解决各种问题

了解.NET平台的底层原理,我们需要学会一些工具和CLR 调试器 (DbgCLR.exe)的使用。C# 命令行编译

器(Csc.exe)和VB.net编译器(Vbc.exe)的重要性就不用再多说。

.NET 框架 SDK 提供的几个比较重要的工具是:MSIL汇编程序(Ilasm.exe)、MSIL反汇编程序

(Ildasm.exe)、程序集链接器 (Al.exe)。强烈建议大家在开发中多使用MSIL 反汇编程序

(Ildasm.exe),以加强对CLR和底层的了解。MSIL 汇编程序(Ilasm.exe)从 MSIL 汇编语言生成可移植

可执行的 PE 文件。反汇编程序(Ildasm.exe) 可对任意 .NET 框架 .exe 或 .dll 程序集进行分析,

并以可读的格式显示信息。程序集链接器 (Al.exe) 从一个或多个文件生成一个带有程序集清单的文件

。.NET框架SDK还提供许多其它的工具,如:PEVerify 工具 (Peverify.exe)、强名称工具 (Sn.exe)等

,我们力求能用命令行的方式使用他们。

需要指出的是:Visual Studio.NET不是能完成所有命令行能做的工作,一些任务必须由命令行来完成

。如:创建多文件程序集,必须求助于csc.exe的addmodule选项。只有在对.NET 框架有很深理解的基

础上,才会灵活运用这些工具。

 

3. 进行大型软件系统架构设计

进行软件系统的架构设计,需要积累相当丰富的经验,要求我们从全局的概念上把握软件的总体结构。

首先的一点是,我们必须参照软件需求说明书。需求说明书是用户和开发双方对所开发软件的功能、性

能、用户界面及运行环境等做出详细的说明,所以我们设计软件必须以此为依据。接下来,我们要做软

件的总体设计,即概要设计。一般需要根据软件的业务需求和业务流程进行模块划分,规划程序的总体

结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计奠定基础。在

详细设计中需要指出每一模块是怎样实现的,包括实现算法、逻辑流程、数据流程图等。以后的工作,

就是程序的实现。测试是和编码同步进行的,必须严格把好质量关。

在用.NET开发大型系统的时候,一般都是做成三层(或是N层)结构的形式。即将应用程序逻辑地分为3

个基本层:数据访问和存储、业务逻辑层、表示层。三层结构的优点主要是:可扩展性、可伸缩性和灵

活性。在做Web应用的时候,可以考虑采用MVC(模型-视图-控制器 Model-View-Controller)模式让

Web应用程序的用户界面功能实现模块化。

顺便要说的是,大型软件有时需要整合多种产品,来满足企业级的应用需求。微软提供了许多Server产

品,如SQL Server 、Exchange Server、Share Point Server、BizTalk Server等。记住:大家一定要

多了解微软的产品线,微软很多技术都是相符相承的,结合起来才能发挥作用!我们可以微软的Server

级产品的基础上整合软件系统、实现数据共享访问、终端设备上的电子邮件、消息协作。总之,通过互

联网,让所有人一起协同工作,是未来软件的发展趋势。我们把握好这些方向,就等于驾驭未来。

 

推荐书籍:

《使用 Microsoft .NET 的企业解决方案模式》微软出版社

《EntERPrise Solution Patterns Using Microsoft .NET》 MS Press

 

网上资源:

软件工程专家网

http://www.51CMM.com

UML软件工程组织

http://www.uml.org.cn/

http://www.umlchina.com

 

4. 带领团队进行软件开发

一个好的团队,才能开发一个成功的产品。软件开发主要由项目管理团队、软件开发团队、软件测试团

队组成。项目管理人员主要对项目进行控制,协调开发人员、测试人员的工作。开发人员的工作主要是

负责软件的实现。测试人员是软件产品的质量保障。其它人员,如产品规划方面、软件技术支持和文档

、后勤都是不可缺少的。

大型软件是许多人集体智慧的结晶,要求Project Leader有较强的管理能力和技术背景,以及良好的沟

通能力。如果你作技术的时间很长,积累了丰富的经验,做过项目组长等管理工作,通过不断的学习和

提升,极有可能成长为Project Leader。如果你已是Project Leader,就到对软件的成败负责,你可以

根据现有资源决定开发中任务分配,合理用人,决定功能模块是否值得开发,项目进度控制等许多问题

。总之,带领团队的人必须有远见卓识,采取正确方法引领团队取得成功。

 

推荐书籍:

《人月神话》清华大学出版社

《人件》清华大学出版社

 

 

技术展望

 

1.无缝计算(Seamless Computing)

目前,大部分的应用还局限于桌面系统。在过去的二十年,软件定义了信息时代,但受到硬件的局限。

今天,软件决定了数字时代。“无缝计算”是一个软件创新框架,旨在消除不同软件系统之间所存在的

界线,无缝计算概念就是要以无缝的方式发挥硬件的全部能力。软件的根本性创新应在网络化系统、信

息驱动型软件和多媒体用户接口等领域中体现出来。未来,软件将不再受制于硬件功能。软件将帮助人

们更好地协同作业,逐步实现为人们提供理想工作环境的无缝计算。微软推出的Windows Server 2003

、Office System 2003、Visual Studio.Net、Web Service,以及今后发行的SQL Server “Yukon”

、Windows Longhorn则是无缝计算的基础。比尔.盖茨在Comdex 2003会议上承诺:要为无缝计算提供全

方位的框架与服务。无缝计算──的确值得我们期待!

 

2.无线通信

在无线通信方面,用.NET进行移动开发,实现所有设备终端协同工作。微软在2003年已推出精简版

的.Net 开发框架(.Net Compact Framework)。它和Smart Device Extensions (SDE) for Visual

Studio .NET 一起,将更强的开发能力和强大的编程平台带到了移动设备(如PDA、移动电话、机顶盒

和各种运行Window CE .NET操作系统的嵌入式设备)的开发工作中。今后的无线通信市场更加巨大,微

软和各大厂商的合作,将使用.NET进行移动开发的人员更加受益。

 

总结:

.NET是一个划时代意义的概念,可以说未来十年内,会有更多的软件开发商使用.NET。我们可以看到,

现在的VS.net功能已经很强大了。而且微软的开发工具会更加完善,每一个新版本的VS.NET都比上一版

本有许多提升。以后将会有更多程序员步入.NET阵营,程序员的.NET时代,将会极大提高生产率。设想

如果世界上的每一台服务器都运行一个Web Service,提供一个 Web API,每个API都能完成一个强大的

功能,这是一个多么强大的环境啊!我们期待这所有的一切。现在,我们要做的是:掌握好今天的.NET

,迎接明天的辉煌! 

原创粉丝点击