惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
NISL@THU
NISL@THU
E
Exploit-DB.com RSS Feed
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
K
Kaspersky official blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
S
Schneier on Security
G
GRAHAM CLULEY
The Hacker News
The Hacker News
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
爱范儿
爱范儿
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
S
Securelist
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
美团技术团队
F
Fortinet All Blogs
小众软件
小众软件
Recorded Future
Recorded Future
V
Visual Studio Blog
B
Blog RSS Feed
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
Latest news
Latest news
Spread Privacy
Spread Privacy
H
Heimdal Security Blog

博客园 - LiShijin.Net

即刻完成你的ASP.NET程序 ASP.NET 2.0,无刷新页面新境界! ASP.NET四种页面导航方式之比较与选择 十天学会ASP.net之第十天 - LiShijin.Net - 博客园 十天学会ASP.net之第九天 - LiShijin.Net - 博客园 十天学会ASP.net之第八天 - LiShijin.Net - 博客园 十天学会ASP.net之第七天 十天学会ASP.net之第六天 十天学会ASP.net之第五天 - LiShijin.Net - 博客园 用ASP.NET加密Cookie数据 Bill Gates 的大学毕业典礼演讲 asp.net图书请教 驻留多个 Web 应用程序 确保 ASP.NET 应用程序和 Web Services 的安全 检查表:保护 ASP.NET 的安全 构建安全的 ASP.NET 网页和控件 如何利用窗体身份验证创建 GenericPrincipal 对象 在asp.net中为Web用户控件添加属性和事件 WindowsForm登陆窗体的建立
.NET程序设计之四书五经
LiShijin.Net · 2004-08-10 · via 博客园 - LiShijin.Net

.NET程序设计之四书五经

引言

Microsoft® .NET Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。 — 微软公司 

可见,.NET之中最重要的技术首推 Web Services。大多数贴着.NET标签的技术都在某种程度上支持 Web Services。然而.NET绝非仅仅是 Web Services而已,在.NET技术发布之初,微软贴上.NET标签的还包括.NET框架(包括通用语言运行时CLR.NET框架类库两大部份)、Visual Studio.NET.NET My Services.NET企业服务器等。 

要想透彻理解.NET,就必需透彻理解Web services,同时还必须领会以上列举的每一种.NET技术的基本要素。很可惜,我个人期待的Eric Newcomer的著作Understanding Web Services: XML, WSDL, SOAP, and UDDI目前在国内还不得见。不过,无论你打算学习Windows Forms,还是ASP.NET(含Web Services),抑或其他.NET技术,我认为首先应该建立对.NET平台的通盘认识,然后从CLR开始,自底向上,深入学习.NET各专项知识。

直到今天David Chappell的《Understanding .NET: A Tutorial and Analysis》(《.NET大局观》,华中科技大学出版社)仍然是一本不错的.NET大局观读物。David善于将复杂的技术用简单而清晰的方式表达出来。尤其值得一提的是,这本书对于Web Services的清晰介绍,在别的书里很难看到。然而,有感于一些读者的误解,作为译者之一,在此我想重提侯捷先生的一句话:“读者基础”从来都是一个说不清楚、难以量化的东西。不妨试读一二,如果满意,它就适合你。

我时常光顾的一家书店的.NET图书总量,在很短的时间内就赶上了Java图书总量。林林总总,内容遍及各个领域,包括微软中间语言(Intermediate LanguageIL)、CLR.NET框架类库、.NET语言、Visual Studio .NET,以及像COM互操作、多线程这样的高级主题。限于篇幅,本文重点推介三本好书,不过,仅此三本已经涵盖了.NET平台的大半江山。

CLRWindows FormsASP.NET 

Jeffrey Richter, Applied Microsoft .NET Framework Programming
Microsoft .NET框架程序设计(英文版)》,机械工业出版社
Microsoft .NET框架程序设计(修订版)》,清华大学出版社
 

.NET框架主要包含两大块:其一是CLR,其二是类库,而CLR则是.NET框架中其他任何东西的基础。无论是要透彻理解像C#Visual Basic.NET这样的.NET语言,还是要全面把握ASP.NETADO.NETWindows Forms这样的.NET框架类库,你都必须对CLR有一个很好的理解。Richter的这本书就是CLR方面的权威著作,它详细地讲解了CLR的构造和工作机理,而.NET框架类库并非本书的重点。 

RichterWin32程序设计领域的权威技术作家,本书则奠定了他在.NET世界同样的地位。这本书对于程序集、装箱/拆箱、事件和委托、异常机制以及垃圾收集等关键主题的讲解准确而清晰,同时还给出了许多宝贵的建议和忠告。因此,尽管Visual Studio .NET这样的集成开发环境很容易上手,但为了有效地构建各类高效的应用程序,我推荐你在动手编写代码之前,认真阅读一下这本书。 

这本书对于完全的初学者有一定的难度,而对于有经验的程序员(包括Windows DNA程序员和Java程序员)来说,这本书正是他们梦寐以求的.NET读物。 

顺带一提,这本书的中译本先后出过两个版本。“修订版”的译者李建忠先生是我的朋友。因我虚长建忠几岁,在他决定接受此书修订邀请之前曾征求我的意见 — 很幸运 — 他没有理会我的建议,各位读者朋友今天才得以看到这个倾注着译者心血的译本。 

Charles Petzold, Programming Windows with C# (Core Reference)
Programming Windows with C# (Core Reference)(影印版)》,世界图书出版公司
Microsoft C# Windows 程序设计》(上、下册),北京大学出版社

这部著作的问世,证明Petzold 依然是Windows GUI程序设计领域的首席作家。本书专注于使用Windows Forms类库和C#语言编写传统的Windows桌面应用程序。是的,本书没有涉及CLRADO.NET以及ASP.NET等“更重要的”.NET技术。除了对C#语言浮光掠影的简介外,它没有越雷池半步,全神贯注于Windows Forms程序设计,深入解释了Windows Forms类库的方方面面。

尽管Visual Studio .NET提供了大量的可视化工具和向导,使我们得以快速地设计用户界面并享用其生成的代码框架,但Petzold 没有让Visual C# .NET自动生成代码,本书所有代码都是手工编写而成 — 这也是Petzold一贯的风格。不妨首先按照Petzold的方式,学会怎样编写你自己的代码,在理解了足够多的Windows Forms知识的基础上,再使用IDE来缩短你的项目开发周期。

渊博的领域知识,高超的写作技巧,清晰的写作风格,使得本书如此之厚,而又如此简洁、清晰。阅读本书,宛若和Windows程序设计大师面对面地交流,许多疑惑,豁然开朗。 

Windows Forms程序设计领域,我还要特别提一下Chris Sells的著作Windows Forms Programming in C#,原因倒不仅仅在于我是这本书中文版的领衔译者。 

我们知道,GUI应用程序开发方面的参考书往往会走向两个极端。一种是充斥着IDE截屏图的开发工具“快速入门”,我想各位读者对这种书不应该陌生。而上面提到的Petzold的著作则走向“另一个极端” — 它只字不提IDE提供的可视化的交互设计特性。我不否认Petzold的方式对于学习者来说行之有效 — 我本人就是Petzold著作的受益者。然而,你知道,作为一名开发实际.NET应用的程序员,我们几乎总是工作于像Visual C# .NET这样的IDE中,因此,我们必须能够游刃有余地运用IDE提供的各项功能,同时还必须洞悉IDE背后隐藏的Windows Forms及与之紧密相关的知识。Sells 的这本书能够让你心想事成。请耐心等候,好戏还在后头。 

Jeff Prosise, Programming Microsoft .NET
Microsoft .NET程序设计技术内幕》,清华大学出版社
 

和前面两本书一样,这也是一本“文不对题”的著作,中文版的书名则更加离谱。尽管这本书在内容上划分为三大块,对于Windows Forms等技术主题也花了一定的篇幅,但本书的出发点显然在于ASP.NET应用程序开发,它的大部分篇幅要么是讲述Web应用开发和Web Services技术,要么是讲述与此两者密切相关的东西。 

这并不奇怪。尽管.NET平台包含许多东西,但首先同时也是最重要的是,它的出发点是为了提供一种更好的编写以Internet为中心的应用的方式(请不妨再回顾一下.NET的定义)。可以说,Prosise准确地把握、解释和示范了.NET平台最主要的一大块内容。 

鉴于传统的ASP技术是如此流行,ASP.NET对开发人员的影响肯定要比 .NET框架类库的其他任何部份都要大。客观地说,在.NET世界,ASP.NET的地位要比Windows Forms的地位来得重要。 

顺带一提,Prosise的著作一向是一线程序员的钟爱。在程序员面前,他的作品没有什么架子,你可以一边翻着他的书,一边写程序。 

.NET语言 

CLR.NET语言定义了一套通用的语义,而不同的.NET语言则以不同的语法表达了这一语义。在.NET平台中,语言已经退居次席。和大多数.NET程序员一样,我选择的.NET语言是C#

如果你安装了VS.NET 2002VS.NET 2003中文版,请到VS.NET的安装目录下搜索一个名为C# Language Specification.doc的文档。其作者是Scott Wiltamuth Anders Hejlsberg。区别在于,VS.NET 2002携带的是英文版,而VS.NET 2003携带的则是中文版。你也可以访问MSDN主页(文后给出了具体链接)。这儿除了有C# Language Specification外,还有C# Programmer's Reference这样的非常有用的参考手册。

此外,如果你是一名完全的C#初学者,不妨留心一下PetzoldProgramming in the Key of C#: A Primer for Aspiring Programmers》。这是Petzold专为C#初学者编写的一本小书。我相信这本书早晚有一天会出中文版。本着Petzold的一贯水准,它不应该让你失望。

结语 

微软起初为许多玩意儿贴上了.NET标签,尽管当时其中一些既未使用.NET框架,也不直接支持.NET框架。这也导致了巨大的混乱和混淆,同时也为.NET招致了更多的非议和批评。我们应该还有印象,在.NET战略发布之后的很长时间内,仍然有许多人迷惑不解:到底什么是.NET?或者说,.NET到底是什么?

今天,多少有点讽刺意味的是,就在一些产品真的支持.NET技术之际,它们反而丢掉了.NET标签。比方说,内置了.NET框架的“Windows .NET Server”在发布前夕被重命名为Windows Server 2003.NET企业服务器亦在陆续支持.NET框架、成为货真价实的“.NET企业服务器”的同时,而被撕掉.NET标签。而所谓的“Office .NET”终究只是一个谣传,但Office 2003的确提供了对.NET实实在在的支持。比方说,Word 2003 文档和模板以及 Excel 2003 工作簿都可以运行所引用的 .NET 程序集中的代码,而这些 .NET 程序集代码的安全性则是由.NET框架而非WordExcel进行管理的。

但是,有两样东西的.NET标签贴得一直非常牢靠:一是.NET框架,二是Visual Studio .NET。我们可以感觉到,目前.NET标签基本上局限于使用在“技术范围”之内,这与其说是微软的妥协退步,倒不如说是一种理智的进步。“高科技”企业向来有拿技术名词糊弄外行的恶习,这也是市场营销人员的惯用伎俩(比如新模范马路上的手机广告可以是“内置Java技术……”)。也许微软意识到了诚实一点于人于己都有好处。

.NET标签的缩水并不意味着微软.NET技术战略发生了根本性的动摇。尽管像.NET My Services这样的技术没有像微软预想的那样成功,但.NET平台的核心技术却一直稳步向前发展,并业已取得无可辩驳的成功。回头看看一两年前包围着.NET的许多诬蔑和毁谤,如今早已不攻自破,事实再次证明微软将续写不败的神话。无论如何,和您一样,我希望.NET和它的竞争对手能够共同拥有美好的明天。

参考文献 

1.David Chappell, One more time: What exactly is .NET?, http://www.adtmag.com/article.asp?id=8003.
2.
Microsoft .NET homepage, http://www.microsoft.com/china/net/.
3.C# Language Specification
& C# Programmer's Reference, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cscon/html/vcoriCStartPage.asp.

荣耀
2004
3
南京师范大学

www.royaloo.com