Top orm books mentioned on stackoverflow.com

The average book on Agile software development describes a fairyland of greenfield projects, with wall-to-wall tests that run after every few edits, and clean & simple source code.

The average software project, in our industry, was written under some aspect of code-and-fix, and without automated unit tests. And we can't just throw this code away; it represents a significant effort debugging and maintaining. It contains many latent requirements decisions. Just as Agile processes are incremental, Agile adoption must be incremental too. No more throwing away code just because it looked at us funny.

Mike begins his book with a very diplomatic definition of "Legacy". I'l skip ahead to the undiplomatic version: Legacy code is code without unit tests.

Before cleaning that code up, and before adding new features and removing bugs, such code must be de-legacified. It needs unit tests.

To add unit tests, you must change the code. To change the code, you need unit tests to show how safe your change was.

The core of the book is a cookbook of recipes to conduct various careful attacks. Each presents a particular problem, and a relatively safe way to migrate the code towards tests.

Code undergoing this migration will begin to experience the benefits of unit tests, and these benefits will incrementally make new tests easier to write. These efforts will make aspects of a legacy codebase easy to change.

It's an unfortunate commentary on the state of our programming industry how much we need this book.

This volume is a handbook for enterprise system developers, guiding them through the intricacies and lessons learned in enterprise application development. It provides proven solutions to the everyday problems facing information systems developers.

Users can dramatically improve the design, performance, and manageability of object-oriented code without altering its interfaces or behavior. "Refactoring" shows users exactly how to spot the best opportunities for refactoring and exactly how to do it, step by step.

Professional ASP.NET Design Patterns is all about showing you how to use the power of design patterns and core design principles in real ASP.NET applications. The goal of this book is to educate developers on the fundamentals of object oriented programming, design patterns, principles, and methodologies that can help you become a better programmer. Design patterns and principles enable loosely coupled and highly cohesive code, which will improve your code’s readability, flexibility, and maintenance. Each chapter addresses a layer in an enterprise ASP.NET application and shows how proven patterns, principles, and best practices can be leveraged to solve problems and improve the design of your code. In addition, a professional-level, end-to-end case study is used to show how to use best practice design patterns and principles in a real website. Professional ASP.NET Design Patterns is for ASP.NET developers who are comfortable with the .NET framework but are looking to improve how they code and understand why design patterns, design principles, and best practices will make their code more maintainable and adaptable. Readers who have had experience with design patterns before may wish to skip Part 1 of the book, which acts as an introduction to the Gang of Four design patterns and common design principles, including the S.O.L.I.D. principles and Martin Fowler’s enterprise patterns. All code samples are written in C# but the concepts can be applied very easily to VB.NET. This book covers well-known patterns and best practices for developing enterprise-level ASP.NET applications. The patterns used can be applied to any version of ASP.NET from 1.0 to 4.0. The patterns themselves are language agnostic and can be applied to any object oriented programming language. Professional ASP.NET Design Patterns can be used both as a step-by-step guide and as a continuous source of reference to dip into at your leisure. The book is broken into three distinct sections. Part 1 is an introduction to patterns and design principles. Part 2 examines how patterns and principles can be used in the various layers of an ASP.NET application. Part 3 represents an end-to-end case study showcasing many of the patterns covered in the book. You may find it useful to work through the chapters before reading the case study, or you may find it easier to see the patterns in action by reading the case study section first and referring back to Part 2 for a more detailed view on the patterns and principles used. Within those parts the coverage includes: The origins of the Gang of Four design patterns, their relevance in today’s world, and their decoupling from specific programming languages. An overview of some common design principles and the S.O.L.I.D. design principles follows, and the chapter ends with a description of Fowler’s enterprise patterns. Layering Your Application and Separating Your Concerns A description of the Transaction Script pattern followed by the Active Record, with an exercise to demonstrate the pattern using the Castle Windsor project. The Domain Model pattern demonstrated in an exercise with NHibernate and a review of the domain-driven design (DDD) methodology Patterns and principles that can be used construct your objects and how to make sure that you are building your application for scalability and maintainability: Factory, Decorator, Template, State, Strategy, Composite, Specification and Layer Supertype. Design principles that can improve your code’s maintainability and flexibility; these include Dependency Injection, Interface Segregation, and Liskov Substitution Principle Service Oriented Architecture, the Facade design pattern, messaging patterns such as Document Message, Request-Response, Reservation, and the Idempotent pattern The Data Access Layer: Two data access strategies are demonstrated to help organize your persistence layer: Repository and Data Access Objects. Enterprise patterns and principles that will help you fulfill your data access requirement needs elegantly, including Lazy Loading, Identity Map, Unit of Work, and the Query Object. An introduction to Object Relational Mappers and the problems they solve. An enterprise Domain Driven exercise with POCO business entities utilizing both NHibernate and the MS Entity Framework. The Presentation Layer: how you can tie your loosely coupled code together Structure Map and an Inversion of Control container. Presentation patterns, including letting the view be in charge with the Model-View-Presenter pattern and ASP.NET web forms, the Front Controller presentation pattern utilizing the Command and Chain of Responsibility patterns, as well as the Model-View-Controller Pattern implemented with the ASP.NET MVC framework and Windsor’s Castle Monorail framework. The final presentation pattern covered is PageController as used in ASP.NET web forms. A pattern that can be used with organizational patterns, namely the ViewModel pattern and how to automate domain entities to ViewModel mapping with AutoMapper The User Experience Layer: AJAX, JavaScript libraries, including jQuery. AJAX patterns: Ajax Periodic Refresh and Timeout patterns, maintaining history with the Unique URL pattern, client side data binding with JTemplate, and the Ajax Predictive Fetch pattern An end-to-end e-commerce store case study with ASP.NET MVC, NHibernate, jQuery, Json, AutoMapper, ASP.NET membership provider and a second 3rd party authentication method, and PayPal as a payment merchant

Pro JPA 2 introduces, explains, and demonstrates how to use the Java Persistence API (JPA). JPA provides Java developers with both the knowledge and insight needed to write Java applications that access relational databases through JPA. Authors Mike Keith and Merrick Schincariol take a hands–on approach to teaching by giving examples to illustrate each concept of the API and showing how it is used in practice. All of the examples use a common model from an overriding sample application, giving readers a context from which to start and helping them to understand the examples within an already familiar domain. After completing the book, you will have a full understanding and be able to successfully code applications using JPA. The book also serves as a reference guide during initial and later JPA application experiences. Hands-on examples for all the aspects of the JPA specification, based on the reference implementation of this specification A special section on migration to JPA Expert insight about various aspects of the API and when they are useful Portability hints to provide increased awareness of the potential for non–portable JPA code What you’ll learn Get started with enterprise applications using JPA 2 Get up to speed with object–relational mapping and Entity Manager Learn and use queries and the query language (JP QL) Employ advanced object–relational mapping techniques Use XML mapping files and learn other advanced techniques Package and deploy your Java persistence applications Test your Java persistence applications Migrate your Java persistence applications Who this book is for The book generally targets enterprise and persistence developers who fall in one of three categories: Those who are new to persistence; we will present some background information and introduce these readers to the basic persistence concepts to bring them up to speed. Those who know and/or use existing ORM persistence products such as Hibernate or TopLink. Those who have already used JPA and want to learn about newer features introduced by JPA 2, or have a good reference book to consult when they develop JPA applications. In general, we assume that the reader is knowledgeable with Java, SQL, and JDBC, and has a little knowledge of J2EE. Table of Contents Introduction Getting Started Enterprise Applications Object-Relational Mapping Collection Mapping Entity Manager Using Queries Query Language Criteria API Advanced Object-Relational Mapping Advanced Topics XML Mapping Files Packaging and Deployment Testing Migration

This third volume of the best-selling "Data Model Resource Book" series revolutionizes the data modeling discipline by answering the question "How can you save significant time while improving the quality of any type of data modeling effort?" In contrast to the first two volumes, this new volume focuses on the fundamental, underlying patterns that affect over 50 percent of most data modeling efforts. These patterns can be used to considerably reduce modeling time and cost, to jump-start data modeling efforts, as standards and guidelines to increase data model consistency and quality, and as an objective source against which an enterprise can evaluate data models. Praise for The Data Model Resource Book, Volume 3 "Len and Paul look beneath the superficial issues of data modeling and have produced a work that is a must for every serious designer and manager of an IT project." —Bill Inmon, World-renowned expert, speaker, and author on data warehousing and widely recognized as the "father of data warehousing" "The Data Model Resource Book, Volume 3: Universal Patterns for Data Modeling is a great source for reusable patterns you can use to save a tremendous amount of time, effort, and cost on any data modeling effort. Len Silverston and Paul Agnewhave provided an indispensable reference of very high-quality patterns for the most foundational types of datamodel structures. This book represents a revolutionary leap in moving the data modeling profession forward." —Ron Powell, Cofounder and Editorial Director of the Business Intelligence Network "After we model a Customer, Product, or Order, there is still more about each of these that remains to be captured, such as roles they play, classifications in which they belong, or states in which they change. The Data Model Resource Book, Volume 3: Universal Patterns for Data Modeling clearly illustrates these common structures. Len Silverston and Paul Agnew have created a valuable addition to our field, allowing us to improve the consistency and quality of our models by leveraging the many common structures within this text." —Steve Hoberman, Best-Selling Author of Data Modeling Made Simple "The large national health insurance company I work at has actively used these data patterns and the (Universal Data Models) UDM, ahead of this book, through Len Silverston's UDM Jump Start engagement. The patterns have found their way into the core of our Enterprise Information Model, our data warehouse designs, and progressively into key business function databases. We are getting to reuse the patterns across projects and are reaping benefits in understanding, flexibility, and time-to-market. Thanks so much." —David Chasteen, Enterprise Information Architect "Reusing proven data modeling design patterns means exactly that. Data models become stable, but remain very flexible to accommodate changes. We have had the fortune of having Len and Paul share the patterns that are described in this book via our engagements with Universal Data Models, LLC. These data modeling design patterns have helped us to focus on the essential business issues because we have leveraged these reusable building blocks for many of the standard design problems. These design patterns have also helped us to evaluate the quality of data models for their intended purpose. Many times there are a lot of enhancements required. Too often the very specialized business-oriented data model is also implemented physically. This may have significant drawbacks to flexibility. I'm looking forward to increasing the data modeling design pattern competence within Nokia with the help of this book." —Teemu Mattelmaki, Chief Information Architect, Nokia "Once again, Len Silverston, this time together with Paul Agnew, has made a valuable contribution to the body of knowledge about datamodels, and the act of building sound data models. As a professional d

Pro JPA 2, Second Edition introduces, explains, and demonstrates how to use the new Java Persistence API (JPA) 2.1 from the perspective of one of the specification creators. A one-of-a-kind resource, it provides both theoretical and extremely practical coverage of JPA usage for both beginning and advanced developers. Authors Mike Keith and Merrick Schincariol take a hands–on approach, based on their wealth of experience and expertise, by giving examples to illustrate each concept of the API and showing how it is used in practice. The examples use a common model from an overriding sample application, giving readers a context from which to start and helping them to understand the examples within an already familiar domain. After completing the book, you will have a full understanding of JPA and be able to successfully code applications using its annotations and APIs. The book also serves as an excellent reference guide during initial and later JPA application experiences. Hands-on examples for all aspects of the JPA specification Expert insight about various aspects of the API and when they are useful Portability hints to provide increased awareness of the potential for non–portable JPA code What you’ll learn How to get started with enterprise applications using JPA 2.1 Simple and advanced object–relational mapping techiques How to use the complete Entity Manager API How to create queries using the query language (JP QL) and the Criteria API Locking, concurrency, and other advanced concepts How to use XML mapping files and descriptors How to package and deploy your Java Persistence applications How to test your Java Persistence applications Who this book is for The book generally targets enterprise and persistence developers who fall in one of three categories: Those who are new to persistence; we will offer an introduction to persistence and to the basic concepts so these readers can have solid base from which to become proficient at JPA. Those who know and/or use existing ORM persistence products such as Hibernate or TopLink/EclipseLink. Those who have already used JPA and want to learn about newer features introduced by JPA 2.1, or have a good reference book to consult when they develop JPA applications. In general, we assume that the reader is knowledgeable with Java, SQL, and JDBC, and has a little knowledge of Java EE. Table of Contents Introduction Getting Started Enterprise Applications Object Relational Mapping Collection Mapping Entity Manager Using Queries Java Persistence Query Language Criteria Advanced Object Relational Mapping Advanced Queries Advanced Topics XML Mapping Files Packaging and Deployment Testing

Domain Driven Design is a vision and approach for dealing with highly complex domains that is based on making the domain itself the main focus of the project, and maintaining a software model that reflects a deep understanding of the domain. This book is a short, quickly-readable summary and introduction to the fundamentals of DDD; it does not introduce any new concepts; it attempts to concisely summarize the essence of what DDD is, drawing mostly Eric Evans' original book, as well other sources since published such as Jimmy Nilsson's Applying Domain Driven Design, and various DDD discussion forums. The main topics covered in the book include: Building Domain Knowledge, The Ubiquitous Language, Model Driven Design, Refactoring Toward Deeper Insight, and Preserving Model Integrity. Also included is an interview with Eric Evans on Domain Driven Design today.