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

简介:   购买链接:http://www.china-pub.com/197209    译者序   做.NET 或是微软平台的架构设计既简单又困难。说简单的理由是,微软提供的产品往往考虑全面,容易上手,并且文档丰富。

 

购买链接:http://www.china-pub.com/197209

 

 译者序

 

做.NET 或是微软平台的架构设计既简单又困难。说简单的理由是,微软提供的产品往往考虑全面,容易上手,并且文档丰富。说困难的理由是,微软往往没有什么权威性的“指南”推荐说A方面可以用X 技术,B 方面可以用Y 技术(比如JAVA 开发流行的Struts2+Spring+Hibernate 框架),甚至更大的问题是(特别是前几年)微软没有提供针对一些常见技术(比如ORM/MVC/AOP)的“官方”实现。这就使得.NET 平台的一些系统的架构五花八门,有的架构师愿意自己写一些轻量级的实现,有的则愿意使用从JAVA 移植过来的一些实现,比如NHibernate、Spring.NET 等。
而现在,《微软应用架构指南》这本书针对前面提到的问题提供了一个不错的答案,它针对不同的技术点或应用场景或应用程序的类型,给出了一些微软平台(甚至开源界)可用的或是推荐的一些技术或框架,还介绍了何时适用这些技术和框架及在处理这些点的时候应该考虑的问题。更重要的是,微软在近几年确实针对很多技术提供了微软自己的实现,比如ORM 框架ADO.NET EntityFramework、SOA 框架WCF、MVC 框架ASP.NET MVC,等等。对于那些对框架的选择头疼(想引入非官方框架却又怕遇到难以解决的问题)的技术人员和架构师来说确实是好消息。
在翻译和阅读本书的过程中,译者有几点体会和读者一起分享。
(一)如何使用本书?
作者不止一次提到本书是一个大纲而不是大全,本书的重点在于介绍架构设计的方法学;架构设计中要考虑哪些方面的问题,这些问题有哪些技术可以解决或实现;微软平台有哪些应用程序类型,这些应用程序有哪些技术可以实现;应用程序怎么进行拆分,拆分后的每一部分可以由哪些技术来实现。也就是说本书主要解释的是有哪些“东西”以及这些“东西”可以由什么来实现这两个问题。对于后者,由于篇幅的关系只能列出技术或方法的名字然后提供一个参考链接。
我们知道,对于架构设计来说,其中包含的技术、框架、原则不太可能靠几小时或几天来彻底了解透彻,应该通过阅读本书来了解我们手里有哪些“东西”,这些“东西”适合什么样的应用场景。如果在之后架构设计的过程中你发现可以并且适用这个技术,可以进一步深入阅读和研究这些扩展资料。个人认为应该这样阅读本书:首先把自己不知道的知识点通读补全,然后可以把本书当作一本参考书,在实际架构设计的过程中根据自己的记忆能回忆起“这个问题好像在书中提到过可以用XXX 来解决”,那么再拿起本书找一些书中列出的参考链接或在网上找一些参考资料进一步学习。
(二)读不懂怎么办?
译者认为本书针对的是架构师和有架构经验的开发人员,如果读者刚接触程序开发或从未对完整的系统或是系统的一个模块进行过架构设计(所谓架构设计可以理解为设计一个系统中需要哪些组件及各个组件之间如何协同工作,以及确保这个系统达到预计的质量和需求需要做的工作),那么确实会比较难理解本书,在经过了自己的实践尝试之后回头再阅读本书您会发现不再是完全看不懂了,而是可以知道自己要了解的那部分内容可以在哪里找到答案。其实,即使是经验丰富的开发人员和架构师也可能会遇到不理解的内容,因为微软平台的技术是如此广泛,我们的工作往往关注的是某个平台的开发,比如桌面应用程序、移动应用程序、网站等,而不会面面俱到,因此您完全可以不必介意读不懂哪部分内容,有的只需要了解即可。
对于每一个方面,本书会列出许多需要考虑的要点,需要实现的步骤,能使用的技术。列出的这些条目源自许多技术专家在针对这方面进行架构设计时积累的经验,如果读者进行过这样的考虑甚至是尝试,就会容易理解作者想表达的意思,甚至会在读到这个条目后暗自叫好。译者就有这样的体会,由于自己做过一些横切关注点的框架实现,在阅读横切关注点一章时,看到和自己的思考吻合的一些条目时,才能体会到小小的一行条目包含了作者大量尝试后的经验和体会(十几个字归纳了译者经过几小时甚至几天的实践得出的结论)。相反,对于一些自己不熟悉的技术,确实也难以彻底理解每一个条目。因此,如果读者正在从事相关架构设计或开发的话,可以再仔细阅读每一部分内容下的一些子条目,或许你可以有新的发现。
(三)如何进行架构设计?
如何进行架构设计是本书讨论的重点,译者认为最主要的是权衡、渐进两点。所谓权衡,就是我们在进行架构设计的时候首先需要找出我们的目标包括哪些因素,每一个因素又需要达到怎么样的指标;然后根据这些因素的重要程度结合我们实际情况(软硬件、成本、资源)等等权衡得出一种比较适合的架构。所谓渐进就是架构设计和软件开发相似,应该是一个迭代的过程,每一个系统都会经历从少到多,从简单到复杂的过程,我们的架构往往只需要满足当前的负载即可,过于超前的考虑会带来不必要的成本,随着时间的推移,我们可以通过不断演化架构来满足新的功能和负载需求。其次,在为一个大型系统做架构设计的时候,可以先考虑把这个架构划分成独立的关注点,然后针对每一个点,分别进行方案制定、技术评估、开发测试等过程,最后把每一个点的方案合并在一起组成一个完整的架构。另外,对于架构设计中引入的技术根据项目的性质可以采用不同的策略,如果是一个内部项目,面向少量用户并且不会是一个长期的项目,那么可以考虑引入一些新技术、新框架,如果是一个外部项目,面向大量的访问并且需要保持数年的稳定,那么一定要慎用一些未经验证的新技术,慎用一些我们不能掌控的框架,否则一旦出现问题我们很难在短时间解决。
本书的前半部分(从第1 章开始到第19 章)由我翻译,后半部分(从第20 章开始到最后)由我的同事高翔翻译。由于时间和能力的关系,翻译中肯定有很多不足,欢迎大家提出自己的意见和建议。同样欢迎读者和我探讨有关架构和设计的问题,我的邮箱是yzhu@live.com。
朱晔
2010年10月

作者: lovecindywang
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章
|
22天前
|
Prometheus 监控 Kubernetes
Prometheus 在微服务架构中的应用
【8月更文第29天】随着微服务架构的普及,监控和跟踪各个服务的状态变得尤为重要。Prometheus 是一个开源的监控系统和时间序列数据库,非常适合用于微服务架构中的监控。本文将详细介绍 Prometheus 如何支持微服务架构下的监控需求,包括服务发现、服务间的监控指标收集以及如何配置 Prometheus 来适应这些需求。
53 0
|
2天前
|
Kubernetes Cloud Native 持续交付
深入理解云原生技术及其在现代IT架构中的应用
【9月更文挑战第18天】云原生技术,作为推动企业数字化转型的引擎,正以它独特的魅力重塑着信息技术的未来。本文将带你一探究竟,从云原生的基础概念出发,逐步深入到其核心组件、设计理念以及如何在实际应用中发挥巨大作用。你将了解到容器化、微服务架构、持续集成与持续部署(CI/CD)等关键实践,并见证它们如何帮助企业构建更加灵活、高效和可靠的应用。
|
8天前
|
存储 搜索推荐 数据库
MarkLogic在微服务架构中的应用:提供服务间通信和数据共享的机制
随着微服务架构的发展,服务间通信和数据共享成为关键挑战。本文介绍MarkLogic数据库在微服务架构中的应用,阐述其多模型支持、索引搜索、事务处理及高可用性等优势,以及如何利用MarkLogic实现数据共享、服务间通信、事件驱动架构和数据分析,提升系统的可伸缩性和可靠性。
17 5
|
8天前
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
32 4
|
8天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
18 3
|
15天前
|
传感器 Cloud Native 物联网
Micronaut在物联网中的应用探索:轻盈架构赋能万物互联新时代
【9月更文挑战第6天】Micronaut是一个现代、轻量级的Java框架,以其高效、易用及对云原生环境的支持,在物联网开发中展现出独特优势。它通过AOT编译技术优化应用,减少内存消耗,适合资源受限的设备。Micronaut支持反应式编程和HTTP/2,提升并发处理能力和网络传输效率。本文通过一个温度传感器数据收集服务的例子,展示了如何利用Micronaut简化物联网应用开发,使其成为该领域的理想选择。
31 3
|
1天前
|
Kubernetes Cloud Native Devops
云原生架构的崛起与应用##
云原生架构是现代企业数字化转型的关键,通过容器化、微服务、DevOps等技术,实现高效、灵活的应用部署和管理。本文探讨云原生的核心概念、主要技术及其实际应用价值,揭示其在提升企业运营效率和创新能力中的重要性。 ##
12 0
|
4天前
|
缓存 负载均衡 数据管理
深入探索微服务架构的核心要素与实践策略在当今软件开发领域,微服务架构以其独特的优势和灵活性,已成为众多企业和开发者的首选。本文将深入探讨微服务架构的核心要素,包括服务拆分、通信机制、数据管理等,并结合实际案例分析其在不同场景下的应用策略,旨在为读者提供一套全面、深入的微服务架构实践指南。**
**微服务架构作为软件开发领域的热门话题,正引领着一场技术革新。本文从微服务架构的核心要素出发,详细阐述了服务拆分的原则与方法、通信机制的选择与优化、数据管理的策略与挑战等内容。同时,结合具体案例,分析了微服务架构在不同场景下的应用策略,为读者提供了实用的指导和建议。
|
20天前
|
存储 前端开发 数据库
神秘编程世界惊现强大架构!Web2py 的 MVC 究竟隐藏着怎样的神奇魔力?带你探索实际应用之谜!
【8月更文挑战第31天】在现代 Web 开发中,MVC(Model-View-Controller)架构被广泛应用,将应用程序分为模型、视图和控制器三个部分,有助于提高代码的可维护性、可扩展性和可测试性。Web2py 是一个采用 MVC 架构的 Python Web 框架,其中模型处理数据和业务逻辑,视图负责呈现数据给用户,控制器则协调模型和视图之间的交互。
25 0
|
22天前
|
运维 应用服务中间件 网络安全
自动化运维的新篇章:Ansible在现代IT架构中的应用与实践
【8月更文挑战第30天】随着信息技术的飞速发展,企业对运维效率和可靠性的要求日益增高。传统的手动运维方式已难以应对复杂多变的IT环境,自动化运维因此成为行业新宠。本文将深入探讨Ansible这一流行的自动化工具,如何通过其简洁的配置管理和强大的多节点部署能力,助力现代IT架构实现高效、可靠的运维管理。我们将从Ansible的核心概念入手,逐步解析其在配置管理、任务执行、应用部署等方面的实战应用,并结合代码示例,展示如何利用Ansible简化日常运维工作,提升运维质量和效率。无论你是运维新手还是资深专家,这篇文章都将为你提供宝贵的洞见和实操技巧。

热门文章

最新文章