现在的位置: 首页 > 综合 > 正文

[转]你的.NET路线

2013年06月24日 ⁄ 综合 ⁄ 共 6370字 ⁄ 字号 评论关闭

 

 

一. .NET学习全景图
       .NET有一个庞大的技术体系,一个初学者,如何决定自己的学习步骤呢?就我自己的经验,谈谈我对这个问题的看法,参见图:
      
作为一个下定决心要学习.NET的初学者,首先要掌握VS.NET的使用,之所以把掌握这一开发工具放在第一位,是因为在后面的学习过程中,需要使用VS.NET进行不断地编程实践,而只有通过实践,才能最终掌握.NET技术。
       第二步是掌握一种.NET语言。由于.NET支持多种语言,所以读者可以根据自己的喜好选择一门计算机语言,但请注意以下选择语言的标准:
       (1)必须是全面向对象的语言,只有面向对象的语言才能充分发挥.NET的威力;
       (2)拥有较多的开发者和技术资源,这样您就可以很容易地找到志同道合的人共同学习。
       微软官方提供的语言有以下几种:Managed C++,C#,Visual Basic.NET,J#。
       其中Managed C++是对标准C++的一种扩充,用的人很少(目前Managed C++将演变为CLI,但其前景仍不十分明朗);J# 则是微软为吸引Java程序员转到.NET平台而采取的一种策略。如果读者不属于原来使用C++和Java进行开发,并希望能继续使用原有的语言写.NET程序这种情况,不要学习Managed C++和J#。
       C#和Visual Basic.NET是目前.NET下开发的主流语言,其中,C#是全新设计的一种语言,其语法与C++和Java都非常类似,Visual Basic.NET保留了原来Visual Basic的大部分语法特征和简洁方便的特性,同时加上了对面向对象特性的全面支持。两者几乎是一样强大的,初学者选任何一种都是可以的。
       目前支持.NET的语言已有几十种,而且还在不断地增加中。
       本书选用的编程语言是Visual Basic.NET。之所以选用Visual Basic.NET,一个原因是因为本书作者从Visual Basic3.0开始就使用Visual Basic来编程了,有丰富的Visual Basic开发经验,另一个原因是.NET支持混合语言开发,Visual Basic.NET开发出来的组件,可以方便地组合到C#程序中,反之亦然。Visual Basic.NET也是一种面向对象的语言,两者功能几乎一样强大,而且Visual Basic.NET与C#都使用同一个类库——.NET Framework,把Visual Basic.NET的程序代码转成C#代码也并不困难。在.NET下,语言已不再重要了。.NET的跨语言特性,使我们可以用Visual Basic.NET设计一个类,继承用C#或C++写的一个类,反之也行。在第12章中就以Visual Basic.NET和C#为例,介绍了.NET下的混合语言开发技术。
       本书的实例以Visual Basic.NET语言开发,但并不要求读者以前学过Visual Basic,当然,您要是使用过以前版本的Visual Basic(如Visual Basic 6)开发过程序,那么,使用Visual Basic.NET会感到比较亲切的。网上有许多人对Visual Basic有成见,要学.NET编程,许多初学者一起跟风去学C#,其实Visual Basic是一种优秀的计算机编程语言,尤其是最新的Visual Basic.NET,更是较以前的Visual Basic空前地强大与灵活。笔者使用过许多其它的语言如C++、Pascal、C#、Java开发过程序,但Visual Basic许多独特的优点所带来的高的开发效率仍是让我喜爱。在此,我只想说一句:关于语言优劣的讨论意义并不大,网上许多人的所谓高论,其实都是“盲人摸象”罢了,初学者不要被这些言论误导。对于一种语言,在你没有使用它写过一定量的程序时,不要对这门语言发表什么评论,就算发表评论,也要说明这是个人观点,这是一名软件工程师对技术应采取的态度。
        所以,学习本书读者一定要记住,您是在学习.NET编程技术,在学习如何开发一个软件,不是在学习一门语言,您需要重点把握代码背后的计算机基础理论知识,所蕴含的软件开发思维方法,以及学会使用.NET Framework本身,掌握语言不是重点,语言只不过是一个工具罢了。重要的是不是您掌握了什么工具,而是您用这个工具做出了什么!
       掌握了开发工具和编程语言之后,读者已经可以自己动手编一些小程序了。接下来的任务是学习具体的编程技术。
       据说.NET上运行的大部分程序是基于网络的(比如用ASP.NET开发的网站),但对于初学者而言,不适合一下子就投入到网络程序的开发中。而应从易到难,先把基础打好。
       因此,在第三步中学习Windows Form是个好选择。所谓Windows Form程序,就是传统的运行于个人电脑上的单机应用程序,象大家常用的金山词霸。通过Windows Form技术的学习,读者可以掌握最重要最基础的windows软件开发技术,并对面向对象理论会有深入的体会,有了这些基础,深入学习网络编程就是水到渠成的一件事。本书的主要内容就是向读者介绍Windows Form技术。
       第四步则是学习.NET网络技术,具体而言,又可以按照以下顺序进行学习:
       (1)ASP.NET:主要掌握如何设计ASP.NET网页,搭建一个运行于.NET Framework之上的Web网站;
       (2)Web Service:学习如何把网站的各种功能以Web Service的形式提供给外界,或者集成外部的Web Service实现功能强大的信息系统。Web Service是一个潜力无穷的新技术,将对下一代的互联网产生深远的影响。
       (3).NET Reomting及相关技术:不像ASP.NET和Web Service主要用于互联网,.NET Remoting及相关的技术主要用于开发基于局域网的应用程序,目前大部分公司和企业都建有自己的局域网,开发基于局域网的信息系统具有很大的需求。
       当完成了以上四步的学习之后,您就基本上了解了.NET中最重要的技术,下一步有两个选择:
       (1)学习移动设备开发技术,比如为手机、SmartPhone等智能移动设备开发程序,设计嵌入式系统等,.NET Compact Framework就是专为移动设备应用程序开发而准备的,使用.NET Compact Framework开发移动设备程序与使用.NET Framework开发普通程序是类似的,已有的.NET Framework开发经验仍然适用;
       (2)另一个方向是进一步深入地学习企业级项目开发技术,成为一名系统架构设计师,这需要更进一步地学习相关理论和技术,比如设计模式、软件工程等,还有J2EE等.NET竞争对手的技术。
       如果读者能沿着我的路线图走到这里,那就恭喜您,您已成为了一名.NET技术专家,更宽广的道路将展现在您的面前。
       本书写作的主要目的之一是帮助想学习.NET技术的读者顺利地走完前三步。

 

二. 部分.NET技术及书籍推荐

1.C#:
《C#高级编程》(第二版)(清华大学出版社)
《 Visual C#.NET技术内幕》 (清华大学出版社)

2.掌握大型数据库编程
要有一定的数据库基础,包括表、视图、存储过程等的使用。必须把后台数据库和前台的

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

《ADO.NET技术内幕》(清华大学出版社)
《ADO.NET高级编程》(中国电力出版社)

3.学习XML WEB Service
进行这方面的学习,需要了解Web 服务描述语言 (WSDL)、SOAP协议等

构建XML WEB服务:基于Microsoft.NET平台》(清华大学出版社)
《Building XML WEB Services for the Microsoft .NET Platform》(影印版)

4.学习.NET框架
.NET框架的核心是公共语言运行时(Common Language Runtime,CLR)

《.NET框架程序设计》(修订版) (清华大学出版社)
《Applied .NET Framework Programming》(影印版)Jeffrey Richter著
《.Microsoft .NET IL汇编语言程序设计》
《.NET 本质论》(中国电力出版社)

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

6.进行大型软件系统架构设计
用.NET开发大型系统的时候,一般都是做成三层(或是N层)结构的形式。即将应用程序逻辑地

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

可伸缩性和灵活性。在做Web应用的时候,可以考虑采用MVC(模型-视图-控制器 Model-View-

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

推荐书籍:
《使用 Microsoft .NET 的企业解决方案模式》微软出版社
《Enterprise Solution Patterns Using Microsoft .NET》 MS Press

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

推荐书籍:
《人月神话》清华大学出版社
《人件》清华大学出版社

 

三. ASP.NET的学习

如果你已经有较多的面向对象开发经验,跳过以下这两步:
  第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象

(OO)语言的前提下去学ASP.NET。 ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去

!
  第二步 对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程序来学习

.NET Framework。ASP.NET是建构在.NET Framework之上的技术,你对.NET Framework了解得越

深,学习ASP.NET就越快。 举个例子:下面简单列出几个对掌握ASP.NET非常重要的概念: 对

象的内存模型,委托,事件,多线程,程序集和应用程序域,安全模型 .NET Framework当然还

有许多其它的东西,但不理解与把握清楚上述这些东西,是很难真正把握ASP.NET的。 出于急

迫的心情与现实的考虑,不少人没有扎实的面向对象基础就想直接学习ASP.NET,其结果只能是

欲速则不达。 在具备了OO基础之后,以下是具体的学习ASP.NET技术步骤。

  第一步:学习HTML与CSS
  这并不需要去学一大堆的诸如Dreamweaver,Firework之类的各种网页设计工具,关键是理

解HTML网页嵌套的block结构与CSS的box模型。许多ASP.NET控件最后都必须转化为HTML。而且

,div+CSS是当前主流的网页布局模型。 学习这部分时,关键在于理解概念,而不需要将精力

花在美化页面的许多技巧上,那是网站美工的工作,不是程序员的工作。

  第二步:学习JavaScript
  JavaScript不是Java,它主要运行于浏览器端。可以完成许多工作,功能也很强大:比如

它将客户端网页中的HTML元素看成一棵树,可以编写代码访问并修改树节点,动态生成新的

HTML代码,从而达到动态修改网页显示特性的目的。
  JavaScript在目前的网站开发中用得很多,非常重要。
  另外,它也是目前非常流行的AJAX技术的基础。

  第三步:学习计算机网络原理
  找一本大学<计算机网络>教材,重点看看它的有关互联网的部分,了解一些域名解析和

HTTP协议等知识。这是进行互联网开发的理论基础。

  第四步:学习ASP.NET表示层技术,会设计Web页面
  需要结合先前打好的面向对象技术的基础,至少掌握以下内容:
  (1) 各种Web控件的使用方法,
  (2) 理解信息在网页中的传送方式,比如Cookie,ViewState,Session等的使用。
  (3) ASP.NET应用程序与网页的生命周期,以及相关对象(比如httpcontext,response,

request)的用途。
  (4) ASP.NET实现事件驱动的内幕
  (5) 自定义用户控件
  再次强调一下,没有OO基础,很难掌握上述技术,就只能被这些东东牵着鼻子走了,会很

被动。

  第五步 掌握数据库技术
  具体地说,要学习以下内容:
  (1) 学会使用SQL Server 2005:不要求精通它的各种工具与管理配置技术,但至少知道

如何连接,如何建表,如何创建存储过程
  (2) 学习ADO.NET,掌握使用代码人工访问数据库(别用VS2005的向导)的方法
  (3) 学习数据绑定控件的使用

  第六步 理解多层架构
  这时,先前在OO学习阶段涉及到的程序集与应用程序域等就派上用场了,现在,网站架构

大多采用多层架构:表示层、业务逻辑层、数据存取层以及数据库本身。
  可以先上网找一此多层架构的资料看,再找一个现成的比较复杂的开源ASP.NET项目分析一

下其架构就差不多了。基本上都是一个套路,到处应用。
  有的朋友问:学习架构是不是必须学习设计模式。
  我的看法是:不必!当然,你如果学习过设计模式,那当然更好。但在实际开发中,如果只

想着机械地套用某种模式,反而起不到好的结果。我的观点:在学习设计模式时要多思多悟,

其思想就会渐渐地融入你的大脑,在真实的设计实践中,忘掉所有的写在书上的模式,一切从

实际出发,相信你的直觉,只要达到设计要求的方案就是可行的方案,事实上,你这样做了之

后,回过头来再看,会发现你的设计往往暗合设计模式的理论。

  第七步 学习XML与Web Service
  先了解XML的基础知识,找本讲XML的书看一下就差不多了,然后,再学习Web Service。

Web Service其实可类比为远程方法调用(以XML格式表达的调用信息)。
  学 到了这里,如果你还有兴趣,不妨再去看看SOA,不过SOA的资料都是理论与概念,看起

来比较郁闷,而且离实际开发可能比较远。所以,这是可选项。

  第八步 学习AJAX
  学习AJAX的主要目的是创建具有更丰富特性的Web表示层,而经过前面七步的学习,到此再

学习AJAX已水到渠成,所有的基础都已具备,不会有太大的问题了。
  在基础未具备的前提下直接学AJAX,就象“浮沙之上筑高台”,所以,将AJAX的学习次序

安排在这里。

  第九步 学习RIA技术
  RIA:Rich internet application,可看成是将C/S与B/S优点合二为一的尝试。就具体技

术来说,主要指微软的Silverlight(WPF_E),毕竟前头一路行来都是微软路线。
  不过目前学习它主要是为了技术储备。估计此技术的普及需要2到3年的时间,因为预装

Vista的机器今年才开始大卖。

 

四. 其他补充
.net的基础是什么?也就是说,刚起步怎么开始入门。

1、先了解CLR,就是.net的编译原理,对.Net的内部有点认识。

2、学习C#语言的基本语法(如果你想从事VB.net,学VB.Net方面的)

3、然后重点学习其中的字符串使用,数据库Ado.Net使用,这是在开发中使用很多的。

4、最后你若有时间学些.Net的反射机制,元数据的使用。那是.Net中的核心,也是最难弄明白的。

部分转摘自:http://blog.csdn.net/bitfan/archive/2005/05/16/375790.aspx

其他部分无法找到原博客,在此表示感谢.

 

 这里介绍的书籍很不错,可以看看:

http://blog.csdn.net/Zhang_yalin/archive/2007/11/13/1883102.aspx

抱歉!评论已关闭.