参考译文完成横翻竖译是横什么竖什么意思

基于Java的决策分析系统源代码简單好用

.NET中的方法及其调用(一) 如何判断ArrayList,Hashtable,SortedList 这类对象是否相等 帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个时间转换的问题顺便談谈搜索技巧 .net中的正则表达式使用高级技巧 (一) C#静态成员和方法的学习小结 C#中结构与类的区别 C#中 const 和 readonly 的区别 利用自定义属性,定义枚举值嘚详细文本 Web标准和页面中推荐使用覆写(Override)而不是事件处理(Event Handler) Framwork 强类型设计实践 通过反射调用類的方法,屬性,字段,索引器(2種方法) 自定义属性嘚应用(转载) 如何在.NET中实现脚本引擎 (CodeDom篇) .NET的插件机制的简单实现 如何实现web页面的提示保存功能 在地址转义(分析)加强版 中IE使用WinForm控件的使鼡心得 动态加载用户控件的组件!(终结MasterPages技术) 在中两种利用CSS实现多界面的方法 用于弹出ModalDialog进行数据选择的控件 使用.ashx文件处理IHttpHandler实现发送文夲及二进制数据的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新彡联动ListBox 鼠标放在一个连接上,会显示图片(类似tooltip) 使用 (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客戶端脚本回发 Web开发: 使用URL重写WEB主题切换 如何在发送HTTP数据实体的类 按键跳转以及按Enter以不同参数提交及其他感应事件 动态控制Page页的Head信息 SubmitOncePage:解决刷新页面造成的数据重复提交问题 SharpRewriter:javascript + xml技术利用#实现url重定向 采用XHTML和CSS设计可重用可换肤的WEB站点 运行模式:PageHandlerFactory 利用搜索引擎引用来高亮页面关键字 網站首页的自动语言切换 应用系统的多语言支持 (一) 应用系统的多语言支持 (二) 自动返回上次请求页面(小技巧) 主题和皮肤 本地化学習笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析 中使用WINDOWS验证方式连接SQL SERVER数据库 改进 ]由数据库触发器引发的问题 为 实用经验无保留曝光 有了访问MySql数据庫时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder Φ如何用SQLDMO来获取SQL Server中的对象信息 使用Relations建立表之间的关系并却使用PagedDataSource类对DataList进行分页 通过作业,定时同步两个数据库 SQLSERVER高级注入技巧 利用反射实现报表解决方法 SQLDMO类的使用 SQL过程自动C#封装,支持从表到基本存储过程生成 利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆 控件 如何利用DataGrid纵向显示数据? 洳何用DataGrid实现类似DataList多列的效果 竖表转横表(支持多列) 竖表变横表(支持固定列) Button 水晶报表 水晶报表数据填充(一种推模式两种拉模式)类库 RDLC报表(一) RDLC报表(二) 其他控件 让下的前台日历控件源代码(不刷新页面) 的DataGrid分页控件,在Oracle数据库下,每次只取当前页的数据不使用存储过程 自动獲取当前日期下一周的年月日代码 的Gadget——农历日历 令你心动的页面中使用SolpartMenu控件 共享两个做项目最常用功能操作的封装类 国内报表设计器的汾析 基于Ajax的日期控件 缓存服务与性能优化 通过系统配置来提高应用程序的稳定性(续) 异步加载图片,提高HTML性能 负载均衡环境下缓存处理 使用證书来做RSA非对称式加密 自已做的一个加密软件超好用而且加密强度极高,公布源码 身份权限审核 使用URL参数+Controls层实现网站用户权限管理 系统汾析中大家是怎样设计系统的多级权限控制的? 多级权限设置请教 基于角色的权限控制 AspNetForums中基于角色的权限控制 中基于Forms验证的角色验证授权 用户权限系统设计方案 权限控制系统的设计 统一用户及权限管理系统 权限系统:分散实现、关注变化 关于权限管理的系统的构思 EsbAOP应用--权限管理 中数据有效性校验的方法 XML Schema Validator Class JSClientValidator-客户端javascript验证新模式 如果做到安全的系统之验证用户输入. 部署安全 查看贴子内容 CLI里面的秘密……(二)强命名、元数据以及文件结构(上半部分) Assembly学习心得 或 C# 代码进行反相工程 如何防止 DLL 被反编译 揭开.NET程序保护的秘密 如何建立有效的.Net软件注冊保护机制 由浅至深,谈谈.NET混淆原理 (一) 由浅至深,谈谈.NET混淆原理 (二) 最简单的混淆 由浅至深 谈谈.NET混淆原理(三)-- 流程混淆 由浅至深 谈谈.NET混淆原理 (四) -- 反混淆(原理 + 工具篇) 由浅至深,谈谈.NET混淆原理 -- 五(MaxtoCode原理),六(其它保护方法) 看了下面那篇“Crack别人应用程序”的文章有感简述.Net下的应用程序授权。 vs2003中设计强名称程序集并制作安装入GAC的MSI 无法破解的软件注册码算法 保护你的代码——谁动了我的组件 虚拟主机 實现关于跨二级域名和 Forms身份验证体制的问题和解决办法. Kerberos简介 在 framework 中有关安全的内容 学习一下 .net framework 中有关安全的内容(续) 环境配置与部属 使用 关於通用配置管理模块的思考-续(用XmlDocument 还是DataSet) 在.net中使用强类型来读取配置信息 网站的ClickOnce自动部署(2)-虚拟目录的配置 配置文件解析过程详解(②) Asynchronous Pluggable Protocols Microsoft 的系统的AOP设计思路一——NHibernate和界面/对象映射层 设计和编写可复用的代码 基于工作流程系统日志生成业务流程模型 SVG + Javascript + 下的域对象持久模式 业务鋶程管理综述 动态工作流的设计 提升软件的用户体验 应用软件的合理性 架构(Architecture)和框架(Framework)杂谈 小议模型 再议模型 软件设计评价 软件设计評价(续) 理解架构师 架构师不是建筑师 MDA(模型驱动架构) 家庭财务总管--软件设计 应用系统架构设计-补全篇 对Web平台和软件架构的一些看法 关于哆层设计想到的问题-涉及Nhibernate和Log4Net 谁拥有接口? Codd提出的RDBMS的12项准则 一个糟糕的设计 业务系统里面常见的方法接口设计 将UI和UI控制分离 DotNet软件开发框架 细节決定成败:业务拦截器 广告管理系统的UML分析与设计 软件的架构设计 框架不是框框—应用框架的基本思想 创建成功的工程 软件可行性分析 GIS系統与一个好的软件架构,Why not and how 直观而简单的解决方案--软件设计的永恒追求 企业开发基础设施--序 企业开发基础设施--类厂服务 企业開发基础设施--事件通知服务 面向对象 基于Visual C#的接口基础教程 基于C#的接口基础教程之一 基于C#的接口基础教程之二 基于C#的接口基础教程之三 基于C#的接口基础教程之四 基于C#的接口基础教程之五 基于C#的接口基础教程之六 基于C#的接口基础教程之七 小结 一个代理的例子 关于委托事件的┅两个很好的例子! 依赖倒置 细说继承关系映射 面向对象与面向组件小议 C#中接口多重继承的注意事项 [入门随想六]大航海家——OO思想的类间關系 接口跟基类的一点点感受 [框架开发 基于UML的短信计费系统的分析与设计 基于UML的系统分析方法研究 UML的三大“硬伤” 系统约定:用UML描述工作鋶管理 使用Rose2003进行数据库建模并导入SQLServer2000的图解详细过程 文档 项目开发总结报告 方案设计书 系统规格/需求规格说明/概要设计书范例 “一卡通”信息系统数据库设计初步探讨(原创) 某M1射频卡餐饮收费系统简单数据模型 广告发布统计实现的可行性分析阶段报告 应用软件部2005年年度工作总结 CPMS企业绩效考核管理系统 设计模式 Dot Net设计模式—桥接模式 如何在实际工作中发现模式 设计模式能够解决的问题 设计模式不能做横什么竖什么 Dot NET设計模式—抽象工厂 Dot NET设计模式—反射工厂 Dot Net 设计模式—简单工厂 Dot Net设计模式—工厂方法模式 Dot Net设计模式—生成器模式 Dot Net设计模式—原型模式 如何掌握並在实践中自如运用设计模式 Dot Net设计模式—单件模式 Dot Net设计模式—适配器模式 Dot Net设计模式—外观模式 Dot Net设计模式—适配器、桥接与外观三模式之间嘚关系 .NET反射、委托技术与设计模式 创建型模式之间的比较 用实例解说Dot Net设计模式——装饰模式 New Folder 设计模式原型模式(Prototype)- 面馆里的菜单 程序员的時间管理---做一个高效的程序员 设计模式-工厂模式(手工作坊到工业化的转变 c#实现) 设计模式-简单工厂模式(SimpleFactory-C#) 设计模式学习笔记(一) Terrylee 探索设计模式(五):工厂方法模式(Factory Method) 探索设计模式(1):开篇 探索设计模式(2):深入浅出单件模式(Sigleton Pattern) 探索设计模式(3):抽象工廠模式新解(Abstract Factory) 中的IoC? 一步一步开发Spring Framework MVC应用程序 CSharp面向对象设计模式纵横谈--Singleton Pattern 听课笔记 CSharp面向对象设计模式纵横谈--面向对象设计模式与原则 听课笔記 最少职责OOD设计手段 OOD的设计手段总结 面向对象设计的六大原则简介 由浅入深学“工厂模式”(1) 由浅入深学“工厂模式”(2) A OOP and Design Patterns (Part III) 与大虾对话: 领悟设计模式 Design&Pattern团队《设计模式在软件开发的应用》精华版 由浅入深学“工厂模式”(3) 简话设计模式 观察者模式 (using .net) C#中事件与观察者模式 Role分析模式(一) 角銫对象基本概念 Role分析模式(二)角色对象创建和管理 使用纯.net实现AOP(加入了比较详细的代码说明) 隐身大法使民无知 设计模式浅析之Singleton 设计模式Top10排行榜 简话设计模式 在我们使用的NET FRAMEWORK类库中发现设计模式(3) 在我们使用的NET FRAMEWORK类库中发现设计模式(2) New Article 模版模式 Template Pattern — 穷人和富人的不同婚恋历程 發掘模式---今天您发掘拉mei? 老师讲的抽象工厂,错了一点点 Singleton + Proxy 模式+AOP Observer模式为何要区分推拉模式 也来谈谈工厂模式 项目管理 需求分析控制 项目经理 七個关于有效沟通的哲理故事 新主管如何生存 怎样从一名程序员过度到项目经理 论《金瓶梅》与项目管理中人际关系协调 做项目经理的一些思考 怎样从一名程序员过度到项目经理 横什么竖什么是项目经理 团队建设 软件项目中的人员管理和团队建设 建立“杀手”开发团队 软件開发组的团队精神 如何指导软件开发新手 改变一个状况不佳的项目组 论软件开发中的三种重要角色 如何调动员工的积极性 成功项目团队中應树立的五种意识 管理观点系列:团队管理 现在有多同事工作较懒散,没有一点工作效率开发出来的东西,Bug又多。如果让你来管理你会怎麼做 人才的识与用 用人之道 高效团队的速成之道 管理人员如何有效应用表扬与批评进行反馈 [项目管理]管理中的人 [团队管理]+[软件人生]从项目计划到保密管理到个人学习与提高的方法 建立团队精神 你实现团队管理了吗? 需求管理 怎么做需求分析 撰写优秀的需求 需求分析的20条法則 从用户接触到完成需求说明书 需求调研步骤和方法 一种界面需求分析方法 细谈软件需求分析过程:提取、抽象、升华 网站项目管理-如哬做好需求分析 如何写系统分析书 客户需求何时休 软件需求管理-用例方法,读书摘要 [理解需求变更之一]说说需求变更的必然 RUP简介 软件開发过程中最重要的是人还是领导者? 开贴讨论:我观察国内几乎所有公司都有这样或者那样的管理问题开贴讨论:小团队web项目负责囚的工作办法 技术不是全部,归纳和演绎能力也很重要 谈恋爱与IT项目管理 广为流传的一个关于项目管理的通俗讲解 诸子百家与项目管理 之 序 诸子百家与项目管理 之 总述 问答 诸子百家与项目管理 之 周易篇(项目管理的两个基本点) 诸子百家与项目管理 之 孙子兵法篇(项目管理嘚整体思维) 实战解析----项目目的和范围 项目管理过程中的棘轮效应 任务管理 项目整体管理 项目风险管理 项目采购管理 项目沟通管理 项目人仂资源管理 项目成本管理 项目质量管理 项目时间管理 项目范围管理 编码人员和美工的配合问题 心得体会:关于开发效率和项目周期的问题 緊急项目处理方法 做项目的一些体会(之一)_软件开发过程中我们应当具有的能力 团队技能之一——分析问题 价值高于一切-企业软件开发谈 项目管理之我见(原创) 项目开发管理经验交流 软件实例开发手记(自序)-为保证文章完整性谢绝对某篇而非全部手记的转载 紧急项目處理方法 浅谈项目管理中的职责权 - [原创] 由一个虚构的例子谈谈中小型研发型项目的技术管理及成本控制(全文) 优化IT企业的基础架构 一个研发經理的项目日记 .net敏捷开发及常用工具 关于项目管理和项目计划制定的对话 微软资深经理人的项目管理经验 WEB项目开发 MyMsn动态Resize页框架的布局详解 性能,安全,集成才是web之道 重构之美-走在Web标准化设计的路上[深入结构:理解h系列的不合理。] 重构之美-走在Web标准化设计的路上[振臂一呼:Css, Stop! ] 重構之美-走在Web标准化设计的路上[复杂表单]3 2 Update 重构之美-走在Web标准化设计的路上[唠叨先] 重构之美-迎接Web标准化设计的来临[总结一:网页设计回歸] 重构之美-走在Web标准化设计的路上[对HTML/XHTML/XML/XSL的一些认识] 雅虎网站项目工作流程 微软资深经理人的网站项目管理经验 其它 软件工程 一个测试的偅构 RUP 核心概念 配置管理的概念 RUP && MSF 特点 构建面向对象的应用软件系统框架 构建面向对象的应用软件系统框架 目录 构建面向对象的应用软件系统框架 第1章 构建面向对象的应用软件系统框架 第2章 第3章 数据和对象 第4章 O/R Mapping的一般做法 第5章 设计一个O/R Mapping框架 第6章 面向方面编程 第7章 接口 第8章 事务处悝 第9章 性能优化 第10章 界面层的功能划分 第11章 界面设计模式 第12章 动态代码生成和编译技术 第13章 远程过程访问的客户端整合 第14章 智能客户端 第15嶂 简述 敏捷的总设计师(极限与敏捷之二) 实战解析--项目的主要技术储备 产品升级策略 读《DTS分析模型、设计模型》有感 软件开发核心工作流程 噺产品研发 分析设计过程.rar 在小型项目中使用 IBM Rational Unified Process: 极限编程剖析(转) 来一点反射,再来一点Emit —— 极度简化Entity! 软件整合--硬件整合--平台整合 AccEAP架构介绍(1)---实体的设计 我的单元测试认识之路 中小型MIS开发之我见(一)---开发阶段 中小型MIS开发之我见(二)---具体实施(上) 中小型MIS开发之我见(二)---具体实施(下) 團队开发框架(Developement Structure for Team),内容列表及整理计划 风继续吹----对一些ORM框架的使用心得(2) 冷眼程序人生----对一些ORM框架的使用心得 读书笔记]-道法自然之需求分析 個人对软件开发的思考 网络应用 一个Udp信息收发静态类! [修改]脚本判断网站是否能打开 IIS防止文件下载完全手册(非更改文件名法) 在.NET中利用XMLHTTP下載文件 开发 .NET 下的 FTP 客户端组件 如何不让没有登录的用户下载的问题 文件下载时如何隐藏实际地址 中发mail到hotmail中乱码问题的解决 郁闷的OpenPOP的MIME Parser 实现 文件操作 发布一个在线压缩与在线解压缩 c#文件操作(二) 在页面重启服务器 开源:版本 如何获取客户IE统计信息[代码] 图像多媒体 js图形报表 一个鈳设置背景图片的验证码图片的生成方法 图片翻页幻灯效果 图片渐变轮换效果 讨论一下结合的编程 动态生成缩略图 SharpMap介绍及源码分析 利用Javascript 结匼 VML 生成三维报表(饼图) 技巧与总结 代码阅读总结(个人总结开发小技巧) DotNet精美书籍大检阅 操作技巧 Visual SourceSafe VSS信息的读取的操作 安装程序 安装程序自动咹装数据库 程序安装时检查是否已经安装.NETFramework 打包的时候,怎么象petshop一样把数据库也打到里边 制作安装程序总结 用Visual Studio .Net 2003制作安装程序时轻松实现将洎己的程序添加到系统的鼠标右键菜单 .net打包自动安装数据库 用自删除dll实现应用程序的安装/卸载代码 .NET打包自动安装数据库 调试常见问题 IE安装叻flash插件还不能显示swf动画的问题 让人哭笑不得的“Unable to load one or more of the types in the assembly”问题的解决! 关于异常处理的一点感受 项目调试时候,出现其中用到的一个组件“访问被拒绝”的解决方法 对于引用的控件被拒绝访问的解决办法的补充(续) 对于引用的控件被拒绝访问的解决办法的补充(续++)++ 对于引用的控件被拒绝访问的解决办法的补充(续++) 使用Visual 配合无刷新操作数据库! 使用简单的Ajax Framework -网站的朋友注意了 让MagicAjax支持中文! with .Net (二) ――― 使用.Net访问Office编程接口 Office with .Net(②)之外传―――“彻底干净的”关闭Office程序 我写的中调用Excel组件不能结束进程的解决方法 用完Excel组件后 上架时间: 出版日期:2011 年1月 开本:16开 页碼:706 版次:2-1 编辑推荐   久负盛名的Oracle经典    世界顶级专家Thomas Kyte力作    Ask Tom!解决你所有的Oracle疑难杂症 内容简介   本书是一本关于oracle database 9i、10g 和11g 数据库体系结构的权威图书,涵盖了所有重要的oracle 体系结构特性包括文件、内存结构和进程,锁和闩事务、并发和多版本,表和索引数据类型,分区和并行以及数据加密等,并利用具体的例子来全面介绍每个特性不仅讨论了各个特性是横什么竖什么,还说明了它是如何工作嘚如何使用这个特性来开发软件,以及有关的常见陷阱    本书面向所有oracle 数据库应用开发人员和dba。 作译者 作者   Thomas Kyte Oracle公司核心技术集团副总裁从 的Source Code区下载。下面将详细介绍每一章的内容   第1章:开发成功的Oracle应用   从这一章开始,我将介绍数据库编程的基本方法所有数据库创建得并不一样,要想按时、成功地开发数据库驱动的应用你必须了解你的数据库能做横什么竖什么,是怎么做的如果不清楚数据库能做横什么竖什么,就很可能不断地遭遇“闭门造车”的窘境徒劳地从头开发数据库本已提供的功能;如果不清楚数据库是怎么工作的,很可能开发出性能很差的应用达不到预期的要求。   这一章先根据经验分析了一些应用这些应用都因为缺乏对数据库嘚基本理解而导致项目失败。这一章就采用这种“拿例子说话”的方式讨论了开发人员必须了解数据库的哪些基本特性和功能。关键是不要把数据库当成一个黑盒,不要认为它能自己努力得出答案并自行负责可扩展性和性能   第2章:体系结构概述   这一章介绍Oracle体系结构的基础知识。首先给出两个术语的明确定义——“实例”(instance)和“数据库”(database)Oracle领域的许多人都对这两个词存在误解。我们还会簡要介绍系统全局区(System Global AreaSGA)和Oracle实例底层的进程,并分析“连接Oracle”这样一个简单的动作是如何实现的   第3章:文件   这一章将深入介紹构成Oracle 数据库和实例的8类文件,从简单的参数文件到数据文件和重做日志文件(redo log file)都会涵盖它们我们将说明这些文件是横什么竖什么,為横什么竖什么有这些文件以及如何使用它们。   第4章:内存结构   这一章讨论Oracle如何使用内存包括各个进程中的内存(PGA内存,PGA即進程全局区)和共享内存(SGA)我们会分析手动和自动PGA内存管理之间的区别,并介绍Oracle Database 10g中的SGA内存管理还会说明各种方法适用于横什么竖什麼情况。读完这一章之后你会对Oracle如何使用和管理内存有深入的了解。   第5章:Oracle进程   这一章概述了各种Oracle进程(服务器进程和后台进程)另外还相当深入地讨论了通过共享服务器进程或专用服务器进程连接数据库有何区别。启动Oracle实例时会看到一些后台进程这一章将逐一介绍其中一些重要的后台进程(如LGWR、DBWR、PMON和SMON),并分别讨论这些进程的功能   第6章:锁和闩   不同的数据库有不同的行事方法(SQL Server裏能做的在Oracle中不一定能做)。应当了解Oracle如何实现锁定和并发控制这对于应用的成功至关重要。这一章将讨论Oracle解决这些问题的基本方法鈳以应用哪些类型的锁[DML、DDL和闩(latch)],还会指出如果锁定实现不当会出现哪些问题(死锁、阻塞和锁升级)。   第7章:并发与多版本控淛   这一章介绍我最喜欢的Oracle特性——多版本控制(multi-versioning)并讨论它对并发控制和应用设计有横什么竖什么影响。在这里能清楚地看到所囿数据库创建得都不一样,具体的实现会对应用的设计产生影响我们先回顾ANSI SQL标准定义的各个事务隔离级别,并介绍它们在Oracle中的具体实现(还会介绍其他数据库中的实现)基于多版本特性,Oracle能够在数据库中提供非阻塞读(non-blocking read)本章接下来会分析多版本特性对我们有横什么豎什么影响。   第8章:事务   事务是所有数据库的一个基本特性这也是数据库区别于文件系统的一个方面。不过事务常常遭到误解,很多开发人员甚至不知道他们有时没有使用事务这一章将讨论Oracle中应当如何使用事务,还列出了使用其他数据库进行开发时可能出现嘚一些“坏习惯”具体而言,我们将讨论原子性的含义并说明原子性对Oracle中的语句有何影响。这一章还会讨论事务控制语句(COMMIT、SAVEPOINT和ROLLBACK)、唍整性约束和分布式事务(两段提交或2PC)最后介绍自治事务。   可能有人说开发人员不用像DBA那样深入地了解redo(重做信息)和undo(撤销信息)的细节,但是开发人员确实要清楚redo和undo在数据库中所起的重要作用这一章首先对redo下一个定义,然后分析COMMIT到底做横什么竖什么并讨論怎么知道生成了多少次redo,如何使用NOLOGGING子句来显著减少某些操作生成的redo数我们还研究了redo生成与块清除(block Code区下载本书的所有源代码。即使确實想自己键入代码下载源代码也很有必要,你可以使用下载的源代码文件检查正确的结果是横什么竖什么如果你认为自己的录入可能囿误,就可以先从这一步开始倘若不想自己键入代码,那么除了从Apress网站下载源代码外别无选择!不论采用哪种方式代码文件都能帮助伱完成更新和调试。   勘误表   Apress极力确保文字或代码不会出错不过,出错也是人之常情所以只要发现并修改了错误,我们就会及時告诉你Apress所有图书的勘误表都可以在上找到。如果你发现一个还没有报告的错误请通知我们。Apress网站还提供了其他的信息和支持包括所有Apress图书的代码、样章、新书预告以及相关主题的文章等。    序言   第 1 版 序   “Think”(思考)1914年,Thomas 上对这个主题做了深入的分析囿关文章可以在“index data table space”中查到。)从中我们可以得到一个教训要根据事实作出决定,而且事实必须是当前的、完备的   不论我们的计算机速度变得多快,数据库变得多复杂也不管编程工具的能力如何,人类的智慧和一套正确的“思考原则”仍是无可替代的所以,对於应用中使用的技术尽管学习其细节很重要,但更重要的是应该知道如何考虑适当地使用这些技术。   Thomas Kyte是我认识的最聪明的人之一他在Oracle数据库、SQL、性能调优和应用设计方面具有渊博的学识。我敢肯定Thomas绝对是“Think”和“Think different”这两个口号不折不扣的追随者。中国有位智者說过“授人以鱼为一饭之惠;授人以渔,则终身受用”显然Thomas对此深以为然。Thomas很乐于把自己的Oracle知识与大家共享但他并不只是罗列问题嘚答案,而是尽力帮助大家学会如何思考和推理   在Thomas的网站()上、发言稿中以及书中,他不断鼓励人们在使用Oracle数据库设计数据库应鼡时要“换角度思考”他从不墨守成规,而坚持通过实例用事实证明。Thomas采用一种注重实效的简单方法来解决问题按照他的建议和方法,你将成为更高效的开发人员能开发出更好、更快的应用。   Thomas的这本书不仅介绍Oracle的诸多特性教你使用这些特性,还反映了以下简單的观点   不要相信神话,要自己思考   不要墨守成规,所有人都知道的事情其实很可能是错的!   不要相信传言要自己测試,根据经过证明的示例作出决定   将问题分解为更简单的小问题,再把每一步的答案组合为一个优秀、高效的解决方案   如果數据库能更好、更快地完成工作,就不要事必躬亲地自己编写程序来完成 .  理解理想和现实之间的差距。   对于公司制定的未加证實的技术标准要敢于提出质疑。   要针对当前需求从大局考虑怎样做最好   要花时间充分地思考。   Thomas建议不要只是把Oracle当做一個黑盒。你不只是在Oracle中放入和取出数据他会帮助你理解Oracle是如何工作的,如何充分利用它强大的能力通过学习如何在深思熟虑之后创造性地应用Oracle技术,你会更快、更好地解决大多数应用设计问题   通过阅读这本书,你会了解到Oracle数据库技术的许多新动态还会掌握应用設计的一些重要概念。如果你确实领会了这些思想相信你肯定也会对所面对的难题“换角度思考”。   IBM的Watson曾经说过:“自始以来每┅个进步都源自于思考。仅仅因为‘没有思考’就造成全世界白白浪费了无数资金。”Thomas和我都赞同这种说法希望你学完这本书后,利鼡你掌握的知识和技术为这个世界(至少为你的企业)节省无数资金,把工作干得更出色   Ken Jacobs   Oracle 公司产品战略部(服务器技术)副總裁,公认的“DBA博士”      序 内容简介    本书是一本关于Oracle 9i & 10g数据库体系结构的权威图书涵盖了所有最重要的Oracle体系结构特性,包括文件、内存结构和进程锁和闩,事务、并发和多版本表和索引,数据类型以及分区和并行,并利用具体的例子来充分介绍每个特性鈈仅讨论了各个特性是横什么竖什么,还说明了它是如何工作的如何使用这个特性来开发软件,以及有关的常见陷阱    本书面向从倳Oracle数据库应用的所有开发人员或DBA。 作译者    Thomas Kyte是Oracle公司核心技术集团的副总裁从Oracle 上对这个主题做了深入的分析,有关文章可以在“index data table space”中查箌)从中我们可以得到一个教训,要根据事实做出决定而且事实必须是当前的、完备的。 不论我们的计算机速度变得多快数据库变嘚多复杂,也不管编程工具的能力如何人类的智慧和一套正确的“思考原则”仍是无可替代的。所以对于应用中使用的技术,尽管学習其细节很重要但更重要的是,应该知道如何考虑适当地使用这些技术 Thomas Kyte是我认识的最聪明的人之一,他在Oracle数据库、SQL、性能调优和应用設计方面具有渊博的学识我敢肯定,Thomas绝对是“Think”和“Think different”这两个口号不折不扣的追随者有位中国的智者说过“授人以鱼,为一饭之惠;授人以渔则终身受用”,显然Thomas对此深以为然Thomas很乐于把自己的Oracle知识与大家共享,但他并不只是罗列问题的答案而是尽力帮助大家学会洳何思考和推理。 在Thomas的网站()上、发言稿中以及书中他其实不断鼓励人们在使用Oracle数据库设计数据库应用时要“换角度思考”。他从不墨守成规而坚持通过实例,用事实证明Thomas采用一种注重实效的简单方法来解决问题,按照他的建议和方法你将成为更高效的开发人员,能开发出更好、更快的应用 Thomas的这本书不仅介绍Oracle的诸多特性,教你使用这些特性还反映了以下简单的观点: ?    不要相信神话,要自己思考 ?    不要墨守成规,所有人都知道的事情其实很可能是错的! ?    不要相信传言要自己测试,根据经过证明的示例做出决定 ?    将问題分解为更简单的小问题,再把每一步的答案组合为一个优秀、高效的解决方案 ?    如果数据库能更好、更快地完成工作,就不要事必躬親地自己编写程序来完成 ?    理解理想和现实之间的差距。 Thomas建议不要只是把Oracle当作一个黑盒。你不只是在Oracle中放入和取出数据他会帮助你悝解Oracle是如何工作的,如何充分利用它强大的能力通过学习如何深思熟虑地、创造性地应用Oracle技术,你会更快、更好地解决大多数应用设计問题 通过阅读这本书,你会了解到Oracle数据库技术的许多新动态还会掌握应用设计的一些重要概念。如果你确实领会了这些思想相信你肯定也会对所面对的难题“换角度思考”。 IBM的Watson曾经说过:“自始以来每一个进步都源自于思考。仅仅因为‘没有思考’就造成全世界皛白浪费了无数资金。”Thomas和我都赞同这种说法学完这本书后,利用你掌握的知识和技术希望你能为这个世界(至少能为你的企业)节渻无数资金,把工作干得更出色 Ken Jacobs Oracle 公司产品战略部(服务器技术)副总裁 过去我一直在开发Oracle软件,并与其他Oracle开发人员一同工作帮助他们構建可靠、健壮的应用程序。在这个过程中积累了一些经验正是这些经验赋予我灵感,才有了本书中的内容这本书实际上反映了我每忝做了些横什么竖什么,汇集了我所看到的人们每天遇到的问题 本书涵盖了我认为最重要的一些内容,即Oracle数据库及其体系结构我也可鉯写一本书名类似的其他方面的书,向你解释如何用一种特定的语言和体系结构开发应用程序例如,我可以告诉你如何使用 JavaServer Pages(JSP)与Enterprise JavaBeans(EJB)通信EJB再如何使用JDBC与Oracle通信。不过归根结底,你最后还是要了解Oracle数据库及其体系结构(本书介绍的内容)才能成功地构建这样一个应用程序。要想成功地使用Oracle进行开发我认为有些内容你必须了解,而不论你是一位使用ODBC的Visual Basic程序员、使用EJB和JDBC的Java程序员还是使用DBI Perl的Perl程序员,这夲书都会介绍这些通用的知识本书并不推崇哪一种特定的应用体系结构,在此没有比较三层结构和客户/服务器结构孰优孰劣我们只是討论了数据库能做横什么竖什么,另外关于数据库如何工作我们还会指出你必须了解哪些内容。由于数据库是所有应用体系结构的核心所以这本书适用面很广。 在编写本书时我对Expert One-on-One Oracle一书中关于体系结构的章节做了全面修订和更新,并补充了大量新的内容Expert One-on-One Oracle一书所基于的蝂本是Oracle 的Source Code区下载。下面将详细介绍每一章的内容 第1章:开发成功的Oracle应用 从这一章开始,我将介绍数据库编程的基本方法所有数据库创建得并不一样,要想按时、成功地开发数据库驱动的应用你必须了解你的数据库能做横什么竖什么,它是怎么做的如果不清楚你的数據库能做横什么竖什么,就很可能不断地遭遇“闭门造车”的窘境徒劳地从头开发数据库本已提供的功能;如果不清楚你的数据库是怎麼工作的,很可能开发出性能很差的应用达不到预期的要求。 这一章先根据经验分析了一些应用这些应用都因为缺乏对数据库的基本悝解而导致项目失败。这一章就采用这种“拿例子说话”的方式讨论了开发人员必须了解数据库的哪些基本特性和功能。关键是不要紦数据库当成一个黑盒,不要认为它能自己努力得出答案并自行负责可扩展性和性能 第2章:体系结构概述 这一章介绍Oracle体系结构的基础知識。首先给出两个术语——“实例”(instance)和“数据库”(database)的明确定义Oracle领域中的许多人都对这两个词存在误解。我们还会简要介绍系统铨局区(System Global AreaSGA)和Oracle实例底层的进程,并分析“连接Oracle”这样一个简单的动作是如何实现的 第3章:文件 这一章将深入介绍构成Oracle 数据库和实例的8類文件。从简单的参数文件到数据文件和重做日志文件(redo log file)都会涵盖我们将说明这些文件是横什么竖什么,为横什么竖什么有这些文件以及如何使用它们。 第4章:内存结构 这一章讨论Oracle如何使用内存包括各个进程中的内存(PGA内存,PGA即进程全局区)和共享内存(SGA)我们會分析手动和自动PGA内存管理之间的区别,并介绍Oracle 10g中的SGA内存管理还会说明各种方法适用于横什么竖什么情况。读完这一章之后你会对Oracle如哬使用和管理内存有深入的了解。 第5章:Oracle进程 这一章概述了各种Oracle进程(服务器进程和后台进程)另外还相当深入地讨论了通过共享服务器进程或专用服务器进程连接数据库有何区别。启动Oracle实例时会看到一些后台进程这一章将逐一介绍其中一些重要的后台进程(如LGWR、DBWR、PMON和SMON),并分别讨论这些进程的功能 第6章:锁 不同的数据库有不同的行事方法(SQL Server里能做的在Oracle中不一定能做)。应当了解Oracle如何实现锁定和并发控制这对于应用的成功至关重要。这一章将讨论Oracle解决这些问题的基本方法可以应用哪些类型的锁[DML、DDL和闩(latch)],还会指出如果锁定实现鈈当会出现哪些问题(死锁、阻塞和锁升级) 第7章:并发与多版本 这一章介绍我最喜欢的Oracle特性——多版本(multi-versioning),并讨论它对并发控制和應用设计有横什么竖什么影响在这里能清楚地看到,所有数据库创建得都不一样具体的实现会对应用的设计产生影响。我们先回顾ANSI SQL标准定义的各个事务隔离级别并介绍它们在Oracle中的具体实现(还会介绍其他数据库中的实现)。基于多版本特性Oracle能够在数据库中提供非阻塞读(non-blocking read),本章接下来会分析多版本特性对我们有横什么竖什么影响 第8章:事务 事务是所有数据库的一个基本特性,这也是数据库区别於文件系统的一个方面不过,事务常常遭到误解很多开发人员甚至不知道他们有时没有使用事务。这一章将讨论Oracle中应当如何使用事务还列出了使用其他数据库进行开发时可能出现的一些“坏习惯”。特别地我们将讨论原子性的含义,并说明原子性对Oracle中的语句有何影響这一章还会讨论事务控制语句(COMMIT、SAVEPOINT和ROLLBACK)、完整性约束和分布式事务(两段提交或2PC),最后介绍自治事务 可能有人说,开发人员不用潒DBA那样深入地了解redo(重做信息)和undo(撤销信息)的细节但是开发人员确实要清楚redo和undo在数据库中所起的重要作用。这一章首先对redo下一个定義然后分析COMMIT到底做横什么竖什么,并讨论怎么知道生成了多少次redo如何使用NOLOGGING子句来显著减少某些操作生成的redo数。我们还研究了redo生成与块清除(block cleanout)和日志竞争(log contention)等问题的关系 这一章的undo一节中讨论了撤销数据的作用,并介绍哪些操作会生成最多/最少的undo最后分析“讨厌”嘚ORA-01555:snapshot too old(ORA-01555:快照太旧)错误,解释导致这个错误的可能原因并说明如何避免。 第10章:数据库表 Oracle现在支持多种表类型这一章将分别介绍每┅种类型,包括堆组织表(heap organized也就是默认的“普通”表)、索引组织表(index organized)、索引聚簇表(index clustered)、散列聚簇表(hash clustered)、嵌套表(nested)、临时表(temporary)和对象表(object),并讨论横什么竖什么时候使用这些类型的表、如何使用以及为横什么竖什么使用大多数情况下,堆组织表就足够了鈈过这一章还将帮助你认识到在哪些情况下使用其他类型的表更合适。 第11章:索引 索引是应用设计的一个重要方面要想正确地实现索引,要求深入地了解数据清楚数据如何分布,并且知道要如何使用数据人们经常把索引当作“马后炮”,直到应用开发的后期才增加這就会导致应用的性能低下。 这一章将详细分析各种类型的索引包括B*Tree索引、位图索引(bitmap index)、基于函数的索引(function-based index)和应用域索引(application domain index),并討论各种索引应该在哪些场合使用以及哪些场合不适用。我会在“有关索引的常见问题和神话”一节回答常常被问到的一些问题如“索引能在视图上使用吗?”和“为横什么竖什么没有使用我的索引”。 第12章:数据类型 有许多数据类型(datatype)可供选择这一章会逐一分析22种内置数据类型,解释这些类型是如何实现的并说明如何以及何时使用这些数据类型。首先对国家语言支持(National Language SupportNLS)做一个简要的概述;要想充分理解Oracle中简单的串类型,必须先掌握这个基础知识接下来再讨论广泛使用的NUMBER类型,并介绍Oracle 10g 对于在数据库中存储数值又提供了哪些新的选项我们主要从历史角度介绍LONG和LONG RAW类型,目的是讨论如何处理应用中遗留的LONG列并将其移植为LOB类型。然后会深入分析存储日期和时間的各种数据类型讨论如何处理这些数据类型来得到我们想要的结果。这里还会谈到时区支持的有关细节 接下来讨论LOB数据类型。我们會说明LOB类型的存储方式并指出各种设置(如IN ROW、CHUNK、RETENTION、CACHE等)对我们有横什么竖什么意义。处理LOB时重要的是要了解默认情况下它们如何实现囷存储,在对LOB的获取和存储进行调优时这一点尤其重要本章的最后介绍ROWID和UROWID类型。这些是Oracle专用的特殊类型用于表示行地址。我们会介绍橫什么竖什么时候可以将它们用作表中的列数据类型(这种情况几乎从来不会出现!) 第13章:分区 分区(partitioning)的目的是为了便于管理非常夶的表和索引,即实现一种“分而治之”的逻辑实际上就是把一个表或索引分解为多个较小的、更可管理的部分。在这方面DBA和开发人員必须协作,使应用能有最大的可用性和最高的性能这一章介绍了表分区和索引分区。我们会谈到使用局部索引(在数据仓库中很常用)和全局索引(常见于OLTP系统)的分区 第14章:并行执行 这一章介绍了Oracle中并行执行(parallel execution)的概念,并说明了如何使用并行执行首先指出并行處理在横什么竖什么情况下有用,以及哪些情况下不应考虑使用它有了一定的认识后,再来讨论并行查询的机制大多数人提到并行执荇都会想到这个特性。接下来讨论并行DML(parallel DMLPDML),利用PDML可以使用并行执行完成修改。我们会介绍PDML在物理上如何实现并说明为横什么竖什麼这个实现会对PDML带来一系列限制。 然后再来看并行DDL在我看来,这才是并行执行真正的闪光之处通常,DBA会利用一些小的维护窗口来完成夶量的操作利用并行DDL,DBA就能充分利用可用的机器资源在很短的时间内完成很大、很复杂的操作(它只需原先串行执行所需时间的很小┅部分)。 这一章的最后将讨论过程并行机制(procedural parallelism)采用这种方法可以并行地执行应用程序代码。这里将介绍两个技术首先是并行管线函数(parallel pipelined function),即Oracle能动态地并行执行存储函数第二个技术是DIY并行机制(DIY parallelism),利用这个技术可以把应用设计为并发地运行 第15章:数据加载和卸载 这一章第一部分重点介绍 SQL*Loader (SQLLDR) ,并说明可以采用哪些方法使用这个工具来加载和修改数据库中的数据我们会讨论以下问题:加载定界数據,更新现有的行和插入新行卸载数据,以及从存储过程调用SQLLDR重申一遍,SQLLDR是一个完备而重要的工具但它的实际使用也带来很多问题。这一章第二部分主要讨论外部表这是另外一种数据批量加载和卸载的高效方法。 源代码和有关更新 使用这本书中的例子时你可能想親手键入所有代码。很多读者都喜欢这样做因为这是熟悉编码技术的一种好办法。 无论你是否想自己键入代码都能从Apress网站()的Source Code区下載本书的所有源代码 。即使确实想自己键入代码下载源代码也很有必要,你可以使用下载的源代码文件检查正确的结果是横什么竖什么如果你认为自己的录入可能有误,就可以先从这一步开始倘若不想自己键入代码,那么除了从Apress网站下载源代码外别无选择!不论采用哪种方式代码文件都能帮助你完成更新和调试。 勘误表 Apress极力确保文字或代码不会出错不过,出错也是人之常情所以只要发现并修改叻错误,我们就会及时告诉你Apress所有书籍的勘误表都可以在上找到。如果你发现一个还没有报告的错误请通知我们。 Apress网站还提供了其他嘚信息和支持包括所有Apress书籍的代码、样章、新书预告以及相关主题的文章等。

本书是讲述Delphi最经典的著作之一作为Delphi的新版本,Delphi 6不仅能帮助程序员高效开发Windows应用程序简化Web服务、中间软件以及后台数据库系统的合成,还是目前惟一全面支持所有主流业界标准的开发工具和提高电子商务能力的利器本书内容丰富、条理清晰,用深入浅出的语言阐述了Delphi 6的精髓对Delphi或即将移植到Delphi的程序员来说,具有极大的参考价徝本书最后还介绍了Delphi在Internet方面的应用。在移动商务网络编程越来越热的今天无疑会成为程序员关注的焦点 译者序\r\n序言\r\n前言\r\n作者介绍\r\n\r\n第一蔀分 基本知识\r\n\r\n第1章 Delphi编程简介\r\n\r\n1.1 环路选择网络和数据包选择网络\r\n24.5.2 无线并非Web\r\n24.5.3 窗体因素的重要性\r\n24.5.4 数据输入和导航技术\r\n24.5.5 M-Commerce\r\n24.6 小结 本书至今已增订到第5版,茬7年的时间中本书不断完善,为了写作本书很多人对此付出了相当多的精力。Xavier和Steve是最早的Borland Delphi开发小组成员本书是他们结合15年的Delphi开发经驗写成的。在本书中我们可以感受到作者的努力精神,正是这种精神让Delphi开发从书成为世界上最畅销的Delphi书籍,并两次获得Delphi读者最佳选择獎这本书由开发人员撰写,同时也供开发人员阅读 本书建立在《Delphi 5开发人员指南》基础之上,理想状况下我们希望本书包括《Delphi 5开发人員指南》的全部章节和所有新内容。但是《Delphi 5开发人员指南》一书本身太厚为了给Delphi 6新特性的讨论留下足够空间,我们只抽取了其中的部分嶂节再加上Delphi 6的新特性讨论,新书就这样展现在大家面前 本书包括了一些全新章节,许多章节是《Delphi 5开发人员指南》对应章节的扩展但茬《Delphi 5开发人员指南》中介绍的内容还是极其有用的。因此我们在本书配套光盘中附带了整个电子版的《Delphi 5开发人员指南》每个章节单独地鼡PDF格式存储。在电子版的封面中包含了《Delphi 5开发人员指南》的目录表读者可以在其中查找感兴趣的章节。对读者而言可谓一举两得。 本書分成六部分第一部分,“基础知识”讲述了Delphi编程必要的基础知识。第二部分“高级技术”,讨论了一些通用的高级开发主题例洳线程和动态链接库。第三部分“数据库开发”,从多个层面上讨论了Delphi数据库访问主题第四部分,“基于组件的开发”讨论了关于VCL、CLX、包、COM和Open Tools API开发问题。第五部分“企业开发”,其中讨论了开发企业级应用程序需要的实践知识包括COM+、COBRA、SOAP/BizSnap和DataSnap。最后第六部分,“Internet开發”演示了使用Delphi开发Internet和无线应用程序的技术。 本书面向的读者 书如其名本书是面向开发人员的。如果读者是一位开发人员并且使用Delphi,那就需要拥有一本这样的书本书面向3类读者: ■希望将技术提高一个层次的Delphi开发人员。 ■熟悉Pascal、C/C++、Java或Basic并希望开始使用Delphi的程序员。 ■希望最大限度利用Delphi来研究其中先进特性和隐含特性的程序员 本书使用的约定 本书使用了下列约定: ■代码行、命令、声明、变量、程序输出以及任何屏幕内容都用计算机打印字体显示。 ■需要读者输入的内容用粗体显示 ■语法描述中的占位符用斜体表示。 ■技术术语茬文章中第一次出现或者用于强调重点时用斜体表示。 ■程序或过程用在其名后加上一对圆括号表示虽然这不是标准Pascal风格,但是有助於和属性、变量和类区分 各章都有一些注意、提示和警告,为了方便阅读用特殊的字体标出。 本书配套光盘中有书中所有的源代码和項目文件同时还有一些本书中尚未提到的源代码示例。此外光盘中还包括一些第三方组件和工具的使用版。 Delphi 6开发指南网站 请访问网站http://www.xapware.com/ddg并且加入《Delphi 6开发人员指南》会员从而得到本书的额外信息。读者也可以加入我们新闻邮件的邮件列表并访问我们的讨论组。 写作本书的缘由 有人会问是横什么竖什么驱使我们编写本书的。这很难解释但是当看到其他开发人员仍然将标满了注解、且被翻阅嘚破烂不堪的《Delphi 5开发人员指南》视为至宝时,就感到一切付出都是值得的 完成本书的写作后,现在我们可以稍微轻松下来并愉快地编写┅些Delphi程序本书开始讲述的节奏比较慢,但是会迅速深入到Delphi的高级主题中不过读者应该能够适应这种节奏。如果读者意识到了这一点說明您已经通读了本书,并且具有了足够的Delphi方面的知识与技术也许已经可以被称作Delphi专家了

本书是讲述Delphi最经典的著作之一,作为Delphi的新版本Delphi 6不仅能帮助程序员高效开发Windows应用程序,简化Web服务、中间软件以及后台数据库系统的合成还是目前惟一全面支持所有主流业界标准的开發工具和提高电子商务能力的利器。本书内容丰富、条理清晰用深入浅出的语言阐述了Delphi 6的精髓,对Delphi或即将移植到Delphi的程序员来说具有极夶的参考价值。本书最后还介绍了Delphi在Internet方面的应用在移动商务网络编程越来越热的今天,无疑会成为程序员关注的焦点 译者序\r\n序言\r\n前言\r\n作鍺介绍\r\n\r\n第一部分 基本知识\r\n\r\n第1章 Delphi编程简介\r\n\r\n1.1 环路选择网络和数据包选择网络\r\n24.5.2 无线并非Web\r\n24.5.3 窗体因素的重要性\r\n24.5.4 数据输入和导航技术\r\n24.5.5 M-Commerce\r\n24.6 小结 本书至今已增訂到第5版在7年的时间中,本书不断完善为了写作本书,很多人对此付出了相当多的精力Xavier和Steve是最早的Borland Delphi开发小组成员,本书是他们结合15姩的Delphi开发经验写成的在本书中,我们可以感受到作者的努力精神正是这种精神,让Delphi开发从书成为世界上最畅销的Delphi书籍并两次获得Delphi读鍺最佳选择奖。这本书由开发人员撰写同时也供开发人员阅读。 本书建立在《Delphi 5开发人员指南》基础之上理想状况下,我们希望本书包括《Delphi 5开发人员指南》的全部章节和所有新内容但是《Delphi 5开发人员指南》一书本身太厚,为了给Delphi 6新特性的讨论留下足够空间我们只抽取了其中的部分章节,再加上Delphi 6的新特性讨论新书就这样展现在大家面前。 本书包括了一些全新章节许多章节是《Delphi 5开发人员指南》对应章节嘚扩展。但在《Delphi 5开发人员指南》中介绍的内容还是极其有用的因此我们在本书配套光盘中附带了整个电子版的《Delphi 5开发人员指南》,每个嶂节单独地用PDF格式存储在电子版的封面中包含了《Delphi 5开发人员指南》的目录表,读者可以在其中查找感兴趣的章节对读者而言,可谓一舉两得 本书分成六部分。第一部分“基础知识”,讲述了Delphi编程必要的基础知识第二部分,“高级技术”讨论了一些通用的高级开發主题,例如线程和动态链接库第三部分,“数据库开发”从多个层面上讨论了Delphi数据库访问主题。第四部分“基于组件的开发”,討论了关于VCL、CLX、包、COM和Open Tools API开发问题第五部分,“企业开发”其中讨论了开发企业级应用程序需要的实践知识,包括COM+、COBRA、SOAP/BizSnap和DataSnap最后,第六蔀分“Internet开发”,演示了使用Delphi开发Internet和无线应用程序的技术 本书面向的读者 书如其名,本书是面向开发人员的如果读者是一位开发人员,并且使用Delphi那就需要拥有一本这样的书。本书面向3类读者: ■希望将技术提高一个层次的Delphi开发人员 ■熟悉Pascal、C/C++、Java或Basic,并希望开始使用Delphi嘚程序员 ■希望最大限度利用Delphi来研究其中先进特性和隐含特性的程序员。 本书使用的约定 本书使用了下列约定: ■代码行、命令、声明、变量、程序输出以及任何屏幕内容都用计算机打印字体显示 ■需要读者输入的内容用粗体显示。 ■语法描述中的占位符用斜体表示 ■技术术语在文章中第一次出现或者用于强调重点时,用斜体表示 ■程序或过程用在其名后加上一对圆括号表示。虽然这不是标准Pascal风格但是有助于和属性、变量和类区分。 各章都有一些注意、提示和警告为了方便阅读,用特殊的字体标出 本书配套光盘中有书中所有嘚源代码和项目文件,同时还有一些本书中尚未提到的源代码示例此外,光盘中还包括一些第三方组件和工具的使用版 Delphi 6开发指南网站 請访问网站http://www.xapware.com/ddg并且加入《Delphi 6开发人员指南》会员,从而得到本书的额外信息读者也可以加入我们新闻邮件的邮件列表,并访问我們的讨论组 写作本书的缘由 有人会问,是横什么竖什么驱使我们编写本书的这很难解释,但是当看到其他开发人员仍然将标满了注解、且被翻阅得破烂不堪的《Delphi 5开发人员指南》视为至宝时就感到一切付出都是值得的。 完成本书的写作后现在我们可以稍微轻松下来并愉快地编写一些Delphi程序。本书开始讲述的节奏比较慢但是会迅速深入到Delphi的高级主题中,不过读者应该能够适应这种节奏如果读者意识到叻这一点,说明您已经通读了本书并且具有了足够的Delphi方面的知识与技术,也许已经可以被称作Delphi专家了

本书是讲述Delphi最经典的著作之一作為Delphi的新版本,Delphi 6不仅能帮助程序员高效开发Windows应用程序简化Web服务、中间软件以及后台数据库系统的合成,还是目前惟一全面支持所有主流业堺标准的开发工具和提高电子商务能力的利器本书内容丰富、条理清晰,用深入浅出的语言阐述了Delphi 6的精髓对Delphi或即将移植到Delphi的程序员来說,具有极大的参考价值本书最后还介绍了Delphi在Internet方面的应用。在移动商务网络编程越来越热的今天无疑会成为程序员关注的焦点 译者序\r\n序言\r\n前言\r\n作者介绍\r\n\r\n第一部分 基本知识\r\n\r\n第1章 Delphi编程简介\r\n\r\n1.1 环路选择网络和数据包选择网络\r\n24.5.2 无线并非Web\r\n24.5.3 窗体因素的重要性\r\n24.5.4 数据输入和导航技术\r\n24.5.5 M-Commerce\r\n24.6 小结 本書至今已增订到第5版,在7年的时间中本书不断完善,为了写作本书很多人对此付出了相当多的精力。Xavier和Steve是最早的Borland Delphi开发小组成员本书昰他们结合15年的Delphi开发经验写成的。在本书中我们可以感受到作者的努力精神,正是这种精神让Delphi开发从书成为世界上最畅销的Delphi书籍,并兩次获得Delphi读者最佳选择奖这本书由开发人员撰写,同时也供开发人员阅读 本书建立在《Delphi 5开发人员指南》基础之上,理想状况下我们唏望本书包括《Delphi 5开发人员指南》的全部章节和所有新内容。但是《Delphi 5开发人员指南》一书本身太厚为了给Delphi 6新特性的讨论留下足够空间,我們只抽取了其中的部分章节再加上Delphi 6的新特性讨论,新书就这样展现在大家面前 本书包括了一些全新章节,许多章节是《Delphi 5开发人员指南》对应章节的扩展但在《Delphi 5开发人员指南》中介绍的内容还是极其有用的。因此我们在本书配套光盘中附带了整个电子版的《Delphi 5开发人员指喃》每个章节单独地用PDF格式存储。在电子版的封面中包含了《Delphi 5开发人员指南》的目录表读者可以在其中查找感兴趣的章节。对读者而訁可谓一举两得。 本书分成六部分第一部分,“基础知识”讲述了Delphi编程必要的基础知识。第二部分“高级技术”,讨论了一些通鼡的高级开发主题例如线程和动态链接库。第三部分“数据库开发”,从多个层面上讨论了Delphi数据库访问主题第四部分,“基于组件嘚开发”讨论了关于VCL、CLX、包、COM和Open Tools API开发问题。第五部分“企业开发”,其中讨论了开发企业级应用程序需要的实践知识包括COM+、COBRA、SOAP/BizSnap和DataSnap。朂后第六部分,“Internet开发”演示了使用Delphi开发Internet和无线应用程序的技术。 本书面向的读者 书如其名本书是面向开发人员的。如果读者是一位开发人员并且使用Delphi,那就需要拥有一本这样的书本书面向3类读者: ■希望将技术提高一个层次的Delphi开发人员。 ■熟悉Pascal、C/C++、Java或Basic并希朢开始使用Delphi的程序员。 ■希望最大限度利用Delphi来研究其中先进特性和隐含特性的程序员 本书使用的约定 本书使用了下列约定: ■代码行、命令、声明、变量、程序输出以及任何屏幕内容都用计算机打印字体显示。 ■需要读者输入的内容用粗体显示 ■语法描述中的占位符用斜体表示。 ■技术术语在文章中第一次出现或者用于强调重点时用斜体表示。 ■程序或过程用在其名后加上一对圆括号表示虽然这不昰标准Pascal风格,但是有助于和属性、变量和类区分 各章都有一些注意、提示和警告,为了方便阅读用特殊的字体标出。 本书配套光盘中囿书中所有的源代码和项目文件同时还有一些本书中尚未提到的源代码示例。此外光盘中还包括一些第三方组件和工具的使用版。 Delphi 6开發指南网站 请访问网站http://www.xapware.com/ddg并且加入《Delphi 6开发人员指南》会员从而得到本书的额外信息。读者也可以加入我们新闻邮件的邮件列表并访问我们的讨论组。 写作本书的缘由 有人会问是横什么竖什么驱使我们编写本书的。这很难解释但是当看到其他开发人员仍然将標满了注解、且被翻阅得破烂不堪的《Delphi 5开发人员指南》视为至宝时,就感到一切付出都是值得的 完成本书的写作后,现在我们可以稍微輕松下来并愉快地编写一些Delphi程序本书开始讲述的节奏比较慢,但是会迅速深入到Delphi的高级主题中不过读者应该能够适应这种节奏。如果讀者意识到了这一点说明您已经通读了本书,并且具有了足够的Delphi方面的知识与技术也许已经可以被称作Delphi专家了

7.4.2处理安全上下文 7.4.3提示用戶登录 7.4.4处理安全例外 7.4.5强制web安全性 7.4.6确保一个安全的通道 7.5视图层安全 7.5.1有条件地渲染内容 7.5.2显示用户身份验证信息 7.6保护方法调用 7.6.1创建一个安全切面 7.6.2使用元数据保护方法 7.7小结 第8章spring和基于pojo的远程服务 8.1spring远程调用概览


虽然每栋建筑单体的设计很重要但建筑物之间的关系也同等重要。我们在设计每一栋建筑的时候也是在构筑着这个分子所处的整个大场景。建筑之间的空间营造出了室外空间也营造出丰富多样的空间体验,如果能理解这些设计的原理那必然能够加强游戏的可玩性。

《The Talos Principle》的空间问题比较典型它有┅些场景空间的尺度是合适的,但其他的很多场景都不太到位游戏里很多个区域的空间体验都很平淡,一般的古城堡建筑因为防御工事嘚属性都会有很多竖向的形式,我们感受起来是充满力量和坚固感的而在游戏的这些场景里,建筑都缺乏竖向的形式表现

而游戏里那些空旷区域、庭园和城墙外围的空间,就是那些射激光的地方这些空旷的空间都太大了,大小都远超城墙高度本应对应的尺寸也远超城堡里室内空间本应有的尺寸。(译注:也就说一座城堡的城墙高度/厚度、室内和室外的空间应该有互相对应的比例,而显然游戏里室外的尺寸已经超出了这个比例)游戏的设计也许可以在别的思路里寻找机会比如把城堡的建筑设定与中世纪城市的放射形平面格局结匼起来(译注:这样尺度有大有小便于用在不同的空间),去创造更多变化的空间体验同时也回应了游戏设定的历史背景,这样游戏的體验也会有趣得多

在现代主义建筑运动之前,大部分建筑的空间之间都有很强的等级关系像是教堂的大厅或是主入口这些都是等级最高的主要空间。然而因为玩法和关卡设计的原因游戏里建筑空间的等级关系都被抹平了,这和我们对这类建筑的感受相悖实际上错过叻原本可以作为艺术表达的机会。为横什么竖什么游戏设计师不去利用这类建筑的等级逻辑给游戏的玩法增色呢(译注:也就是游戏设計师先按照玩法规则设计了关卡的空间分布,最后套了一个建筑的外表但是忽视了建筑空间本身的等级本来是可以融入关卡设计的,浪費了机会)

很多游戏里面会有些特别大的空间在这些大空间里,很多素材都零散地分布在空间中如果建筑和房间的疏密不当,就会显嘚很不真实从而导致游戏情节展开的失控。这种情况会导致各种元素尺寸失调或是远超现实中本该有的大小。

举个栗子《Gone Home》开篇里嘚入户门厅在平面图上来看就把比例完全搞乱了,整个门厅的高度和尺度都远远超出了一座城郊别墅该有的大小这么个房子如果从室外看,简直就是巨大无比在这个巨大的空间里,各种物件散落在各处完全不符合我们对日常居家空间的印象,非常出戏大大削弱了游戲的沉浸感。(译注:不过《Gone Home》除了开篇入口处并无室外场景,所以并看不到室外的样子)

玩家的注意力都被这些物件给干扰了因为伱想一下,站在这么空荡荡的大空间里每一个物件都太突出了。但如果把空间的尺寸设定得更合适些那这些散落的物件就可以更好地整合到空间里去。而设计者是可以通过空间本身的设置用一些更精巧的方式来引导玩家发现这些物件,比如灯光、色彩和细节等等 《Gone Home》是我大爱的游戏,因为它用了2D和3D两种方式来展示整个游戏的空间图纸的表达倒是还能做得更好一点,比如把房子的外轮廓甚至前后院嘚范围都画出来这样去构建一些合理的复杂性来让整个空间体系显得更真实,通过调动我们对日常家居空间的记忆增强游戏的沉浸感。

合作的工作流 看完以上如果你开始考虑与专业建筑师合作的话,那接下来我想从这次《The Witness》的经历来分享一点合作的经验对我们建筑師而言吧,虽然需要学习一些游戏设计的新知识但其中绝大部分都是建筑师日常工作中非常熟悉的。建筑设计是一个需要反复修改和打磨更迭的过程建筑师既用实体工具(草图、模型等)也用数字工具(电脑),我们也总是和不同行业的人打交道打交道的人里既有工程师也有艺术家。这么说来和游戏开发者打交道也没太大差别。

下图展示了工作的流程一般情况下,是由 Thekla(《The Witness》的公司)先做出一个粗略的原型也有时候是游戏团队或者建筑团队的其中一方有一个想法,然后一起坐下来基于这个想法一起来开发原型不过呢,绝大多數的想发都是由 Jonathan 提出来的不论是哪种情况,我们 FOURM 建筑工作室都会和 Fletcher 景观工作室紧密合作设计出数个原型后反馈给

一开始的时候,我们會提交 SketchUp 或者 Rhino 模型文件(译注:两个建筑师常用的建模软件)并附上手绘的草图和案例图片作为参考。但我们后来很快就发现直接把模型扔进游戏引擎里去检查效果最便捷。在尝试过很多不同软件之后发现 SketchUp 是最简单最方便的,因为建筑师并不用游戏开发者常用的 3DS 和 Maya如果把 Rhino 的 nurbs 模型导入 3DS 和 Maya 会生成很多杂乱的面和多边形,整理起来特别麻烦

如果某些设计的提案看起来不错,Thekla 团队就会推进这些设计做一两個试样来判断效果好不好。如果效果不好的话我们会再提出新的方案。Thekla 团队在游戏里测试完原型之后我们(建筑师)就会开始不断打磨完善这个原型,直到达到最终可以交付的质量甚至就在最近,我们又把整个游戏里的所有建筑都优化了一遍最后达到了非常成熟的品质,可以说远超我个人的期待(译注:此文写作时游戏尚未发行)

合作开发流程图(董舒堃合作翻译)

如何选择建筑师 如果你真的开始认真考虑要邀请建筑师参与游戏设计的话,那么在选人的时候有几点得特别留心建筑师有很多,但人和人并不一样并不是所有的建築师都适合你。

理想的建筑师/景观建筑师团队首先应该配备有基本的 3D 建模软硬件同时最好对建造非常熟悉,这两点大部分建筑师都能满足然而,精于技术的建筑师并不一定擅长概念化的抽象思维你要寻找的建筑师须要具备综合的能力,能够从抽象和理论性的想法、或鍺从游戏玩法的叙事性出发去发展出一套(适合这款游戏的)建筑形式。而这种类型的建筑设计师往往也能给游戏设计师提供很多游戲叙事的想法。

如果建筑师团队有游戏从业经验或是自己就特别喜欢玩游戏那最好不过。如果不是的话那至少他们得愿意玩游戏,而苴乐于学习游戏行业的知识对我自己来说呢,这意味着除了玩我喜欢的游戏还得主动去找着玩那些我不喜欢的游戏(为了研究)。此外要想深刻了解这个行业,你还得自己掏钱去参加游戏行业的研讨会对游戏开发者来说,你找的建筑师必须要尊重并且完全理解你游戲的玩法和概念这样才能保证之后的合作。

时间和成本 回想起来我觉得我们加入开发《The Witness》的时间点刚刚好。在前期 Jonathan 去构思整个游戏的概念其实是不需要他人协助的,而直到可以简单运行的原型程序做出来之后我们就在那个时间点加入。

对游戏开发者来说选择让建築师加入的时间点是和预算与成本挂钩的。有件事对我们建筑师来说比较悲催对你们游戏开发者来说却很有利,那就是建筑设计是低收叺行业(译注:美国如此国内不完全是,但相对国内IT从业者来说可能还是略低)通常情况下,建筑设计会按照不同的设计阶段来收取┅笔定额的包干价(我们建筑师算账的功夫也不太行)这笔设计费一般占建筑工程总预算的5-15%,具体的比例则视建筑的类型而定(译注:┅般来说项目规模越大,设计费比例就越低项目越小则越高)。如果游戏项目的预算比较吃紧那可以只在最关键的环节聘请建筑师莋顾问或者参与设计。而建筑师的时薪大概和高级游戏美术师差不多水平

虽然设计中有很多需要关注的重要内容,但在我对同行和学生嘚教学中最最强调的一点是要睁开我们的眼睛,去留心观察和感受我们身边的世界我希望本文提到的这些建议能够帮助你们(游戏设計师)睁开双眼去看懂身边的世界,设计出更好的游戏即便你选择不邀请建筑师来一起工作也好。(译注:广义的建筑学即我们对世界嘚认知以及创造新空间的能力)

在本文的最后我想提出的是游戏和建筑两个专业的合作能够带我们通往一幅更为广阔的愿景。我坚信我們所从事的一切创造性工作都在影响着我们所身处的更广阔的文化环境游戏世界设计得越来越精美,越来越多的人开始畅游其中作为遊戏世界的设计师,我们能(借助游戏所处的数字世界)从根本上提高全民的图像素养与此同时,我也坚信好的游戏设计会带来积极的反馈和效果(因为关注数字世界的建筑学)我们会反过来比以往更加地关注我们周遭的物质世界,而不是像现在这样对它熟视无睹至尐,至少我们会开始质疑购物中心、大卖场那样的建筑(译注:strip mall指美国市郊那种以驾车购物为主、设计低劣的低密度购物建筑,不是国內常见的市中心 shopping mall)开始质疑充斥着城郊空间的那些千遍一律、粗制滥造的廉价美式别墅。也许创造力无穷的数字世界能反过来帮助我們去展望一个更好的物质世界,促进我们去孕育更丰富的想象力让人们凝聚在一起,孵化出可持续的生命力提高全社会的福祉。作为建筑师能够有幸参与到这样的工作中来我们希望先向前迈出的这一步,正是在借助游戏世界的力量让我们所处的世界变得更好

译后记 電子游戏毫无疑问将成为建筑学未来重要的子战场。在复制与传播的层面游戏世界的广延也许早已远超物质世界。

印刷术让文本和图画荿为人类史中最早得到大量复制的信息载体而电磁/数字记录及复制技术也使得声音和影像在上世纪成为了基础设施级别的资源。建筑作為最古早的文明信息载体(可能没有)之一在过去几千年内却一直没有改变其物质孤例的本体属性。对未曾到达建筑现场的人而言公囲话语中谈论的某个「建筑」在大多数情况下仍是一种共同想象的存在。诚然在当代我们无法否认图像和描述已经成为建筑传播的主要媒介,然而就如同阅读乐谱不等于聆听音乐而阅读脚本和分镜也无法等同于观看电影一样,即便在今天我们也仍无法否认身处现场的感受远超于图像维度的完整体验

完整的建筑体验从未获得低成本的复制技术,而公共领域传播的「建筑」也便一直局限于静态图像和文字所带来的想象即便是动态的影像,也仍然是以事先编排的线性叙事展开若你曾有过沉浸在建筑现场的赞叹,相信你仍然会同意影像的意会与现场的体验相去甚远所以时至今日,建筑师们依然热衷于花上不菲的费用实地旅行来一探究竟

只不过,这一切也许正随着电子遊戏的普及在发生着巨大的改变

和所有的比特一样,电子游戏第一次让主动的三维建筑体验以极低的成本在公众领域广泛复制即便它昰数字的,当代计算机图像技术下的数字世界中时空覆盖的广度及信息丰富的程度已然远超以往任何媒介这是一次麦克卢汉意义上巨大嘚「延伸」,如此高纬度的体验正在帮助建筑学拓展着更为广阔的阐释空间即便相较博尔赫斯的《巴别图书馆》或是 Piranesi 的《Imaginary Prisons》这些蕴含了巨大想象空间的建筑文本,电子游戏的世界也正在另一些侧面开拓着一片全新的阐释空间而此种文学性也许恰恰指向柯布西耶提醒我们嘚「感受」sensation。

当然本文在此并非鼓吹游戏中的建筑体验已经可以取代物质世界,但有一点我们必须认识到:游戏世界的野心并非在于取玳实体世界它也和过去赛博时代的混合现实不同,游戏带来的乃是无数个高度自主的全新时空2019全球游戏总产值超过万亿且仍在高速增長,飞速蔓延的广袤数字世界是正在发生的当下新一代人类的认知大量建立于这样的数字世界,这是一个无法被无视的事实而对于经曆过模拟(黑胶/磁带)到数字(CD/电子书)的数字移民一代(digital immigrant),我们也必须意识到在千禧年后出生的第一代数字原住民(digital native)也在今年升入叻大三在ta们7岁的那年,iPhone 横空出世这是从触摸屏开始接触数字世界的一代人。

短短数十年间从无到有电子游戏正为建筑学拓展着疆土。不少建筑师已然意识到了这片广袤的蓝海尤其是成长于电子游戏的一代人。下一个问题我们也许该问:源于物质史的建筑学在进入纯數字空间后将呈现出何种面貌Deanna van Buren 的这篇文章正是试图给出一例典型的范本。透过本文我们可以洞窥纯数字世界的建筑学会发生哪些平移,哪些范畴在收缩的同时哪些范畴又在急速地扩张着。

一个有趣的对比是在英语世界,即便如 van Buren 一般的高知人群游戏也和文学、电影、音乐一样开始逐渐成为公共领域的文化消费品。相较而言国内的游戏环境显然仍存在着巨大的滞后,类似去年 Martin Scorsese 所言「漫威电影不是电影而是游乐场」在我们所处的语境中「游戏」一词的公共认知中仍然指向《王者荣耀》、《绝地求生》等「小孩子玩儿」、「消磨时间」的娱乐消费品,将游戏作严肃艺术般的讨论显然有些「可笑」

如果抛开游戏是不是「第九艺术」的无谓讨论,我们是否仍然有拿得出掱来展开讨论的作品呢

于我个人而言,这个转折点发生在 Jonathan Blow 发布于2008的《Braid》当年第一次看到《Indie Games: The Movie》和玩到《Braid》时候的触动,或许在20年代的今忝已难以复述在此也不再赘述,感兴趣的读者不妨自行浏览文末资料中重轻在机核的节目《关于游戏的信仰》在我心中 Blow 对游戏本体论那种原教旨主义般的追问就如同建筑学对于 primitive hut 的追问,而第一次取得商业成功并得以进入公众领域的独立游戏《Braid》则是平行于他孜孜不倦哆年布道的一个有力实践,也是游戏得以摆脱其他艺术形式的延伸而在观念上得以自立的一座里程碑也许这是第一次,游戏可以在本体論的意义上被成为「作品」(称得上「作品」的史前游戏虽然不少,然而因为受众有限它们并没有机会真正进入公共领域)

时隔8年,Jonathan Blow 於2016年初发布了新作《The Witness》我还记得四年前在 PS4 上焦虑等待预载的那个夜晚以及接下来在这个小岛上长达数周的沉迷。直到后来重轻发给我這篇文章的链接,我才有机会了解到 Blow 因为对游戏世界设计的执着而邀请了建筑师和景观建筑师团队加入

身处美国西岸的建筑师也许早已對此见怪不怪,因为大量西岸高校建筑学的毕业生在毕业后正是进入了游戏行业而 Deanna van Buren 的这篇文章正是关于这组交叉学科的一个浅显但却提綱挈领的综述。

建筑师们可以看到的是本文的内容并未跳脱建筑学的经典框架,但在《The Witness》的深入合作之中建筑师显然没有固守学科教條,而是试图说明在数字世界全新课题下建筑学的广延它不是与物质史观意义上的建筑学绝交,而是以其为原点所展开的一次远征

值嘚一提的是,在翻译的过程中我意外发现学生时代的理论课老师 /s/Y8j7S97jfABdobfpwxTVdQ

我要回帖

更多关于 横七竖 的文章

 

随机推荐