《微软应用架构指南》前言

前言

Preface 

      在那些搞笑的开发人员之间有个常讲的老玩笑,你只要用“视情况而定~~”回答技术问题,别

人就会认为你是一名架构师。

       问:“我解决方案中实现身份验证和授权的最佳方法是什么?”答:“视情况而定”;

       问:“我应该怎样实现我的数据访问层?”答:“视情况而定”;

       问:“我解决方案的UI 应该使用什么技术?”答:“视情况而定”;

       问:“怎样才能使我的应用具有可伸缩性?”答:“视情况而定”。

      实际上这些真的需要视情况而定,每个解决方案最终是不同的,技术和非技术等许多的因素都会

或大或小影响解决方案的架构和设计。开发人员和解决方案架构师的工作在于平衡由业务、最终用户、

公司的IT 环境和管理基础结构、经济环境和用于构建方案所使用的技术和工具等等所提出的需求和

限制,而这些需求和限制通常是相矛盾的。

      然而有意思的是,随着系统中新机会的产生和新要求的提出,这些需求和限制不断演化,业务规

则的变化和新业务领域的拓展可以影响新的应用程序和现有的应用程序。随着时间推移,用户渴求更

丰富、更一致、更综合的用户体验,随之就会产生新的需求。或可能会出现新的IT 基础结构技术,

以减少成本或提高可用性和可伸缩性。与此同时,会不断出现新的技术、架构和工具,旨在降低开发

成本,提供以前较难实现的应用。

      由此可见,要理解这些并同时要开发一个合时合算的有效解决方案是一件不容易的事情。这要求

开发人员和架构师要考虑所有相竞争和重叠的因素(其中有一些是非技术的)占的比重,然后将它们

做出一个较合理的权衡。试图将太多因素整合在一起,可能会导致解决方案过度开发并且非常复杂,

这样的解决方案需要花很长时间来构建并且可能仍然不能按时提交,或不能保证长效性和灵活性。另

一方面,如果考虑太少因素,也有可能会形成一个作用有限的,缺乏灵活性的、不易升级的临时解决

方案,这样的解决方案难以发展也不能很好地扩展。总而言之,开发人员和方案解决架构师通常是游

走在“黄金方案”和“即时方案”之间。

      对我来说,架构就是利用现有的技术和工具来创造尽可能多的商业价值,一方面关注现有业务所

提出的需求和限制,另一方面着眼于未来通过可伸缩性、灵活性以及可维护性等方面最大化价值。准

确解读架构原则和模式,有利于开发人员和解决方案架构师更好地理解和关注架构设计的整体设计过

程,以及可能会对整个方案的成败产生重大影响的设计问题。拥有这些知识,他们可以做出更合理的

决策,更好地平衡相竞争或重叠的需求和限制,并确保解决方案不仅能达到或超过业务目标,同时还

能节约成本、兼具可扩展性、可维护性以及灵活性。

     微软应用架构指南(第2版)

IV| 前言

      您可能注意到,我同时提及了开发人员和解决方案架构师,我认为两者都可以在充分理解了本指

南讲述的架构模式和架构原则后获益。有些人可能认为细节实现比不上整体设计重要,但依我的经验

看来往往不是这样的。一些小的决策随着时间的推移会累积。实现层次的一些细节可能会对解决方案

的整体架构(可伸缩性、可维护性及灵活性等方面)产生重大的影响,因此开发人员和解决方案架构

师都需要充分理解实现细节。此外,开发人员和解决方案架构师应该达成共识,可以使两者之间更好

的沟通,也有利于工作的开展。

      该指南旨在提供应用架构和设计原则和模式的概述,以帮助您做出更好的决策和构建更优秀的解

决方案。该指南编排为可以从头到尾阅读,也可作为参考资料从文中直接选取您需要的章节来阅读。

该指南的前半部分主要介绍能应用到所有类型解决方案的普适架构原则和设计原则,后半部分主要关

注常见应用程序类型(例如Web 应用程序、富客户端应用程序、或是移动应用程序)以及描述了每

一种类型的典型架构和关键设计考量。有可能您的特殊解决方案不能直接和某个应用方案匹配,但是

它们能为您提供一个基准架构,您可以在这个基准架构之上演化成您的特殊解决方案。该指南还提供

了一些有关如何找出您架构中关键元素的建议,这样您就可以不断对它们进行改进。

      该指南主要关注基于微软平台和.NET 框架开发的解决方案的指导,因此包含了提供相关技术和

工具细节的参考文章和资源。不过您会发现底层的原则和模式适用于任何平台。值得注意的是,本书

并不是一个针对应用架构和设计面面俱到的参考——如果是那样的话可能就需要更大的一本书或者

分成多卷了——因此本指南旨在提供针对最重要主题的概览及一些链接可以进一步扩展更细节的或

更深的内容。

      应用架构和设计领域是动态的不断变化的。在过去基于这些基本原理已经产生了很多成功的解决

方案,在将来这些基本原理同样能为我们所用。但是我们仍然应该期望变革的步伐不会停滞,不管是

在技术方面还是新的设计方式方面。微软平台和.NET 框架、一系列技术以及这些技术支持的各种应

用场景既深入又广泛,并且会越来越深入和广泛。不过,我们不需要等待将来的东西。现在就可以开

始构建令人称道的、有价值的解决方案,希望本指南会帮您完成这个工作。

                                                                                                          David Hill 

                                                                                                     模式和实践团队

                                                                                                        2009 年9 月

扩展阅读:

1.Bop的豆瓣主页:http://book.douban.com/subject/3004255/

2.互动网购买链接:http://www.china-pub.com/38070

3.“《编程之美》,IT人求职面试必读”链接:
http://www.google.com.hk/search?complete=1&hl=zh-CN&newwindow=1&q=编程之美+-+微软技术面试心得+邹欣&meta=&aq=f&oq=

 

posted @ 2010-11-03 10:00  博文视点  阅读(549)  评论(0编辑  收藏  举报