《C#高级编程(第9版)——C# 5.0 & .NET 4.5.1》试读试评论

事先声明:写这篇博客的直接目的是参加《那些年我们追过的Wrox精品红皮计算机图书》有奖活动,功利性很强:),但其实也有近期想提高编程知识和技能的缘由。


    首先,一看到书名我就估计到了这应该是一本很厚的书,因为我之前也买过一本红皮的高级编程——《ASP.NET 3.5 SP1 高级编程(第6版)》,我的这本是1500页的(这本书有这么厚的主要原因是它同时给出了C#和VB.NET的示例代码,有点不符合我国的国情)。而目录中显示这本《C#高级编程(第9版)——C# 5.0 & .NET 4.5.1》也是1500页。关于厚书,我想很多程序员应该是出于一种“宝典情结”而喜欢的,而这本《C#高级编程》就像武功秘笈《葵花宝典》,当然,我的意思不是说学C#得自宫,而是因为我觉得它算得上博大精深,也能在掌握后用C#快速构建应用,正好符合《葵花宝典》中的武功以“快”为主的特点。


    好吧,不扯了,下面就这本书的具体试读内容作下简评。


    译者序:

    对译者分享的关于Web窗体(Web Forms)和MVC的工作心得很有同感,另外译者对C#的简介也很到位。


    前言:

    对.NET的优点的总结很精炼,例如,对于XML的描述放到“高效的数据访问”下,并且用“处理从非 Windows 平台导入或导出的数据”一句简洁的描述为读者暗示了XML的一个主要用途,也说明了作者将其归类到“高效的数据访问”优点下的理由。对.NET Framework历次更新内容的描述也是这样,在读完所有试读内容后,可感受到这样的精炼总结贯穿全书。我觉得作者(当然,这也有译者的功劳)这种简练的语言很合我的胃口,其实想象一下也知道,对于一本包含这么多内容的书这似乎是必须的,不然这本书可能就远不止1500页了。

    “C#的优点”一段很有意思,作者开头一句就总结了微软开发C#(鉴于C#和.NET的紧密关系,对于C#的观点几乎也总是包括.NET的)的目标——基于Windows的开发,没有UNIX/Linux,也不只是Web,这是作者基于事实的总结(虽然有很多人坚称.NET是跨平台的(那是Mono),另一些人说.NET只适合于Web)。而看了作者对VB和VC的评论可见其对整个微软技术栈的熟悉,这也使我相信只有在这样高度的人才能完成这样的“宝典”。另外从这一段可以看出作者并不反对说C#得益于Java的观点,但他更倾向于认为C#是微软技术栈自然升级的结果,这是不是可以说作者是微软的拥护者(废话,不然还写.NET的书吗)。

    “C#学习起来要比 C++容易得多,与 Java 的难度相当”这个我觉得也是对初学者很有价值的总结。

    对 C#的两个局限性的说明是作者客观公正的评判,这也说作者是很负责的,不是极端分子。但是其中“时间急迫”一词照我的理解应该是翻译为“实时”更合适,因为我觉得作者不是想说“工期紧”。

   

    目录:

    这本书的内容的章节划分很有特色,很经典,尤其是总的六大部分的划分,很有高度。

    从目录可以看出这本书的博大精深,囊括了C#的方方面面和目前.NET企业开发涉及的多种技术。但是我没看到WinForms,是不是这不算高级编程了,不过这也不遗憾,因为我们有了WPF和Windows Store App,而且讲WinForms的书国内满大街都是。


    第一章 .NET 体系结构:

    “1.1    C#与.NET 的关系”中深刻的描述是我第一次读到,虽然也基本知道了C#与.NET 的关系很紧密,但还是能从作者的总结中获得新的认识,如“C#的体系结构和方法论反映了.NET 基础方法论。”,所以掌握了C#再学习其它.NET语言的必要性就少了很多了。

    “1.2    公共语言运行库”一节对.NET为什么要使用中间语言(IL)作了详细的说明,但作者在言语中也涵蓄的对微软的政策表达了点不满:“.NET 的平台无关性目前只是停留在理论范畴”;“Microsoft 认为这会提高性能”;“目前 Visual Basic 和 C#之间的区别很小,主要是使用花括号还是 END 语句的个人喜好问题。”。作者对托管C++和F#也作了很简要的介绍(对F#的介绍中说其“不是面向对象的”可能有点不对,因为F#与C#一样也完整地支持面象对象,还支持泛型编程,因为我才刚看了一本介绍F#的书(《F#语言程序设计》也是清华大学出版社的,书不错,虽然是国人编著的),所以很确定这点)。

    “1.3    中间语言”对IL的特征的介绍非常全面,这些知识在开发中可能并没有什么直接作用,但对却可以帮助理解.NET的很多概念和机制,如对“语言互操作性”的定义和对上一代技术COM在此方面的局限的解说正好可以帮助我们理解微软创建.NET的这一重要的技术方面的原因,对强数据类型化的说明中也解释了为什么.NET中不能使用指针。另外这一段中还分布有不少COM的知识,这是不是正好印证了.NET是COM的大升级的说法。

    对“1.4    程序集”下为什么有“1.4.4    并行编程”和“1.4.5    异步编程”不是很理解,这是不是编辑错误导致的,依照这一章的小节划分我觉得应该是和程序集同一层次,也就是应该是1.5和1.6小节才对。

    “1.5    .NET Framework 类”对BCL相对于重要的Win32 API的优点做了介绍。

    “1.7    用 C#创建.NET 应用程序”介绍了使用.NET可以创建的一些应用,其中还总结了ASP.NET MVC相对于ASP.NET WebForms的优点——“使得编写单元测试变得简单,
并且让开发人员能够充分利用 HTML5 和 JavaScript 库。”,这也是掌握ASP.NET MVC变得越来越重要的原因。在WPF介绍中也说明了XAML的重要性——“声明性编程是编程业的趋势”,LINQ也属于声明性编程。

    “1.8    C#在.NET 企业体系结构中的作用” 从这里可以看出这本书主要侧重的就是企业应用使用的技术,而这个也应该是多数人学习C#的原因吧(包括我)。

    值得一提的是作者还在最后的小结中提供了一个简单的反映本章介绍的重要概念的图,这有助于读者回忆本章的重要内容。


    第 2 章    核心 C#:

    这一章主要是对C#语言的最基本的部分(可以称为过程式的部分)的介绍,这部分没有多少好说的,因为每个C#初学者最先学习的都是这些。值类型与引用类型的基本区别、字符串的不可变性、枚举的本质,这些基本要点都有清楚的描述。需要说明的是对C#的许多介绍是以C++作对照的,如对引用、整型的长度、bool类型与整型的关系、switch语句、using语句、预处理器指令的介绍都有与C++的对应物做简要说明。另外这章还包括了“C#编程规则”一节,其中介绍的C#编程应遵循的基本的命名规范和属性设计规范都是很有意义的指导。


    试读的内容也就是这最前面的两章,本人读下来的总体感觉是知识全面,语言精练,总结精辟,这些优点不正是我们选择书籍而不是博客或在线文档的理由吗。总之,这本书值得有一定C风格语系语言(C/C++,Java或JavaScript等)基础的读者入手,作为全面学习C#/.NET开发的参考工具。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值