出版時(shí)間:2009年9 出版社:人民郵電出版社 作者:Dino Esposito,Andrea Saltarello 頁(yè)數(shù):432 字?jǐn)?shù):547000
Tag標(biāo)簽:無
內(nèi)容概要
本書出自兩位具有多年軟件開發(fā)經(jīng)驗(yàn)的 ASP .NET專家、作者和培訓(xùn)師之手,內(nèi)容涉及多層架構(gòu)、設(shè)計(jì)模式以及設(shè)計(jì)原則。第一部分簡(jiǎn)要介紹 UML、設(shè)計(jì)原則及模式;第二部分從技術(shù)架構(gòu)角度討論分層設(shè)計(jì)。本書行文流暢,語言通俗易懂,闡述了各種架構(gòu)設(shè)計(jì)技術(shù)方案的優(yōu)與劣,并講述了如何在優(yōu)與劣中做出權(quán)衡。中設(shè)計(jì)了真實(shí)的場(chǎng)景,展示了如何將這些設(shè)計(jì)原則更加具體地應(yīng)用到 .NET應(yīng)用程序中?! ”緯m合各層次 .NET開發(fā)人員閱讀。
作者簡(jiǎn)介
作者:(意大利)埃斯波西托(Dino Esposito) (意大利)索爾塔雷羅(Andrea Saltarello)DinoEsposito,.NET和軟件架構(gòu)技術(shù)方面的世界級(jí)權(quán)威,微軟ASP.NETMVP。目前就職于著名的.NET技術(shù)咨詢公司IDesign。他是廣受歡迎的技術(shù)作家。擔(dān)任MSDNMagazine特邀專欄作家多年。并撰有ProgrammingASP.NET-3.5CoreReferences等名著。AndreaSaItareIIo,微軟ASP.NETMVP。意大利.NET用戶組負(fù)責(zé)人?,F(xiàn)任ManagedDesigns公司首席軟件架構(gòu)師。
書籍目錄
Part I Principles 1 Architects and Architecture Today What's a Software Architecture, Anyway? Applying Architectural Principles to Software What's Architecture and What's Not Architecture Is About Decisions Requirements and Quality of Software Who's the Architect, Anyway? An Architect's Responsibilities How Many Types of Architects Do You Know? Common Misconceptions About Architects Overview of the Software Development Process The Software Life Cycle Models for Software Development Summary Murphy's Laws of the Chapter 2 UML Essentials UML at a Glance Motivation for and History of Modeling Languages UML Modes and Usage UML Diagrams Use-Case Diagrams Class Diagrams Sequence Diagrams Summary Murphy's Laws of the Chapter 3 Design Principles and Patterns Basic Design Principles For What the Alarm Bell Should Ring Structured Design Separation of Concerns Object-Oriented Design Basic OOD Principles Advanced Principles From Principles to Patterns What's a Pattern, Anyway? Patterns vs. Idioms Dependency Injection Applying Requirements by Design Testability Security From Objects to Aspects Aspect-Oriented Programming AOP in Action Summary Murphy's Laws of the Chapter Part II Design of the System 4 The Business Layer What's the Business Logic Layer, Anyway? Dissecting the Business Layer Where Would You Fit the BLL? Business and Other Layers Patterns for Creating the Business Layer The Transaction Script Pattern Generalities of the TS Pattern The Pattern in Action The Table Module Pattern Generalities of the TM Pattern The TM Pattern in Action The Active Record Pattern Generalities of the AR Pattern The AR Pattern in Action The Domain Model Pattern Generalities of the DM Pattern The DM Pattern in Action Summary Murphy's Laws of the Chapter 5 The Service Layer What's the Service Layer, Anyway? Responsibilities of the Service Layer What's a Service, Anyway? Services in the Service Layer The Service Layer Pattern in Action Generalities of the Service Layer Pattern The Service Layer Pattern in Action Related Patterns The Remote Fa?ade Pattern The Data Transfer Object Pattern The Adapter Pattern DTO vs. Assembly Service-Oriented Architecture Tenets of SOA What SOA Is Not SOA and the Service Layer The Very Special Case of Rich Web Front Ends Refactoring the Service Layer Designing an AJAX Service Layer Securing the AJAX Service Layer Summary Murphy's Laws of the Chapter 6 The Data Access Layer What's the Data Access Layer, Anyway? Functional Requirements of the Data Access Layer Responsibilities of the Data Access Layer The Data Access Layer and Other Layers Designing Your Own Data Access Layer The Contract of the DAL The Plugin Pattern The Inversion of Control Pattern Laying the Groundwork for a Data Context Crafting Your Own Data Access Layer Implementing the Persistence Layer Implementing Query Services Implementing Transactional Semantics Implementing Uniquing and Identity Maps Implementing Concurrency Implementing Lazy Loading Power to the DAL with an O/RM Tool Object/Relational Mappers Using an O/RM Tool to Build a DAL To SP or Not to SP About Myths and Stored Procedures What About Dynamic SQL? Summary Murphy's Laws of the Chapter 7 The Presentation Layer User Interface and Presentation Logic Responsibilities of the Presentation Layer Responsibilities of the User Interface Common Pitfalls of a Presentation Layer Evolution of the Presentation Patterns The Model-View-Controller Pattern The Model-View-Presenter Pattern The Presentation Model Pattern Choosing a Pattern for the User Interface Design of the Presentation What Data Is Displayed in the View? Processing User Actions Idiomatic Presentation Design MVP in Web Presentations MVP in Windows Presentations Summary Murphy's Laws of the Chapter Final Thoughts Appendix: The Northwind Starter Kit Index
章節(jié)摘錄
插圖:To design a system——any system in any scientific field——you first need to create an abstractionof it. An abstraction is essentially a model that provides a conceptual representation of thesystem in terms of views, structure, behavior, participating entities, and processes.A model exists to be shared among the stakeholders of the system, including developers,architects, owners, and customers. Stakeholders should be able to understand the model inorder to provide feedback, spot wrong assumptions, and suggest improvements. To share amodel, though, you need to express it in a formal way using a common, and possibly broadlyaccepted, notation. For this, you need a modeling language.Typically, a modeling language is a graphical or textual language based on a set of rules,symbols, diagrams, and keywords. All together, the language elements are used to expressthe structure and behavior of the model in a way that transmits clear knowledge andinformation to anybody familiar with the language.There are several well-known examples of modeling languages——for exampe the IntegratedDEFinition (IDEF) family of modeling languages used for functional modeling, informationmodeling, simulation, and more. There's also the VirtuaIReality Modeling Language (VRML),which is used to represent 3D graphics, and EXPRESS (textual) and EXPRESS-G (graphical) fordata modeling.However, when it comes to modeling languages, the most popular one is Unified ModelingLanguage (UML). UML is a general-purpose graphical modeling language that, over theyears, has become the industry standard for modeling software systems. Based on a family ofgraphical notations, UML is particularly suited to creating models in obJect-oriented scenarios.It might not be as effective when another paradigm is used, such as a functional or perhapsa relational paradigm, but it's a good fit for object-oriented systems.
媒體關(guān)注與評(píng)論
“所有架構(gòu)師的必讀之作……無可替代?!薄 甆ET Developer's Journal“還等什么?如果你有機(jī)會(huì)看到本書,請(qǐng)盡快把它‘消滅’。就像我在地鐵上如饑似渴地暢讀一樣……” ——王濤(AnyTao)。微軟MVP“本書酣暢淋漓地闡發(fā)了.NET平臺(tái)下企業(yè)軟件架構(gòu)的精髓。為開發(fā)人員獻(xiàn)上了不可多得的饕餮大餐?!薄 惱璺颍―flying),微軟MVP
編輯推薦
《.NET軟件架構(gòu)之美(英文版)》填補(bǔ)了這一缺憾。兩位作者人選可謂眾望所歸,他們將GoF設(shè)計(jì)模式、MartinFowler企業(yè)架構(gòu)模式、EricEvans領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)等業(yè)界精華與自己多年軟件開發(fā)實(shí)戰(zhàn)經(jīng)驗(yàn)結(jié)合起來,深刻闡述了軟件架構(gòu)設(shè)計(jì)思想精髓。作者還從技術(shù)架構(gòu)角度逐章講述了業(yè)務(wù)層、服務(wù)層、數(shù)據(jù)訪問層和表現(xiàn)層的分層設(shè)計(jì),同時(shí)介紹了各種軟件架構(gòu)設(shè)計(jì)方案的優(yōu)劣,如何在各種方案中做出抉擇,以及如何將這些設(shè)計(jì)原則更具體地用到應(yīng)用程序中。軟件架構(gòu)設(shè)計(jì)是現(xiàn)代軟件開發(fā)的核心,它不僅是一門技術(shù),更是一門藝術(shù)。然而,長(zhǎng)期以來,還沒有一本專門講述.NET架構(gòu)設(shè)計(jì)的書。Amazon全五星圖書,緊貼實(shí)戰(zhàn),透過實(shí)例探討架構(gòu)設(shè)計(jì)最佳實(shí)踐,深刻闡述軟件開發(fā)思想。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載