“.NET 4.0网络开发入门之旅系列文章”开篇语——无网不胜

来源:互联网 发布:java 集成开发环境 编辑:程序博客网 时间:2024/05/02 01:57

.NET 4.0网络开发入门之旅系列文章”开篇语

无网不胜

1 引子

         作为一名高校计算机专业教师,我接触到大量的学生,也经常收到其他高校学生以及许多.NET初学者的邮件,询问各式各样的问题。

  • .NET应该怎样学?
  • .NET能写什么样的程序?
  • .NET程序员是不是工资低?
  •  ……

         前几天我在博客园网站上看到了一篇刚工作没几年的程序员写的《.net, 哥已心灰意冷,这篇博文引来跟帖无数。

注:

     《.net, 哥已心灰意冷这篇文章作者的URL中包容一个敏感词,服务器不允许发布,所以请大家自己到博客园上去搜索这篇文章。

         我研究.NET有年头了,还不断地发现新的东西,深感.NET能做的东西太多了,奇怪怎会有人形成“.NET只能做些CRUD之类MIS系统”这种观点?

    注:

       CRUD指“Create、Read、Update、Delete”这四种基本数据操作,我个人认为将其意译为四个汉字“增删改查”最贴切。

        所以,我想写些文字介绍 CRUD”数据库应用程序之外的另一个非常重要的应用领域——网络应用程序开发。

        前段时间360QQ将整个中国互联网拖入一场混战,此处不对这场3Q大战的是是非非做评论,引起我们关注的是QQ之类即时通讯工具本质上是一种网络客户端软件,在功能强大的服务器的配合下(其实360系列软件也离不开其部署于互联网上的服务器),这些网络客户端软件给我们生活带来了巨大的影响,想想看,现在有多少人离得开QQ?而360系列软件的装机量不也上亿了吗?

        软件技术的主战场早已由上个世纪的PC移到了互联网,而我们即将迈入的21世纪的第2个十年,移动互联网将是竞争最激烈的战场,想想苹果iPhone4的火爆,想想微软今年上隆重推出的Windows Phone 7,想想GoogleAndroid,这些IT巨头们无不对移动互联网这一块“大肥肉”“虎视眈眈”。

        很明显,现在已经是“无网不胜”的时代。

         有人可能会说:QQ好象不是.NET写的吧?

         那我反问一句:你的意思是不是用.NET就写不出QQ这类软件啦?

        的确,现在用.NET写一个QQ可能没有人用,因为要超过腾讯现有的QQ实在不容易,毕竟QQ历经多年的持续完善与升级,更关键的是它已经拥有了“粘性极强”的庞大用户群。

         但使用.NET开发出的“QQ”能不能做到象腾讯那样的成功是一回事,使用.NET能不能写出同样的功能的程序是另一回事,仅由几个软件产品或应用的优劣成败而对整个软件运行平台做出判断是不能让人信服的。

        另外,微软已经明确,Windows Phone 7应用程序的开发平台就是Silverlight,虽然Silverlight运行环境完全独立于标准的.NET CLR(这就是说,只要安装有Silverlight插件就可以跑Silverlight应用,手机并不要求安装.NET Framework),但Silverlight脱胎于.NET,从开发者角度来看,开发Silverlight手机应用程序,除了可用的API与功能少一点,与传统的.NET应用程序开发方式几乎完全一样。我从没有看到有人认为Silverlight不属于.NET技术家族。

        大多数软件开发者其实都意识到了掌握开发网络应用技术的重要性,然而,对于初学者(尤其是在校的大学生)而言,面对着日新月异的网络开发技术,无不陷入“眼花缭乱”的困境(其实我也一样的)。

        我这人没别的爱好,就喜欢钻研软件技术,而且喜欢以写书或技术文章的方式将自己掌握的技术介绍给读者,于是这些年来我的6本有关.NET软件开发技术的书,同时还在个人博客上发表了近200篇的技术文章。

        我一直有一个想法,就是能写作一系列的技术书籍和文章,帮助读者构建出一个比较完整的.NET技术体系。

         事实证明,这是一个很艰巨的任务(我从2008年起追踪.NET 4.0,又花了一年的时间才写完《.NET 4.0面向对象编程漫谈》,而这仅仅只是这个任务的一小部分,整个任务的完成看上去遥遥无期,我就干脆不去想它了)。

        完成了《.NET 4.0面向对象编程漫谈》的写作之后,我认为已经帮助读者搭建了一个开发.NET应用软件的坚实基础,下一步应该在此基础之上,引导读者探索更为精彩也更为实用的新领域。

        鉴于前述网络开发技术的极端重要性,本系列文章中我尝试向读者介绍.NET分布式软件系统开发技术,开始想直接介绍WCF4,但后来我发现,WCF实在太庞大了,一时还真不知道该以何种方式将这一复杂的技术展示给读者(我编写过一个PPT教案《WCF概述》,放在CSDN频道上,似乎比较受欢迎,下载量上千),而且博客园中的WCF大牛——蒋金楠已经写了一本《WCF技术剖析》,而且在他的博客上有非常精彩的WCF系列文章,我就不再“班门弄斧”了(虽然我以后肯定会写一些针对初学者的WCF文章)。

        我选择的切入点是“.NET套接字(Socket)”编程,与WCF/Silverlight等这种“流行”与“时髦”的技术不一样,.NET套接字编程似乎“落伍”了、“老掉牙”了,但以我到一些企业培训所了解到的情况,我发现这个“老掉牙”的技术其实是.NET中真正得到实际应用的技术之一,即使WCF出来了,Socket编程仍然有其实际意义,在不少场合,使用Socket这种封装很少的组件开发网络应用程序,比使用WCF那个庞大而复杂的框架,更有实用意义。

        对于尝试掌握网络应用程序开发技术的初学者而言,再没有比Socket更合适的切入点了。另外,掌握好Socket编程,对真正理解和用好WCF,以及探索无线网络开发技术(比如开发跑在手机上的无线应用),绝对是有很大的帮助。

         所以,我打算写一系列的有关.NET套接字编程的文章,到底写多少篇我也不知道,粗粗想了一下,至少会涉及:

         1)理解SocketTCPUDP等概念的含义与相关的网络原理

         2)使用TCP/UDP在计算机网络中传送数据

         3)了解开发网络应用程序的特点与难点

         有时间,有精力,有兴趣就多写一点,否则,就少写一点。

        很奇怪,我发现国内中文技术书籍和文章中,有关.NET套接字编程的内容不多(另一个类似例子是.NET的多线程开发,如此重要的技术,比较全面与成系统的文章与资料也不多,所以我在《.NET 4.0面向对象编程漫谈》应用篇中用了100多页的篇幅介绍多线程,大家很快就会看到这些技术在网络开发中的应用了),希望我的这些文章能弥补一下。

       这系列的文章包容许多例子,我初步计划会编写一些典型的局域网示例程序:比如支持多用户上传与下载文件的文件服务器,具备在多台计算机上同步显示图片的“网络幻灯片”等。

        另外,由于网络开发技术涉及到的东西既深且广,而本人于此领域技术积累不多,因此,文章中存在的错误可能不少,敬请有这方面实际开发经验的朋友回贴指正,我写这些文章是希望能让读者体会到网络世界的精彩与有趣,起一个“抛砖引玉”的作用,大家共同学习,共同进步。


2 作好学习的知识准备

         网络开发涉及到相当广泛的知识,要想顺利地掌握网络开发的技术,读者必须掌握好以下的知识:

         1)找一本《计算机网络》大学教材,了解计算机网络的相关原理,推荐潘爱民译的《计算机网络》(图1),你需要重点看看其中有关TCP/IP的部分,但并不需要弄清楚其中的每个细节。


1

         2)我写的《.NET 4.0面向对象编程漫谈》(图2)

2

          .NET是一个全面向对象的软件平台,没有面向对象基础,不要谈开发.NET网络应用程序。如果你还没有掌握C#编程语言,我这儿有一个精简版的入门教程《C#编程语言与面向对象基础教程》可供下载阅读,这个教程放在CSDN下载频道,已经有近1500名网友下载了,看来还是很受大家欢迎的。  :)

         看完它,再看《.NET 4.0面向对象编程漫谈》就不太难了(当然还是有难度的,我的这本书不是写给初学者看的,要有心理准备)。

         由于有纸面书做基础,本系列文章就将重点放在介绍网络开发上,不再重复介绍同样的内容。文章中会以“交叉链接”的方式点出相关技术点在书中的哪些章节有详细介绍,读者必须通过参看书的章节弄明白相关的技术。

点击查看下一部分

http://student.csdn.net/space.php?uid=57&do=blog&id=50722

原创粉丝点击