《框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版)》从最基本的设计原则和准则出发,全方位介绍了设计框架的最佳实践,是微软工程师从.NET Framework开发伊始到现如今的.NET这二十来年间宝贵经验的总结。
与第2版发布时的2008年相比,今天的软件开发范式用翻天覆地来形容也不为过,容器化、云服务、跨平台、DevOps等,都对今天的软件开发者和框架设计者提出了更高的要求。本书对第2版的内容进行了全面的更新,以适应当下发展的潮流。
《框架设计指南:构建可复用.NET库的约定、惯例与模式(第3版)》虽然是面向.NET平台上的框架设计的,但对其他平台的框架设计同样具有非凡的借鉴价值。通过阅读本书,读者可以了解到如何设计出一个对使用者而言简单、易用且具有一致性的优秀框架。
深刻揭露框架设计底层思想||权衡思辨适用各种语言平台||来自.NET框架缔造微软宝藏级大师
作者简介
Krzysztof Cwalina 是微软的软件架构师,是 .NET框架团队的初始成员之一,在职业生涯中,他成功设计了许多 .NET API。目前,他正致力于帮助微软的不同团队开发不同编程语言下的可复用 API。Krzysztof 拥有爱荷华大学计算机科学专业的学士学位和硕士学位。
Jeremy Barton 是 .NET Core Libraries 团队的一名工程师。在使用 C# 设计和开发小型框架十几年后,他于 2015 年加入 .NET 团队,从事全新的 .NET Core 项目中密码学相关类库的跨平台开发工作。Jeremy 毕业于罗斯-霍曼理工学院计算机科学和数学专业。
Brad Abrams 是微软通用语言运行时(Common Language Runtime,CLR)和 .NET 框架团队的初始成员之一。从 1998 年开始,他就一直在为 .NET 框架做设计。Brad 从构建基类库(BCL)开始他的框架设计生涯,而这个库后来成为 .NET框架的核心部分。此外,他还是通用语言规范(Common Language Specification,CLS)、.NET框架设计指南和.NET框架中ECMA/ISO通用语言基础架构(Common Language Infrastructure,CLI)标准实现的主要作者。Brad 编写和合著了多本出版物,包括Programming in the .NET Environment和.NET Framework Standard Library Annotated Reference的卷一和卷二。Brad 毕业于北卡罗来纳州立大学计算机科学专业,你可以在他的博客上了解他最近的想法。Brad现在是Google的集团产品经理(Group Product Manager),他正在为 Google Assistant孵化新项目。
译者简介
王桥,2016年毕业于厦门大学,现在是微软的软件开发工程师。他在大学毕业后就一直深耕于 Web开发领域,在 TypeScript/JavaScript 和 . NET 等方面有丰富的编程实战经验。
前言
在设计 .NET 平台之初,我们希望它能成为当时最具生产力的企业应用开发平台。在 20 年前,这意味着将“客服端-服务端”架构的应用托管在专用硬件之上。
今天,我们发现自己正置身于行业最大的范式转移之一中:转向云计算。这一转变为企业带来了新的机遇,但对现有的平台来说可能会很棘手,因为开发人员想要开发新型应用程序,导致现有的平台需要去适应由此而来的各种各样的需求。
.NET平台转型相当成功,我认为其中一个主要原因是,我们在设计它的过程中非常小心谨慎,不仅关注生产力、一致性和简单性,还注重确保它能够随着时间的推移不断发展。.NET Core正代表了这种进化,它在云应用开发人员所关心的诸如性能、资源利用率和容器化支持等方面都有显著的提升。
《框架设计指南》第3版新增了许多设计准则,这些准则与 .NET 团队在从“客服端-服务端”应用到云应用这一转变过程中所采取的一系列变更息息相关。
Scott Guthrie
雷德蒙,华盛顿
2020年1月