Patterns, Principles, and Practices of Domain-Driven Design

Sold by John Wiley & Sons
1
Free sample

Methods for managing complex software construction following the practices, principles and patterns of Domain-Driven Design with code examples in C#

This book presents the philosophy of Domain-Driven Design (DDD) in a down-to-earth and practical manner for experienced developers building applications for complex domains. A focus is placed on the principles and practices of decomposing a complex problem space as well as the implementation patterns and best practices for shaping a maintainable solution space. You will learn how to build effective domain models through the use of tactical patterns and how to retain their integrity by applying the strategic patterns of DDD. Full end-to-end coding examples demonstrate techniques for integrating a decomposed and distributed solution space while coding best practices and patterns advise you on how to architect applications for maintenance and scale.

  • Offers a thorough introduction to the philosophy of DDD for professional developers
  • Includes masses of code and examples of concept in action that other books have only covered theoretically
  • Covers the patterns of CQRS, Messaging, REST, Event Sourcing and Event-Driven Architectures
  • Also ideal for Java developers who want to better understand the implementation of DDD
Read more
Collapse

About the author

Scott Millett is the Director of IT for Iglu.com, and has been working with .NET since version 1.0. He was awarded the ASP.NET MVP in 2010 and 2011, and is the author of Professional ASP.NET Design Patterns and Professional Enterprise .NET.

Nick Tune is a software developer delivering solutions to complex business problems using technology, collaboration, and Domain-Driven Design. He continually seeks improvement by working on ambitious products and with enthusiastic people.

Read more
Collapse
5.0
1 total
Loading...

Additional Information

Publisher
John Wiley & Sons
Read more
Collapse
Published on
Apr 20, 2015
Read more
Collapse
Pages
800
Read more
Collapse
ISBN
9781118714652
Read more
Collapse
Read more
Collapse
Best For
Read more
Collapse
Language
English
Read more
Collapse
Genres
Computers / Programming / General
Computers / Software Development & Engineering / General
Read more
Collapse
Content Protection
This content is DRM protected.
Read more
Collapse

Reading information

Smartphones and Tablets

Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.

Laptops and Computers

You can read books purchased on Google Play using your computer's web browser.

eReaders and other devices

To read on e-ink devices like the Sony eReader or Barnes & Noble Nook, you'll need to download a file and transfer it to your device. Please follow the detailed Help center instructions to transfer the files to supported eReaders.
Software Conflict 2.0: The Art and Science of Software Engineering updates and expands a neglected classic in the field. The nearly 60 essays in this book--always easily digestible, often profound, and never too serious--are the work of pioneer Robert L. Glass, 50 year software veteran, and author or editor of more than 25 books, including the recent bestseller Facts and Fallacies of Software Engineering. As loyal Glass readers have come to expect, Software Conflict 2.0 takes up large themes and important questions, never shying away from controversy. Robert Glass has a unique perspective, owing partly to his longevity in the field, partly to his breadth and depth of experience as a practitioner, and partly to his experiences on multiple continents crossing back and forth between the worlds of the university and the professional programming shop. No matter what unique corner of the software engineering world you call home--be it aerospace or e-commerce--whether you are a researcher, hardcore coder, consultant, or manager, Software Conflict 2.0 tackles questions and conflicts that you will recognize. Bob Glass's wide and deep perspective on the art and science of software engineering will widen and deepen your own perspective. Pragmatic Programmer Andy Hunt writes in his Foreword to this book, "Eleventh-century philosopher Pierre Abelard taught that, 'The beginning of wisdom is found in doubting; by doubting we come to the question, and by seeking we may come upon the truth.' Welcome to Bob's essays on software conflict. Here you'll find the seeds of doubt, some underlying questions, and a fellow seeker." We couldn't agree more. The first edition of Software Conflict was published circa 1990 and, until now, has been out of print for some time. Why? Mainly because that?s the normal pattern for software books: a new book is hot when it hits the streets, but then trends change, paradigms shift, and eventually the publisher stops placing orders with the printer. As hundreds of new books are published every year, a real treasure can be buried in the shifting sands. Sometimes the significance of a software book transcends the endless cycle of trends and revolutions. In fact, some of the great software books continue to be discussed even decades after their original publication. Why do people keep reading these "dated" software engineering books? Because the insights of these great books are timeless, as valid today as they were yesterday. Because these insights help us become better software professionals, better researchers, better managers. And because the writings of a computing pioneer like Robert L. Glass might just reveal something about where we are today and where we?re headed. Software Conflict 2.0 features six new essays by Robert Glass and a new Foreword by Andrew Hunt of the Pragmatic Programmers (Table of Contents).
“For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades.”

–Randy Stafford, Architect At-Large, Oracle Coherence Product Development

“This book is a must-read for anybody looking to put DDD into practice.”

–Udi Dahan, Founder of NServiceBus

Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations.

Building on Eric Evans’ seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples–all applicable to C# developers–and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment.

The author takes you far beyond “DDD-lite” approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD’s “strategic design patterns” using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals.

Coverage includes

Getting started the right way with DDD, so you can rapidly gain value from it Using DDD within diverse architectures, including Hexagonal, SOA, REST, CQRS, Event-Driven, and Fabric/Grid-Based Appropriately designing and applying Entities–and learning when to use Value Objects instead Mastering DDD’s powerful new Domain Events technique Designing Repositories for ORM, NoSQL, and other databases

With the award-winning book Agile Software Development: Principles, Patterns, and Practices, Robert C. Martin helped bring Agile principles to tens of thousands of Java and C++ programmers. Now .NET programmers have a definitive guide to agile methods with this completely updated volume from Robert C. Martin and Micah Martin, Agile Principles, Patterns, and Practices in C#.

This book presents a series of case studies illustrating the fundamentals of Agile development and Agile design, and moves quickly from UML models to real C# code. The introductory chapters lay out the basics of the agile movement, while the later chapters show proven techniques in action. The book includes many source code examples that are also available for download from the authors’ Web site.

Readers will come away from this book understanding

Agile principles, and the fourteen practices of Extreme Programming Spiking, splitting, velocity, and planning iterations and releases Test-driven development, test-first design, and acceptance testing Refactoring with unit testing Pair programming Agile design and design smells The five types of UML diagrams and how to use them effectively Object-oriented package design and design patterns How to put all of it together for a real-world project

Whether you are a C# programmer or a Visual Basic or Java programmer learning C#, a software development manager, or a business analyst, Agile Principles, Patterns, and Practices in C# is the first book you should read to understand agile software and how it applies to programming in the .NET Framework.



This Wrox Blox demonstrates how to start using NHibernate in line business applications using ASP.NET and VB.NET. Using NHibernate will speed up your application development by removing the need to build your own Data Access Layer (DAL). In addition, you can focus solely on the business problem instead of the infrastructure concerns. Using a simple demo application as an example, this Wrox Blox shows how easy it is to get started with NHibernate and build your DAL in minutes instead of hours. Readers will also see how the POCO pattern enables you to keep your DAL as unobtrusive as possible as well as being interchangeable for future DAL implementations. You will also see how NHibernate has many enterprise patterns built into it, like the Unit of Work pattern and the Identity Map.

Table of Contents

What Is an Object Relational Mapper? 2

Why NHibernate? 2

Part 1: Getting Started with NHibernate 2

A Quick Demo 2

Part 2: The NHibernate Framework 13

Architecture and Core Concepts 13

Mapping Your Entities: Impedance Mismatch 16

Persisting Business Objects 18

Part 3: Using NHibernate 19

Introducing the Project and Laying out the Solution Framework 19

Designing the Domain Model 23

NHibernate Repository Project: Base Class 39

Managing Products 48

Managing Customers 58

NHibernate Repository Project: Refactoring and Session Management 69

Managing Orders 74

The Database — A Question of Storage 94

Presentation with the Model–View–Presenter Pattern 96

User Interface: ASP.NET 103

Part 4: Other NHibernate Bits and Pieces 113

Other Querying Methods 113

Mapping Inheritance 115

What Kind of SQL Is Being Produced? 118

Wrap Up 119

Scott Millett 120

©2019 GoogleSite Terms of ServicePrivacyDevelopersArtistsAbout Google|Location: United StatesLanguage: English (United States)
By purchasing this item, you are transacting with Google Payments and agreeing to the Google Payments Terms of Service and Privacy Notice.