功能小组模型的过程与质量控制
InfoQ中文站最近采访了微软的Ramesh,在采访中,Ramesh从过程控制、架构与设计的控制以及测试组织等方面分享了他所带领Visual Studio软件生命周期管理工具团队使用敏捷方式组织管理大规模软件团队方面的经验。
作者 朱永光 发布于 2008年8月18日 上午12时9分
在本系列的第一篇新闻中,介绍了ADO.NET数据服务框架的基本知识;昨日ccBoy在其博客上发表了一篇文章,介绍了在客户端如何对ADO.NET数据服务进行操作。
本文章以下图所示的关系图来作为练习的数据库(图片引用自ccBoy的博客):

在这个关系图中,需要特别注意的一点是,Book表上的Author ID字段消失了:
Entity Framework屏蔽和封装了Book表中Author ID属性,从而让客户端或用户看起来也更加面向对象。
接着,ccBoy在这个数据库关系的基础上为大家提供了如下9种类型标准操作的示例代码:
除了以上的9类操作外,他也给出了一种处理异常的示例代码,值得大家借鉴。
在逐一展示了这些示例代码后,ccBoy对ADO.NET数据服务的操作进行了一个总结,如下的总结对于理解在客户端对ADO.NET数据服务进行操作有很大的帮助:
四个 CRUD 操作(Create、Retrieve、Update 和 Delete)中的每个操作都映射到一个不同的 HTTP 动词:Retrieve 映射到 GET,Create 映射到 POST,Update 映射到 PUT,Delete 映射到 DELETE。客户端的Context对象,你可以把它想像成离线版本的数据源Entity Framework Context。
客户端所有的CUD的操作,只有在调用SaveChanges(),才会将变化传送到真正的数据源。
SetLink,AddLink,DetachLink是进行实体关系管理的……DetachLink是在你要删除某个实体,你需要将有关联的两个实体之间的关联打断并告诉客户端的Context。而DeleteLink更多的是告诉客户端Context,你要将两个实体间的关联完全打断,这个方法有用,但我觉得它的实用性最低。
AttachTo和Detach则是你用了处理实体状态的主要方法……当你调用AttachTo作用于一个POCO对象的时候,这个对象变成了实体……Detach方法你可以将其理解成反操作,即将一个实体还原成POCO。
有时候AttachTo操作是隐形的,比如所有通过Context查询方法查询来的对象,其实都是实体,同样你将一个POCO对象赋值给一个实体对象时,似乎也默认会将这个POCO对象加入到客户端Context中。
AddToXXX(比如:AddToAuthor)是Entity Framework自动生成的简易方法,其实和调用AddObject方法等同。
最后,ccBoy对ADO.NET数据服务和ADO.NET实体框架进行了一些讨论,涉及到和NHibernate比较,对编程模型和系统构架的影响,以及一些性能方面的探讨等。
InfoQ中文站最近采访了微软的Ramesh,在采访中,Ramesh从过程控制、架构与设计的控制以及测试组织等方面分享了他所带领Visual Studio软件生命周期管理工具团队使用敏捷方式组织管理大规模软件团队方面的经验。
在去年10月份的Kungfurails大会上,InfoQ中文站有幸采访了从台湾专程赶过来的张文钿,与他探讨了关于台湾Ruby社区的发展、Rails的商业化,Restful Design等话题。
《代码之道》以一位微软内部人士的视角,揭示了关于软件编码、软件测试和项目管理的残酷现实。针对每一个话题,I.M.Wright都根据丰富的工作经验提出了自己的观点,并介绍了来龙去脉,令人信服。
如何应对高并发、大访问量?如何保证数据的安全性以及数据库大吞吐量?在海量数据下,如何进行数据表变更?DoubanFS以及DoubanDB的特点以及技术实现?在QConBeijing 2009期间,InfoQ中文站有幸采访了洪强宁,探讨了相关话题。
没有回复
关注此讨论 回复