读书笔记:《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开发经验) 通过学习,基本上你讲收获如下:
- 体会使用OR/M带给你代码的便利。
- Visual Studio 2008自带的OR/M工具
- 利用OR/M灵活的优点建立可扩展的面向对象的数据访问层。
- LINQ如何实现这种情况,并说明他的优点和缺点。
- 通过一个充分详细地案例学习可扩展的面向对象的数据访问层在现实中如何工作并做了一个架构实现 ,这个架构它可以广泛的应用在其他案例。
书的内 容大致如下:以后我读书笔记就按照这个章节了,有组织不好的地方,请给予指教。
第一部分对象关系映射的概念■ ■ ■(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 映射FBP(First 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.
声明: 本文作者:宗哥,宗子城
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明。 ...