2024年4月11日发(作者:)
Visual Studio .NET 学习之路
弈飞信息首席顾问 / 台湾微软特约资深讲师
李 清 培
摘要
本文将介绍.NET 的整体架构,以及Visual Studio .NET的完整学习路径。在简
略介绍.NET应用程序架构之后,将依程序设计语言、.NET Framework、.NET应
用程序、Web 服务四大主题介绍.NET完整的学习路径,不论是资深的程序设计
师或程序的初学者都能快速的掌握Visual Studio .NET的核心技术。
另一方面Microsoft为了建立.NET应用程序开发能力的认证标准,特别针对
Visual 推出了两项认证,MCAD与,本文将一并介绍相关
认证的需求,以及参考资源。
为什么是.NET?为什么叫.NET?
在进入.NET学习路径之前,我们先要了解什么是.NET,以及为什么叫.NET。
.NET解决新一代因特网应用程序的需求
由于全球将近有三十亿的人口使用Web,企业与企业间的互动日趋频繁,使
用者对网站的要求不单单只有浏览信息而已,更希望能够编辑、分析与交换数据
等,企业开始期待一个崭新的程序架构,希望能够让应用程序、装置、与企业流
程能够充份的协同合作。Microsoft 为了解决以上的问题,便提出了一套以Web
Service 为核心的解决方案Microsoft .NET。
在.NET的时代, Internet即是作业平台
Microsoft .NET延伸了来自Internet及操作系统的概念,让Internet本身成为新
操作系统的基础,也就是说,在.NET的时代,程序开发者的操作系统是架构在
整个Internet之上,如此将使开发人员可以轻易的建构出程序,而不再受周边装
置的局限,并可透过应用程序充分与因特网连结。
.NET学习路径
在教学的过程中常有学生问到学习Visual Basic必须具备什么条件,我常
以半开玩笑的语调回答,只要会小画家就可以了。然而在10 年前,想要编写一
个窗口应用程序并不是件容易的事。直到 Visual Basic 的诞生,程序开发人员
才开始体会到开发 Windows 应用程序是如此简便,就像画图一样把控件拖曳到
窗体上就可以了,对一个像我这样写了几年结构化程序的人而言,真是一大震撼。
同样的,在.NET 的学习上,跟十年前比较起来,也不是那么困难,但是若
要能随心所欲的发挥功能,还是必须下些功夫。首先,建议您尽快体验 Visual
Studio .NET 产品,只是看书、听研讨会,不如实际动手操作,以熟悉Visual
Studio .NET的整合开发环境(IDE)。在这一方面Microsoft提供了许多的Sample
Code可供练习;或是参加CTEC所举办各样主题的一日体验课程。
接下来则建议依下列四个步骤进行学习:
熟悉您要使用的程序设计语言
目前支持.NET的语言共有二十五种,内建于Visual Studio .NET的程序语言
则有Visual C++、Visual Basic .NET、Visual C# .NET,其中与C#可以说
是为.NET所量身订作的,因此在此建议以这两种语言为主。
至于选择那一种语言全看个人的背景,近年来,VB 的开发者希望Microsoft
能推出更强大、程序架构的开发语言以符合企业的需求;而 C++ 的开发者则希
望能Microsoft在整合开发环境 (IDE)里,像VB一样,提供新的快速应用开发(RAD)
特性以提高开发效率。这也是Microsoft发布 Visual Basic .NET 和 C# 的主要原
因。
因此如果您原本学习C+ +或Java,可以选择C#,跟C++与Java比较起来,
C#除了九成以上雷同,整体的语法更是精炼而优美,C#同时也经审核通过成为
一种工业标准的语言。至于原本学习VB的朋友,建议直接使用,虽然
在台湾,学习C++有一种强烈的优越感,但是如果使用的是 ”Visual”,重在快
速开发,VB其实是很好的选择,目前全球约有八百万人使用VB开发程序。
至于语言的效能上,由于.NET 应用程序架构是采取两阶段式的编译,第一
阶段先将程序语言透过专属的编译器编译成中间语言,第二阶段在由.NET
Framework的成员Common Language Runtime将IL最佳化之后编译成机器码。(限
于篇幅在此不多加赘述,可参考MSDN相关数据,或下载笔者在TechEd及PDC
研讨会资料。)也就是说,无论用什么语言,都必须“翻译”成IL,因此也没有
什么效能上的分别了。
学习使用 Microsoft .NET Framework
在开发分布式应用程序时,除了快速开发工具以外,还必须有一套整合与服
务这些程序组件的中介软件,且这一套中介软件必须能与操作系统充分整合、使
用系统所提供的资源与服务。在上一代的应用程序的中介软件包括MTS、 COM、
IIS、MSMQ、以及后来的COM+,而在.NET平台上,如前面所提到的,是以XML
为基础的,且要达到AP-to-AP与 Programmable Web的目标,因此需要一个全新
的中介软件,Microsoft提供给我们一个更强大的中介软件.NET Framework。
.NET Framework的架构共分为五大部份,其中.NET Framework本身具有的包
括共通语言执行期环境( Common Language Runtime、CLR)、广泛的类别函式库,
以及定义.NET语言的共通语言规范(CLS),另外则为承载.NET Framework的操作
系统平台,及支持.NET语言的开发工具Visual Studio .NET。
最底层的Common Language Runtime设计上有点像Java Virtual Machine,未来
开发的.NET应用程序,都必须Run在Common Language Runtime上面。Common
Language Runtime提供了非常多的Service让应用程序在开发上、或执行上更稳定、
更快速。
在中间的部份为Class Library,在以前我们在开发程序的时候,我们可能会
用一些API,COM Library,MFC/ATL,等等,.NET Framework整合这些Functionality
提供一致的Class Library,未来无论您用什么样的程序语言,都可以使用一致的
Class Library。
因此这一部份的学习重点在于如何引用、延伸这些类别函式库的功能,并建
立自定的类别函式库,但是面对那么多的类别函式库,又面临了以前使用API 的
窘境:要用那个API?怎么用?好在Microsoft在这一方面提供了绝佳的解决方案,
Microsoft利用名称空间(NameSpace)的架构,将这些类别分门别类,例如要使用与
数据库相关的,就引用相关名称空间;若要使用到Web Service相关
的类别,则引用es,依此类推。详细的“族谱”请参阅.NET
Framework SDK说明文件。
至于Common Language Runtime的应用,则进一步提供应用程序调校的许多
技术,如果不是进阶使用者,维持默认值有时比自己设定要好,这一部份可参阅
笔者在微软PDC2002 Inside Common Language Runtime讲次的资料。
学习如何开发Web 或 Windows 应用程序
在熟悉了程序语言与.NET Framework之后,又面临另一项选择:Window Based
或 Web Based。Visual 提供两种使用接口:与Windows Forms。
其中的使用接口又称为WebForms。顾名思义,Web Forms将摆脱以前
ASP难以开发的缺点,赋与像Windows Forms一样的开发环境,因此对于以前习
惯于在交互式的环境下开发程序的朋友,现在也可以像以前开发VB应用程序那
么简单的开发一个高效能的Web应用程序。
那么Windows Forms呢?不用耽心,Microsoft并没有厚此薄彼,Windows Forms
具有全新的开发环境,包括以拖放方式建立数据库的连结与设定、使用 XML
Web Services 、视觉继承、利用控件锚点和停驻自动建置可调整大小的窗体、以
及直接以视觉方式来撰写菜单等。因此在这一部份不论您选择那一样都可完全享
受 Visual 强大的功能。
这一部份的学习重在操作环境的熟悉与控件的使用,建议先利用Microsoft
所提供的Sample Code练习,再利用在线说明书,逐一练习各控件,并利用这些
既有控件开发功能丰富的使用者接口。而进阶使用者则必须能自行开发自订的控
件,包括Windows Controls 与 Web Controls。
学习建立并公布 Web 服务
过去,开发人员在开发程序的时候,必须依赖本机系统服务来建构应用程序,
即使是采用多阶(n-tier)的架构,开发人员仍需要使用大量的程序资源,然而到
了.NET时代,应用程序不在绑在某一操作系统上,而是将整个Internet当作应用
程式的平台。为了达到这个目标,Microsoft利用两项特质,包括更具弹性的多阶
(n-tier)架构,以及网页上讯息导向的概念,建构了称为「网页服务(Web Services)」
的应用程序架构。就概念上而言,呼叫网页服务(Web Service)将网页服务(Web
Service)整合于应用程序中,就像呼叫本机服务或其它组件一样。这之间的差别
在于它是透过Internet来呼叫。或者可以说Web Service就是将以前的组件网络化
而已。
因此在这一部份的学习除了学习如何建立与使用Web Service外,就跟以前
学习Windows DNA时候一样,必须强调的是部署与解决方案。例如,如何利用
Web Service建构分布式应用程序,或利用Web Service提供信息服务等。
另一方面,由于.NET应用程序是架构在整个Internet上,因此安全性也是一
大课题,建议在完成以上学习之后,能进一步探讨.NET安全技术,这一部份
Microsoft也提供了相当多的技术资源可供下载。
.NET认证
在了解了Visual Studio .NET的学习方向后,无论您是经验丰富的程序设计师
或只是刚起步的新鲜人,我想都应该有兴趣了解Microsoft针对.NET程序开发所
建立的认证制度。以下即就MCAD(微软认证应用程序开发工程师)与MCSD(微软
认证解决方案开发工程师)相关认证作说明。(数据来源参考微软网站)
核心科目
Microsoft .NET 的 MCAD (必考两科) Microsoft .NET 的 MCSD (必考四科)
Visual Basic .NET
70-305* 使用 Microsoft Visual
Basic .NET 及 Microsoft Visual
Studio .NET 以开发并实施 Web 应用
程序
或
70-306* 使用 Microsoft Visual
Basic .NET 及 Microsoft Visual
Studio .NET 以开发并实施基于
Windows 的应用程序
70-305 使用 Microsoft Visual Basic .NET
及 Microsoft Visual Studio .NET 以开发
并实施 Web 应用程序
70-306 使用 Microsoft Visual Basic .NET
及 Microsoft Visual Studio .NET 以开发
并实施基于 Windows 的应用程序
70-310 使用 Microsoft Visual Basic .NET
70-310 使用 Microsoft Visual Basic .NET
及 Microsoft .NET Framework 以开发
及 Microsoft .NET Framework 以开发
XML Web 服务及服务器组件
XML Web 服务及服务器组件
70-300 分析需求及定义 .NET 解决方
案架构
Visual C#
70-315* 使用 C# 及 Microsoft Visual
Studio .NET 以开发并实施 Web 应用
程序
或
70-315 使用 C# 及 Microsoft Visual
Studio .NET 以开发并实施 Web 应用
程序)
70-316* 使用 C# 及 Microsoft Visual
Studio .NET 以开发并实施基于
Windows 的应用程序
70-320 使用 Microsoft Visual C# 及
70-316 使用 C# 及 Microsoft Visual
Studio .NET 以开发并实施基于
Windows 的应用程序
Microsoft .NET Framework 以开发 XML 70-320 使用 Microsoft Visual C# 及
Web 服务及服务器组件 Microsoft .NET Framework 以开发 XML
Web 服务及服务器组件
70-300 分析需求及定义 .NET 解决方
案架构。
选考科目
Microsoft .NET 的 MCAD (选考一科) Microsoft .NET 的 MCSD (选考一科)
70-229 使用 Microsoft SQL Server 2000
企业版以设计并实施数据库
70-230 使用 Microsoft BizTalk Server
2000 企业版以设计并实施解决方案
70-229 使用 Microsoft SQL Server 2000
企业版以设计并实施数据库
70-230 使用 Microsoft BizTalk Server
2000 企业版以设计并实施解决方案
70-234 使用 Microsoft Commerce Server 70-234 使用 Microsoft Commerce Server
2000 以设计并实施解决方案
70-305* 使用 Microsoft Visual
Basic .NET 及 Microsoft Visual
Studio .NET 以设计并实施 Web 应用
程序
70-306* 使用 Microsoft Visual
Basic .NET 及 Microsoft Visual
Studio .NET 以开发并实施 Windows 应
用程序
70-315* 使用 C# 及 Microsoft Visual
Studio .NET 以开发并实施 Web 应用
程序
70-316* 使用 C# 及 Microsoft Visual
Studio .NET 以开发并实施基于
Windows 的应用程序
2000 以设计并实施解决方案
建议路径
对于「MCAD 认证」,如果核心科目选择70-305 或 70-315,则可以选择
70-306 或 70-316作为选考,反之亦然。因此建议先以70-305、70-306、70-310
取的VB的MCAD或以70-315、70-316、70- 320取得C#的MCAD。
至于MCSD,不论用那种语言,取得MCAD后,建议经过几个月的开发经
验后,才能参加70-300的考试,同时必需加考一科选考科目,才能取得.NET的
MCSD。
学习资源
Microsoft为了能尽速达成技术转移的目的,提供了相当丰富的资源供使用者
参考,同时在Visual Studio .NET所附的说明文件全部是中文化的,这对习惯使用
在线说明书的开发者而言真是一大福音。
另外不论是美国原厂的MSDN网站()或是台湾微软msdn
网站(/taiwan/msdn)也都提供了相当多的资源。同时自去年开始,
一系列的修练研讨会,其目的也是尽快达成技术转移的目的。
对于自学者,目前除了MsPress的书籍外,各家出版社及作者,也趁这一波
推出了大量相关的书籍,不怕没有参考书,只怕不知到找那一本,不过还是建议
先参考原厂所提供的参考数据及范例程序之后,再选择适合自己的书。
如果您是属于工作繁忙,或想加速整个学习曲线,则可选则微软技术授权的
教育中心(CTEC),由于CTEC使用原厂Microsoft Official Curriculum (MOC) 教
材,因此可以学习到原厂第一手的技术,而且讲师都必须通过相关的认证才可以
教授该课程。
结语
学习新技术总是令人雀跃不已,然而面对一些新的名词、新的架构,则是一
种全新的挑战,若在谈到coding,很多人开始犹豫了。其实只要把握原则,学
习.NET可以很快乐的,本文尽量不谈到技术的东西,若有任何技术上或学习上
的疑问,也欢迎来函交换意见。


发布评论