代码改变世界

读书笔记:《Pro LINQ Object Relational Mapping with C# 2008》

2009-04-29 15:54  宗哥  阅读(1881)  评论(2编辑  收藏  举报

引子:这本书我正在看,国内还没有中文版,觉得还不错,不是单单讲到LINQ,对于这个企业软件设计,架构都用借鉴意义,就简单的翻译下,翻译的不合适的地方,请指教。原书参考:http://wwwapresscom/book/view/1590599659

        软件发展到今天,绝大部分企业级软件利用关系数据库作为后台,进行数据操作,听起来容易,现实中 有各种各样的方式在软件系统和数据库之间建立联系,成千上万的都为实现一套通用数据访问层努力。这 本书向我们介绍一个高效,可重复的方法,适用于工业设计模式建立可扩展的面向对象的数据访问层。

        过去的几年(译者注:在LINQ to SQL 和Entity Framework发布前),对象关系映射 (O/R Mapping)一直被认为是微软的垢病,这并不是说基于微软平台开发的人不懂OR/M,相反市场上有 着各种各样的Net O/RM工具,问题在于缺乏对面向对象和对象持久化能力支持的原生工具,已经影响到开 发工作效率。在Net战略发布初期,微软开发了面向对象的开发环境和Framework。随着LINQ组件发布,对 象持久化能力被真正支持,像LINQ TO SQL,LINQ TO EF,基于Net平台开发者终于可以有了原生的工具去 建立模块化,可重用的数据访问层了。本书读者为基于Net平台或者打算基于Net平台开发已数据为中心的 应用的开发人员,它提供的模式和资源,可复用于构建企业级的软件。(译者注:最好有Net开发经验) 通过学习,基本上你讲收获如下:

  1. 体会使用OR/M带给你代码的便利。
  2. Visual Studio 2008自带的OR/M工具
  3. 利用OR/M灵活的优点建立可扩展的面向对象的数据访问层。
  4. LINQ如何实现这种情况,并说明他的优点和缺点。
  5. 通过一个充分详细地案例学习可扩展的面向对象的数据访问层在现实中如何工作并做了一个架构实现 ,这个架构它可以广泛的应用在其他案例。

书的内  容大致如下:以后我读书笔记就按照这个章节了,有组织不好的地方,请给予指教。

    第一部分对象关系映射的概念■ ■ ■(Object-Relational Mapping Concepts

    CHAPTER 1 Getting Started with Object-Relational Mapping

    对象映射关系介绍

           ORM是什么?

           ORM的好处

           好的ORM Tool的标准

           阻抗失衡

    对象持久化

    ORM设计基本策略

    Summary

    CHAPTER 2 ORM 模式 域驱动设计

    域驱动设计

           UML

           域特定语言

           域模型结构

          对象关系模式

           域模型

          表模块

          活动记录

          数据库映射

          延时加载

          工厂模式

          职责/数据访问对象

    持久化的鲁棒性

          PI and LINQ to SQL

          PI and EF

          PI and NHibernate

    补充材料

    Summary

    PART 2 ■ ■ ■ LINQ to SQL

    CHAPTER 3 LINQ to SQL介绍

    LINQ to SQL是什么?

    基础概念

          LINQ to SQL 设计器

          对象上下文(DataContext)

          DBML和Mapping 基本原则

          查询(Querying)

          Updating/Inserting/Deleting操作

    Summary

    CHAPTER 4 LINQ to SQL进阶

    调试

    使用存储过程(Stored Procedures)

    使用用户自定义函数(User-Defined Functions)

    构造关系,连接,投影(Relationships, Joins, and Projections)

          校验

          事务

    Summary

    PART 3 ■ ■ ■ Entity Framework

    CHAPTER 5 ADONET Entity Framework介绍 113

    EF是什么?

    设计器(Designer)探险

    理解数据实体模型(EDM)

          逻辑模式定义语言(CSDL)

          存储模式描述语言(SSDL)

          映射描述语言(MSL)

          元数据模式

          设计元数据

          生成类

    使用EDMGen命令行工具

    Summary

    CHAPTER 6 使用ADONET Entity Framework

    对象服务: LINQ to Entities

          查询

          使用查询操作符号

          Updating, Inserting, and Deleting操作

    复杂的查询

    Summary

    CHAPTER 7 ADONET Entity Framework进阶

    继承(Inheritance)

          单表映射

          各自有表模式(Table per Type)

          混合模式(Table per Concrete Class)

    Entity客户端访问提供程序

          实体SQL语言(ESQL)

    存储过程

    Summary

    PART 4 ■ ■ ■ Pluto银行实例研究

    CHAPTER 8 Pluto银行域模型

    需求和用例

    模型

          基类

          实体

          Roles类

          Managers类

          实现数据访问对象

          服务类接口

    Summary

    CHAPTER 9 映射FBPFirst Bank Of Puto

    用对象关系设计器生成类

    使用继承

    使用复杂查询

    建立基本框架

    创建数据库

    实现多对多映射

    更多参考

    Summary

    CHAPTER 10 使用ADONET Entity Framework 映射

    自己动手实现持久化的鲁棒性

          IPOCO接口设计

          至定而下的设计

          在案例中使用IPOCO

    数据库映射

    中间层/上下文管理

    Summary

    PART 5 ■ ■ ■ 创建BOP系统基础

    CHAPTER 11 N层架构

    为什么选用N层?

    数据传输对象(DTOs)

          LTS(LINQ To SQL)层

          EF层

    ASP.NET

    Summary

    CHAPTER 12 LINQ to SQL, the Entity Framework和其他选择

    LTS vs EF

          功能不同点

    其他选择

    NHibernate

    EntitySpaces

    LLBLGen Pro

    Summary

 关于本书的部分书评:

     I found this book interesting because It was the first one about ADO.Net EF, but if you are new to LINQ and want to learn all about the language enhancements shipped with .net framework 3.5 (on top of which LINQ is based) and the other flavors available (LINQ to XXX) I suggest you look for another one. This book in my opinion is best suited for people who are experienced enough with Domain Driven Design and ORM's and faced with the difficulties to accommodate the Object and the Relational "worlds." It explains how to use LINQ to SQL and Entity Framework to map in bottom-up and top-down approaches, the book is provided with good code samples and the solution used in the use case is available for download. 

     The most interesting part of Pro LINQ Object Relational Mapping in C# 2008 is the Bank of Pluto Case Study. This is the first book that I have read so far that attempts to wrap LINQ To SQL behind the concepts of a Unit of Work and Data Access Objects to abstract LINQ To SQL behind a generic data access layer and Persistence Ignorance Entities. The book heavily builds upon ideas from Domain-Driven Design, Patterns of Enterprise Application Architecture, and work done in the Hibernate and NHibernate Communities to wrap Hibernate and NHibernate behind DAO's. If you are new to various concepts around Unit Of Work, Persistence Ignorance, Database Mappers, etc., the book attempts to borrow from those books and communities as necessary to help you understand those concepts and get you using LINQ To SQL in a persistence ignorance way.

;