内容简介 本书是专门为Java开发人员编写的一本.NET高级教程,全面介绍了Java开发人员开发.NET应用程序时需要了解和掌握的概念、方法和技巧。具体内容涉及到.NET平台体系结构、开发工具和语言语法、数据访问、动态Web应用程序、ASP.NET服务、Windows Forms和智能客户、企业组件、.NET Remoting,以及代码互操作等,并用大量实例和代码进行示范。本书适合于那些希望了解C#和.NET Framework更多特性并具有一定的Java编程经验的开发人员阅读。
前 言 Microsoft对.NET的首创性踌躇满志,深信其他用户将不得不购买其许可证,以此促成.NET在业界的霸主地位。毫无疑问,.NET Framework体现出与传统Microsoft模式的较大幅度的分离。.NET是完全面向对象的产品,为各种编程问题提供了统一的解决办法。顾名思义,.NET Framework提供的模式具有很高的网络识别功能,并对一系列技术提供了强有力的支持,如远程处理、Web服务、XML以及其他一些技术(如新推出的智能客户范例)。 Microsoft之所以调整并统一旗下的所有编程工具,其根本原因是它受到了Java的威胁。Java是一门非专用性语言,且受到很好的支持。该语言非常精巧,且完全面向对象。这些特性使Java在过去的数年内取得了比Visual Basic更大的成功。Bill及其Microsoft帝国不得不被动应战。 众所周知,Microsoft的竞争对手已经将Microsoft诉之以法,控告Microsoft非法利用其垄断地位,例如,为了阻止Java的发展,Microsoft控制了Windows中所包含的用来支持其他非标准的语言结构的JVM,而这种行径与Sun公司针对Java发布的General Public License(GPL,通用公共许可证)相违背。法庭最终同意Sun公司的控诉,责令Microsoft更新其当前版本的JVM(当时的版本是v1.4.1)。 因为Microsoft无法创建特定于Windows的Java语言,并且其营销策略又主要基于创建并维护对其操作系统的依赖性,所以Microsoft创建了它们自己的C#语言,以享用Java语言中众多的特性和优势。尽管Microsoft宣称C#派生于C++,而不是Java,但在这种新语言中,有很多内容更类似于Java,这也令Java开发人员处于领先位置,并使C#成为.NET模型的一个逻辑入口。 本书读者对象 本书适用于那些希望了解C#和.NET Framework更多特性的Java开发人员。C#有很多内容类似于Java,而本书将利用这一特性来介绍这门新的语言和新的编程模式。本书通过大量的示例突出显示了Java和C#之间的异同。无需安装任何程序包(如Visual Studio .NET)即可学习本书内容,您可以通过免费下载的命令行编译器和工具使用所展示的全部代码。 本书主要内容 本书首先将讲述一些重要的基础体系结构和语法问题,所有.NET开发人员在学习更高级的技术、成为专业开发人员之前,均需了解这些技术。我们将展示如何实现Windows桌面应用程序、Web应用程序、数据访问、远程处理、智能客户以及互操作性。 本书主要包含以下内容: 第1章—— 平台体系结构:首先简要介绍.NET Framework。在本章我们将查看构建Framework的各个组件,即公共语言运行库、类库和ASP.NET。此外,将探讨.NET的优势,并将其与J2EE相对比。 第2章—— 开发工具:虽然可以从Microsoft免费下载一些用于编译和运行所有.NET应用程序的工具,但是Microsoft还提供了一些功能强大的开发工具,它们可以大幅度提高工作效率。我们将在本章介绍这些工具的重要性。 第3章—— 语言语法:本章将讲述C#语言的核心内容。我们将对照Java语法做一些有用的对比,并创建一些简单的示例,以介绍C#的一些基础内容,如运算符、循环、方法和异常。最后将介绍C#的一些特有属性,如索引器、属性和委托。 第4章—— 数据访问:几乎每个应用程序都会用到保存在某种类型的数据存储器中的数据,这些数据存储器可能是固有的数据库,也可能是已格式化的文本文件,如XML。本章将介绍.NET提供的访问应用程序数据的一些技术,展示如何显示、编辑和删除数据。 第5章—— 动态Web应用程序:本章将介绍在.NET环境中创建Web应用程序的基础知识,讲述在创建Web UI时可供使用的、作为ASP.NET应用程序驱动的事件以及控件。我们将创建一些示例,以展示各种控件,包括常用的HTML控件以及更为复杂的.NET服务器控件。 第6章—— 高级动态Web应用程序:本章是对前一章内容的扩展,讲述了更高级的技术。将介绍如何在Web应用程序中实现绑定,从而可以快速地在Web页面中显示数据,并与之交互。本章还将介绍应用程序状态和会话状态,以便使应用程序可以在用户浏览不同网页期间保留重要的信息。此外,还将查看可以用来扩展标准Web控件、创建自定义控件的用户控件,完善本章的内容。 第7章—— ASP.NET Web服务:与Java环境不同的是,.NET平台更多地面向XML Web服务。本章是介绍Web相关内容的最后一章,在本章中,我们将查看.NET如何利用ASP.NET的内置支持,简化Web服务的开发工作。我们将创建并部署一个简单的示例,实现与后台数据库的交互,并展示如何利用命令行工具来生成与Web服务进行互操作的代码。 第8章—— Windows Forms和智能客户程序:.NET Framework的一个优势是,开发人员可以使用完全相同的语言和非常类似的技术进行Web程序开发和桌面程序开发。本章将通过Notepad创建一个功能完整的Windows桌面应用程序,并在命令行中编译该程序。随后,我们修改这个独立的桌面应用程序,将其转换为智能客户程序(Microsoft为内置有部署和更新功能的桌面应用程序指定的名称),并将Web应用程序的中央控制功能引入到该桌面应用程序中。 第9章—— 企业组件:J2EE环境有很多方面是针对大型分布式企业应用程序的,而.NET至少提供了与此相同的功能。本章将帮助您熟悉与企业应用程序开发人员相关的一些.NET特性和类。 第10章—— .NET Remoting:Java机制中提供了一项用于远程运行代码的RMI(Remote Method Invocation,远程方法调用)技术,.NET中也采用了相应的技术。这些技术允许我们无缝访问远程计算机中的代码,而这种功能构成了企业分布式解决方案的重要组成部分。开发人员要实现远程处理解决方案,需要了解众多的技术细节,本章将介绍所有相关内容。 第11章—— 与现有代码的互操作:在采用新的技术(如.NET)时,大多数企业都拥有一定数量的旧组件库。要顺利地实现技术转移,关键在于能够利用现有的代码。本章将介绍如何在.NET应用程序中访问Java和COM组件。 学习本书的条件 本书针对那些希望了解C#的Java开发人员。因此,我们尽量减少运行示例所需使用的工具。大部分代码都可以通过.NET SDK(可免费下载)提供的命令行编译程序和工具运行。您可以在MSDN下载区左侧的导航栏中单击Software Development Kits选项下的Microsoft .NET Framework SDK,获取该SDK。该下载区的网址如下: 要运行该SDK,您必须在计算机中安装有Windows NT、2000或XP。 对于Web应用程序(包括Web服务)而言,在安装.NET Framework之前,需要在Windows 2000或XP中安装IIS。IIS是Windows 2000和XP Professional中的一个可选组件,可在安装完操作系统之后独立安装。如果需要,可以通过Windows控制面板的添加/删除程序对话框安装IIS。 用户支持 我们一贯重视读者的意见,并想知道每位读者对本书的看法,包括读者喜欢和不喜欢的内容,以及读者希望我们下一次完善的地方。您可以通过发送电子邮件(地址为feedback@)向我们反馈意见。请确保反馈信息提到本书的书名。 1. 如何下载本书的示例代码 当您访问Wrox公司站点(地址为/)时,通过Find a Book工具即可方便地定位需要的书目。然后,单击本书详细信息页面中的Download Code超链接,或者Wrox主页顶端的DOWNLOAD CODE超链接,并在文本框中选中本书,就可以下载相应的示例代码。 在下载本书代码之前,您可以提供您的用户名和当前的电子邮件地址,以注册该书。该步骤完全是可选操作,以便我们在您下载代码出现问题或以后更新代码下载数据包时,方便与您联系。Wrox公司确保在注册期间,您的详细信息不会泄漏给任何第三方。关于隐私策略的详细信息,请单击下载页面上的相关链接查看。 从我们的站点上下载的文件都是使用WinZip压缩过的文档。保存文件到本地磁盘上的文件夹中后,需要使用一个解压缩程序(例如WinZip或PKUnzip)来解压缩文件。在解压缩文件时,通常将代码解压缩到每一章所在的文件夹中。在解压缩的过程中,应确保解压缩程序(WinZip、PKUnzip或其他)被设置为使用原有文件夹名。 2. 勘误表 我们已经尽最大努力确保本书中的文本和代码没有错误,但是错误仍然在所难免。如果您发现本书存在错误,例如拼写错误或不正确的代码段,请反馈信息给我们,我们将不胜感激。勘误表的发布可以节约其他读者学习本书的时间,而且能够帮助我们提供更高质量的信息。您的反馈信息将被检查,如果正确,将被粘贴到本书的勘误页面上,或者在本书的后续版本中使用。 要在我们的站点上找到勘误表,请访问/,并通过Find a Book搜索框定位本书页面。然后,单击View Errata超链接即可看见本书最新的勘误列表。该链接位于本书的详细页面中的封面图解下面。 3. E-mail支持 如果您希望直接向详细了解本书的专家咨询本书中的问题,可以发送电子邮件到support@,要求在邮件的主题栏中带上本书的书名和ISBN(国际标准图书编号)的后4位数字。一封典型的电子邮件应包括下面的内容: 在主题栏中必须有本书的书名、ISBN的后4位数字和问题所在的页码。 邮件正文应包括读者的名字、联系信息和问题。 我们不会返回给您无用邮件,因为我们仅仅需要有用的详细资料,以便可节约您和我们的时间。当您发送一个电子邮件信息时,它将经过下面一系列支持: 用户支持:首先,您的信息将被递送到我们的用户支持人员手中,并由他们阅读。他们手中有最被频繁提到的问题的文档资料,能够立即回答有关本书或者Web站点的任何常见问题。 编辑支持:接着,一些有深度的问题将被送到对本书负责的技术编辑手中,他们在程序设计语言或者特定的产品上有着丰富的经验,能够回答相关主题的详细技术问题。 作者支持:最后,如果编辑不能回答您的问题(这种情况很少发生),他们将请求本书的作者。我们将尽量保护作者免受干扰,以便不影响其写作。然而,我们也非常高兴转寄给他们一些特殊的问题。所有Wrox公司的作者都为他们的书提供技术支持。作为回应,他们将发送电子邮件给用户和编辑,进而使所有的读者受益。 Wrox公司的支持过程仅仅对那些与我们出版的书目内容直接相关的问题提供支持,对于超出常规书目支持的问题,您可以从/论坛的公共列表中获得支持信息。 4. 站点 为了便于和作者及同行讨论,请加入到P2P站点的邮件列表,而且我们独特的系统除了提供了一对一的邮件支持系统之外,还通过邮件列表,论坛,新闻组等联系方式进一步体现了Programmer to ProgrommerTM(程序员为程序员而著)的理念。如果您向P2P发送一个问题,应该相信一定会得到登录邮件列表的Wrox公司作者和其他相关专家的帮助。无论您是在阅读本书,还是在开发自己的应用程序,都可以在站点中找到许多对自己有所帮助的邮件列表。 按照下面的步骤可以访阅邮件列表: (1) 登录/站点。 (2) 从左边的主菜单栏选择适当的类别。 (3) 单击希望加入的邮件列表。 (4) 按照订阅说明填写自己的邮件地址和密码。 (5) 回复您收到的确认邮件。 (6) 使用订阅管理程序加入更多的邮件列表并设置自己的邮件首选项。 本系统提供最佳支持的原因 您可以加入整个邮件列表,也可以只接收每周的邮件摘要。如果您没有时间和工具来接收邮件列表,可以直接查找我们的在线文档。独特的Lyris系统可以将一些没有用的垃圾邮件删除,并保护您的电子邮件地址不被侵扰。当存在加入和离开列表,以及任何有关列表的其他常见问题时,请发送邮件到listsupport@。