入门篇
1.
学习面向对象
(OOP)
的编程思想
许多高级语言都是面向对象的编程,
.NET
也不例外。
如果您第一次接触面向对象的编程,就必须理解类、对象、字段、属性、方法和事件、封装、继承和多态性、重载、重写等概念。需要说明的是,微软的产品帮助文档做得非常完善,而且查询相当方便,入门者不得不看。安装完
Visual Studio.NET2003(
或者
Visual Studio.NET 2002)
后,在
“
程序
”
组里有一个
Visual Studiio
组合帮助集合。初学者从帮助文档就会获得许多知识。
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
协议等。
推荐书籍:
《构建
XML WEB
服务:基于
Microsoft.NET
平台》
(
清华大学出版社
)
《
Building XML WEB Services for the Microsoft .NET Platform
》(影印版)
.NET
技术网上资源:
中国软件网(中国最大的技术社区)
http://www.csdn.net
计算机世界开发者俱乐部
http://www.dev-club.com
中国
Dot Net
俱乐部
http://www.aspx.cn
微软官方
MSDN
权威站点:
http://msdn.microsoft.com
微软官方
ASP.NET
站点:
http://www.asp.net
微软官方
Windows Form
站点:
http://www.windowsforms.net
微软官方
Dot NET
站点:
http://www.gotdotnet.com
英文站点
Code project
:
http://www.codeproject.com
************************************************************************
提升篇
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 divss
网上资源:
软件工程专家网
http://www.51cmm.com
UML
软件工程组织
http://www.uml.org.cn/
http://www.umlchina.com
4.
带领团队进行软件开发
一个好的团队,才能开发一个成功的产品。软件开发主要由项目管理团队、软件开发团队、软件测试团队组成。项目管理人员主要对项目进行控制,协调开发人员、测试人员的工作。开发人员的工作主要是负责软件的实现。测试人员是软件产品的质量保障。其它人员,如产品规划方面、软件技术支持和文档、后勤都是不可缺少的。
大型软件是许多人集体智慧的结晶,要求
Project Leader
有较强的管理能力和技术背景,以及良好的沟通能力。如果你作技术的时间很长,积累了丰富的经验,做过项目组长等管理工作,通过不断的学习和提升,极有可能成长为
Project Leader
。如果你已是
Project Leader
,就到对软件的成败负责,你可以根据现有资源决定开发中任务分配,合理用人,决定功能模块是否值得开发,项目进度控制等许多问题。总之,带领团队的人必须有远见卓识,采取正确方法引领团队取得成功。
推荐书籍:
《人月神话》清华大学出版社
《人件》清华大学出版社