新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论.NET,C#,ASP,VB技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Dot NET,C#,ASP,VB 』 → [转帖]dotnet学习指南 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 14138 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: [转帖]dotnet学习指南 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     girlstop 帅哥哟,离线,有人找我吗?射手座1982-12-21
      
      
      等级:大一(猛啃高等数学)
      文章:15
      积分:182
      门派:IEEE.ORG.CN
      注册:2006/5/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给girlstop发送一个短消息 把girlstop加入好友 查看girlstop的个人资料 搜索girlstop在『 Dot NET,C#,ASP,VB 』的所有贴子 引用回复这个贴子 回复这个贴子 查看girlstop的博客楼主
    发贴心情 [转帖]dotnet学习指南

    如果觉得看网页不习惯,提供pdf下载
    Stan Lippman 的话:“.NET is the future.”
    .NET 就是未来
    DotNet学习指南 (for 新手)
    Writen by interma@BMY ( interma@stu.xjtu.edu.cn )
    2004.12 初稿
    2005.6修订
    声明: 以下所有信息都是本人自我感悟,因此难免有疏漏和错误之处,欢迎大家指正。
    同时这也是面向DotNet新手的,各位大牛们感到太肤浅的话,不看也罢。
    一. 什么是DotNet,为什么要学习DotNet:
    [1] 什么是DotNet:
    首先我先给出微软对DotNet定义:
    “Microsoft.NET 是 Microsoft.NET XML Web Services 平台。XML Web Services 允许应用程序通过 Internet 进行通讯和共享数据,而不管采用的是哪种操作系统,设备或编程语言。Microsoft.NET 平台提供XML Web Services 并将这些服务集成在一起,为个人用户的好处是无缝的,吸引人的体验。”
    但这只是官方的定义,对于我们来说DotNet只是一个为了实现上述目标的技术集,其中包含未来几年内可能应用到的先进技术,它的出现会使开发人员更容易更好地开发面对未来的复杂应用。
    [2] 为什么学习DotNet:
    在这里首先打一个总的基调,那就是:DotNet经过近4年(出现于2000年)的发展,它已经不再是那个稚气未脱的孩子,人们已经不再关注是否要学DotNet,而是关注于什么时候开始学习DotNet!
    下面我将给出我的学习原因:
    (1) 它本身的魅力:
    一个技术对大家影响最深,令大家印象最深刻的应该在语言层面,这本小节中,我主要说明DotNet中的语言魅力。
    DotNet强调的是多语言单平台。它其中的语言种类繁多(C#,VB,C++,J#,Delphi, Python等),这便给了程序员们极大的自由,由于这几乎覆盖了所有的流行语言,因此无论你以前是使用的语言,你都可以很快的过渡到DotNet上来,让你以前的辛苦没有白费。
    DotNet中的语言是面向构件(组件)编程的典范。在这里我看到了语言层次的进步,C那代语言是面向过程,C++那代是面向对象,而到了DotNet则是面向构件。
    在这一代又一代语言发展中无不体现出一个特点(包括近几年流行的动态语言):那就是对问题域的抽象越来越容易,越来越精确,越来越以人为本。随着计算机硬件性能的提升,性能已不是唯一的关注点了。
    DotNet中的语言具有优美性。这在里我主要是指C# ---------- 这个没有历史包袱的语言。在看C#的语言特性中我看到了美丽,它没有了那些面向过程的乌七八糟的东西,模式和重构都能随心应手的使用,轻量级的开发过程和相应的工具也能做到有的放矢。这无疑和C# 优良的语言特性不无关系,而且我还看到了它的轻快的发展脚步,C# 2.0中的范型(引自C++)和匿名方法(引自Java)等语言特性的出现,无不体现它的美好明天。
    DotNet中的语言和基类库(BCL)简单易学。这个我在版上同很多人交流过,但是结果我感到非常遗憾,大家对它的这个特点很不认可,多数表出“DotNet太简单了,没什么可学的”的态度,关于这个问题我在[FAQ]中会进行说明,在这里先给出一个观点:简单易学决不是缺点,只能是优点。
    (2) 未来的形势:
    因为未来的不确定性,因此在这里我不多说,只谈2点:
    DotNet中的技术都是当前或未来几年内的技术热点,这些技术在未来几年内有很大的用处。
    Windows的下一代平台Longhorn将用DotNet Framework作为基础来取代现在的Win32 API,也就是说托管API在将来将大行其道,Win32API只会变成2等公民,将来Longhorn下的应用大多都将用托管代码写成。(修订注:最新的MS路线图表明Longhorn不会完全采用托管API,但是托管API一定会比现在的XP中的那个要强得多)
    顺便说一个不可不提的事情,那就是微软在将来一定会大力推进DotNet的应用,从最近的Imagine Cup中你看到了什么?(提示一下: 那就是所有编程语言都必须使用DotNet系列语言之一)
    (3) 更好的解决问题:
    在这里我只强调一个问题,这个是编程的根本:就是为了解决实际问题。
    无论某个技术是多先进,还是多么烂,只要能解决实践问题就very well。我们无需卖弄自己采用的技术有多先进,也无需阐明有过高深,多奇妙,我们要的只是解决问题 --------------- This is our final target。
    而恰恰我看到了DotNet的解决实际问题的强大能力:从桌面系统到企业应用,无所不能。(当然,我不是说无所不精)这个我从很多朋友们那都有所了解,他们不是搞DotNet的,但是他们拿DotNet做过项目!
    它让我们能高效地解决实际问题,这就是我们选择它的原因。
    [3] 小结:
    不知道看了上边的文章,你对DotNet产生了学习兴趣没有。
    如果有的话,那我非常高兴,因为你在学习它的过程中一定会找到编程的快乐。
    如果没有,也没关系,那应该是我的表达能力不好,没有说出DotNet的迷人之处,你可以在其他开发社区中,看看其他人的观点,再作出你的决定。
    如果你已经有了兴趣,那让我们看看应该怎样学习它吧。进入第2部分。
    二. 学习路线:
    在下边的每个环节中我都会推荐几本书,如果是我没看过的,我会说明的。
    因此大家不用担心书的质量。(我以下都未说这些书的作者和出版社,因为这些书我们学校的图书馆一般都有,不会弄混,如果你未找到,请和我联系,我会告诉你它的详细信息)
    [1]初始阶段:
    目标:首先你应精通一门DotNet语言(包括Asp.net开发人员,我总感觉Asp.net开发人员的基础好象不扎实)
    具体实现:建议使用C#,因为这是为DotNet量身定做的语言,它没有历史包袱,最能体现出CLI的特性。如果熟悉VB6同时特别喜欢VB的话,可以选择VB.net。(不过我猜你最后肯定也会C#了)
    在这里,你的第一本DotNet语言学习书籍没有过多的限制,中国的外国的都行,不过记得别选太厚的。
    之后你将看到一本必读书:《.NET Framework 程序设计》(修订版),不多介绍了,这本书必读,否则你就不叫懂DotNet,这本书的有些内容你可能有点看不懂,不过没关系,随着你以后的深入,你就会明白了。
    成果:你这时只需比较了解语言特性,不必编出任何程序。
    [2]提高阶段:
    目标:可以开发程序了,You are a programmer now!
    具体实现:在这里我们要区分一下,分为桌面开发人员和网站开发人员(Asp.net)。
    对于网站开发人员(Asp.net),我在这里向你们推荐的Asp.net入门书是:
    《Asp.net 揭秘》(电力出版社)和《Asp.net权威编程》(电力出版社),这2本书非常不错,很系统的介绍了Asp.net 1.1的种种特性,只不过有点厚。 唉,在这我要说一句很遗憾的话,“对于Asp.net开发人员,我能对你的帮助到此为止了”,我不熟悉这个领域,但是在这阶段之后,你要多做一些项目,这会对你的开发水平有极大的提高,记住,一定要做项目,边作边学。在这之后,你的水平会有显著的提高,你那时应该可以知道自己的下一步该怎么走了。(顺便说一句:yboys@BMY是个牛人,去问他吧。)
    对于桌面开发人员,在本阶段,你们要做的和网站开发人员差不多。先推荐一本关于Winform的书籍,这个有很多,建议看《Winform 高级编程》和《Windows forms 程序设计》(此本我未看过),这2本都有点厚,时间不多的话,选若干章节看就行了。当然选其它关于Winform书也行,不过推荐外国人写的。
    之后就去开发桌面程序吧,从小到大,逐个深入,在这里你主要是熟悉DotNet的基类库和各种可视化控件(你的课程设计就可以用DotNet搞), 为将来打好基础。
    成果:你已经能开发出具体的小项目了,呵呵,在同学的眼里,你已经算半个编程高手了。
    [3] 提高阶段:
    目标:你要变得professional 。不过这个阶段有点漫长。
    具体实现:我们要对一些关于DotNet的基础知识和开发经验进行一下复习与总结了,同时也可以搞懂你在《.NET Framework 程序设计》中不懂的问题。遗憾的是,DotNet现在还没有这种书籍,不过没关系,我们要到Java那里找些帮助:《effective java》和
    《practical java》,呵呵,放心,你绝对看得懂。
    接下来,你要了解一些开发准则了,首先Clear你的代码,让它变得美丽,这是一个Programmer的基本素质,推荐那本《高质量程序设计指南----C/C++语言》,相信这本书你不会陌生,这里边讲到了一些作为programmer的最基本素质,无论是编码还是做人。
    下面2本重量级的书出场了,《设计模式》(我未读过)和《重构》,软工双杰的称号不是吹出来的,呵呵,开始吧。不过,我推荐看《C#设计模式》,因为那本《设计模式》据说太过抽象,很难看懂,并且里边还是用C++描述的,不适合初学者阅读。看完之后还推荐一本《设计模式精解》,书如其名,相信可以给你带来新的感受。
    在这同时你还应了解一下软件工程的知识轻量级的软件过程方法(如:XP,TDD等敏捷开发方法),注意:只是了解,不求深入。
    至于传统软工的冬冬,随便找一本介绍那些的书看看就行了,只要看完可以基本看懂一些简单的UML图就可以了,之后推荐看一本《java程序员UML手册》就行了,这本写得很好。
    看到这里,你可能会疑惑,难道对软工的知识如此轻视吗?就看这几本的书就行了?
    当然不行!但是你要明白软工知识必须要和具体的开发能力和项目经验相结合才有好的效果。对于我们学生来说,根本没经过大的,规范的软件项目的熏陶,因此根本无法深入软工这个领域,因此软工的知识等你工作了或上研了,在深入也来得及,因此现在只要求有所了解,不求深入。
    归根结底,本阶段是要提高你的Programmer素质和代码控制能力。不过,在学完这些之后别忘了开发一个大一点的程序检验一下你的所学阿。
    成果:你已经变得专业了,可以写出几千行(<5000)高质量的代码了。(顺便说一句,如果你现在刚好本科毕业,应该很抢手的。)
    [4]深入阶段:
    目标:学习DotNet的高级技术
    具体实现:关于DotNet的高级技术,有很多方面(太多了),其中有很多我们可能到工作阶段才能够深入了解。但是现在了解一些不无好处, 我在下面只列出了很少的几个,你可以从中选择几个学习。其中应该会有你已经熟悉的技术了,这是很正常的,本阶段不像开始的那几个阶段,比较灵活,它的开始和结束具有灵活性,由你进行控制。
    (1)线程操作:
    这是提高软件并发性的基础,无论是桌面开发还是网站编程,相信你都会遇到它。强烈建议打好基础。在这里DotNet下还没有本专题的好书,只能推荐这本《C#/VB.net线程手册》,不过此书正如其名,它只是带着你将托管线程的类库浏览了一番,关键的东西都未提到,因此你只有到网上看一些有关线程的资料了。不过在这里,我又要拿Java出来了,《Java线程编程》(我未看过),这本Java线程方面的经典之著应该不会让你失望。
    (2)网络编程:
    这个重要性不说了吧,就是套接字那套东西。不过这可不是令人头疼的Winsock了,DotNet对Winsock进行了包装,使其变得好用很多。强烈推荐:《C# 网络编程》,它非
    常系统的介绍了网络编程的原理和方法,看完之后,编个QQ或Serv-U应该不成问题,总之不容错过。
    (3)数据库编程:
    这个好没意思阿,我也不大懂,又不能帮你了。基本的就是一些数据库sql 语句和存储过程,同时还要对常见的DBMS有一些了解就行了。如果想在这个领域深入的话,那就要熟悉某种DBMS的性能特点,同时提高数据库分析和设计的能力。
    (4)CLR和DotNet底层知识:
    学了之后短期内应该没用,不过如果像我一样待着没事的话,看看DotNet的内部运作机理还是挺有意思的。推荐:《高级.NET程序设计》和《.NET本质论》(此本有难度)。
    (5)分布式:
    它就是.NET Remoting,这是非常有用的一种技术,我也在学习中。推荐《.NET remoting 技术手册》,不过还要到网上多看别人的例子。(呵呵,让我们忘掉复杂的COBRA吧)
    (6)Web Services:
    这是将来的基础应用平台,现在应用的也很广泛。我对这个知识了解一些基础的知识。
    没法推荐高深的,只推荐一本O’Reilly的《.Net Web服务》,是本很好的入门教材。
    (7)Pocker PC和Smartphone:
    热门领域,不过同样也没什么书籍可以参考,同样我也没法帮你,到网上找找吧。
    成果:你现在对这几个DotNet的高级技术都有了了解,将来(应当是工作时了)你应该会精通其中的某几项技术,这是你就是DotNet技术专家了。当然,别忘了,学习完这些技术后,编几个东西熟悉一下啊。
    [5]superman阶段:
    目标:提高系统分析和设计的能力,提高OOA/OOD的能力,还有着众多的项目经验。
    同时还对DotNet中各项技术都有了新的认识,不再拘泥于技术细节,能做到在最恰当的场合应用最合理的技术(不一定是最先进的技术),同时还能对将来的技术趋势做出自己的分析和把握。
    过程:。。。。。。
    成果:我该怎么称呼你呢?我亲爱的DotNet架构师。
    [6]小结:
    我已经将我认为的DotNet开发人员的成长路线展示给你了,你一定会有自己的主意了,希望你能在学习它的过程中找到快乐。
    在第3部分中,我将列出网上的一些参考资源,供你参考之用。
    三. 参考资源:
    在这里我只推荐很少的一部分资源,但因为我们的时间和精力都有限,这些已经足够你
    成为高手中的高手了。
    [1]开发工具及相关下载:
    (1) 我的ftp :
    202.200.238.199 user: guest pass: guest
    在这里有绝大多数的开发工具(当然包括DotNet), 我同时也会经常更新。在你找某个开发工具时,可先来这里看一下。
    (2) MSDN下载:
    MSDN开发中心下载(中文):
    http://www.microsoft.com/downloads/search.aspx?displaylang=zh-cn&categoryid=10
    MSDN Download and Code Center (英文):
    http://msdn.microsoft.com/downloads/
    这是微软的官方站点,英文的资源多一点,如果在中文站点没找到,可去英文的看看。
    [2]开发社区及学习资料:
    (1) CSDN:
    首页:
    http://www.csdn.net/
    CSDN技术社区[C#]: http://community.csdn.net/expert/forum.asp?url=/Expert/ForumList.asp?roomid=5201&typenum=1&xmlsrc=&whichpage=1
    CSDN技术中心[DotNet文档列表]:
    http://dev.csdn.net/articlelist.aspx?c=14
    CSDN就啥都不说了,号称亚洲最大,其实啥人都有,别看花眼啊。
    (2) MSDN [中文网站]:
    http://www.microsoft.com/china/msdn/
    基本都是精品,包含DotNet的各方面信息。
    (3) 微软新闻组:
    news.bentium.com (用OE上)
    通过奔腾转信,进入: Microsoft.public.cn.dotnet.language.相应的语言。
    其实就是对应微软社区。有很多的MVP帮你,感觉比CSDN强多了,也许还能碰
    到clear和imcc呢。
    (4)
    博客堂:
    http://blog.joycode.com/
    博客园:
    http://www.cnblogs.com/
    这2个有关于DotNet的新闻和技术动态,以较为实用的工程技术知识为主。
    [3]其它:
    (1) SourceForge:
    http://sourceforge.net/
    这个应该不必说了吧?大名鼎鼎的sf.net 。
    现在DotNet的开源项目也有很多了, 学习他们优秀的代码设计也是必不可少的一项课程。
    进入其中的Software Map 之后,选择某种DotNet语言,就能看到相应的项目了。
    (2) ME:
    在你没成为高手之前,我也许能帮上你的忙,呵呵,欢迎你与我交流。(QQ: 165194384)
    四. 其他:(FAQ):
    这些FAQ,都是我曾经扪心自问的,其中不涉及到任何技术问题,都是一些我这几年对开发程序的思考。这些大多与DotNet无关,但是我希望你能从我这里找到问题的答案。如果你有不同的看法,十分欢迎你与我交流。
    [1]为什么要开发程序?为什么要当程序员?
    Only one reason,我们喜欢,这就是我们的生活方式。我们不是为了享受众人羡慕的眼光,也不是为了去挣大把大把的金钱。我们对技术的态度就像恶魔猎人对力量的无限渴求一样。我们可以把手放在胸前,对天发誓:我们真心喜欢编程。
    [2]不喜欢编程能当好程序员吗?
    你应该已经能猜到我的观点了,那就是:不能,就算能你也不快乐。(没人愿意干自己不感兴趣的事情,过得不快乐,你这辈子就算白活了)
    [3]开发水平低怎么办?成为不了高手怎么办?
    难道成为高手你就快乐了吗?我看不出来。
    [4]快速提高水平的秘诀是什么?
    唯有刻苦+勤奋。
    [5]中国软件业的未来怎么办?
    我还在思考。。。。。。
    [6]关于语言的选择?
    语言只是为了解决问题的,最终的要点是要解决问题,因此不同的语言有它擅长的应用领域。
    [7]C++的阴影?
    这个其实和上个问题一样,有这样一种观点,DotNet的出现把程序员们都弄傻了,只会用那些控件(like vb)。其实没有傻的技术,只有傻的人,没有人会因为使用DotNet而变得愚蠢。CPPer们攻击DotNet的原因无非就是DotNet太简单了,白痴都会,做不了底层应用,代码效率低。我想不通,一个技术容易上手有什么不好,在同样的应用产出下,你的学习成本的降低,开发效率的提高难道是坏事?至于做不了底层系统和代码效率的问题,这是因为DotNet不是面向这个领域,这就是C++将来的地盘,DotNet有它的领域,一个企业3层应用平台,全部用C++开发怎能快速,灵活的搞定。过于偏激的排外或爱好一种技术,只会给自己带来灾难性的后果。最后要说一个历史趋势,那就是随着计算机性能和问题的逻辑复杂度的提高,高效率的代码已经不再是唯一的衡量开发的标准了,从汇编,C,C++,JAVA,DotNet的发展,你看到了什么?那就是抽象的程度越来越高,程序员们的编码难度逐步降低(也就是次要复杂度的降低),但是系统分析和设计的难度则在逐层提升,所面对的问题的逻辑复杂度在逐渐升高(主要复杂度的升高),这正是DotNet(Java)出现的契机,它降低我们开发代码的次要复杂度,使我们可以集中我们的全部精力投入到主要复杂度的解决上来,这也正是MDA出现的原因。
    [8]程序员的基本素质?
    正直,善良,刻苦,勤奋,平和,坦然。
    [9]最后来各搞笑点的话题,程序员真的不好找mm吗?
    确实不好找。。。呜呜~~~
    为了我们的程序,认了吧。
    五. 最后的话:
    非常感谢你能有耐心读完我的文章,希望看完之后你能找到自己的方向,期待你与我的进一步交流,bye~~~~。

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/19 17:43:00
     
     GoogleAdSense射手座1982-12-21
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Dot NET,C#,ASP,VB 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/19 3:26:26

    本主题贴数5,分页: [1]

     *树形目录 (最近20个回帖) 顶端 
    主题:  [转帖]dotnet学习指南(14194字) - girlstop,2006年5月19日
        回复:  不错,一直都比较喜欢.net(23字) - yumengxuan,2006年7月28日
        回复:  登陆不了(8字) - birdofwebprogramming,2006年6月21日
        回复:  看的我头都晕了(16字) - lwgaiyanzi,2006年5月24日
        回复:  bu cuo,xiexie(13字) - firechuan,2006年5月20日

    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    109.375ms