InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

ADO.NET实体框架引起争议

作者 Robert Bazinet 译者 李会军 发布于 2008年7月18日

领域
语言 & 开发,
企业架构
主题
.NET ,
企业架构
标签
ADO.NET实体框架 ,
微软 ,
领域驱动设计
 
由社区发起的一份请愿书表达了对关注微软即将发布的ADO.NET实体框架的关注,请愿书标题为“对ADO.NET实体框架投不信任票”,旨在提高人们对业内专家已经预见到的一些设计和实现问题的认识。

不信任

该信的意图非常明确:
这封信一致签字通过,表示对微软客户社区承担的社会福利软件项目的关切,该项目将会使用微软即将发布的ADO.NET实体框架。
过去的一年里,微软和实体框架团队从致力于.NET平台上的实体应用开发和软件构架设计的专家那里收到了大量的反馈。当微软打算为实体构架提供框架支持的公告得到热情的拥护时,证明了实体框架本身始终能引起极大的关注。
可以看出,这封信是经过深思熟虑的,目的不是阻止开发者使用ADO.NET实体框架,而是要让他们了解当前实现中可能存在的缺陷:
我们希望的实体框架是一个一流的高质量产品和超出期望值的工具,允许客户和开发者创建可持续、可维护的软件架构,它可以承受任何大规模、复杂或周期紧张的软件开发项目的压力。
该小组认为,虽然微软在框架开发中采纳了他们的意见,但反馈本身并没有被真正考虑到v1.0版本的产品中。他们的目的是提高社区对微软合作的关注程度,以帮助指导开发:
我们集体敦促微软客户要认真考虑被微软称作“技术社区精英”的专家组的所关注的东西,他们为社区做了极大的贡献以及自发的帮助他人。在.NET最初发布之时,我们就使用微软或非微软的工具构建了基于实体的应用程序,并且积累了大量基于普通实体应用程序和基于.NET实体应用程序的最佳经验。
由于实体框架当前设计和实现的技术隐患,以及由它们构成的微软客户项目未来的潜在风险,我们郑重地对ADO.NET实体框架目前的状态以及对专家社区反馈过程的持续问题投不信任的一票。
信中对细节关注采取的立场及说明:
  • 过度关注数据方面的实体导致实体架构薄弱
  • 需要额外代码来处理延迟加载的不足
  • 共享、规范模型有悖于软件最佳实践
  • 持久化忽略机制的不足,造成业务逻辑难以读写和修改,开发和维护成本过度加大
  • 在团队环境里对源代码控制过多的冲突合并

更多感兴趣的信息你可以访问“对ADO.NET实体框架投不信任票 ”主页,并且可以对信件签字,也可以查看已经签字的清单,截止发表本文时共有270人签字。

业界反应

对这个意见采取的立场不乏批评和回应。用你喜爱的搜索引擎查找这份请愿书可得出两种结论,有很多支持和反对微软的声音。
ADO.NET实体框架团队迅速对这封信做出反应,来自于该小组的Tim Mallalieu辩驳并阐述了实体框架V1.0版的目标及未来:
令人遗憾的是,这是现实的情况,我们深切关注这些意见但在V1.0版中不完全支持。在这里我可以深入探讨一些细节。需要注意的一点是对这些功能的选择需要慎重考虑,但我们不得不在尝试增加新功能与尝试保留正确的原始目标之间应对这种压力,以此为建立一个更广阔的数据平台奠定一个多发布(multiple-release)策略的核心基础。巧合的是,今天,也是我们开始下一个版本产品的工作起点,而我们决定认真讨论这个特别的开发者社区,同时继续投资整体数据平台。
与任何1.0版本的产品一样,为了使之发布,团队并不能实现所有的功能,而需要把其他功能推迟至以后发布。这些功能和反馈结果决定了2.0版本的功能。
ADO.NET团队正采取办法,开放他们正在进行的设计过程和目标,使其尽可能透明。

在过去的9个月里你也许看到了Astoria团队博客(ADO.NET数据服务),我们将采取类似的过程,在新实体框架设计博客中定期发布我们的设计说明,在我们讨论一个既定方面以及作出最后决策之前,将给您提供反馈意见的机会。关于如何进行这一过程的更多信息,请关注我们的第一篇博客 ,并希望大家及时提供更多的意见!

结论

写这封信的团体的立场是非常清楚的。但是它开放给谁才是正确的呢?在设计上,微软花了很长的时间谨慎做出关于这个框架开发的决策。正如任何争论都不止一个方面,这封信清晰的概括了一些微软1.0版本产品的关注点

开发者使用的任何产品都有遗留下来的风险。由于在使用这个产品之前,业内专家团队必须花时间提高对潜在问题的认识,因而这种情况似乎是独一无二的。如果所有产品都带有一个特别详细的警告标签,那么它会非常好。

也许部分或所有这些关注点将以自己的方式成为未来发布的ADO.NET实体框架中的功能。推出1.0版本产品不能满足开发者的需求已成为微软的一个历史,但他们会采纳大量的反馈后,为开发者提供更好的2.0或3.0版本的产品。这可能是微软自身历史的重演以及请愿书引导的方向。

可以在“对ADO.NET实体框架投不信任票 ”阅读信的全文,每一个关注点的详细回复可以在Tim Mallalieu's blog中查看。
 
查看英文原文:ADO.NET Entity Framework Taking Some Heat

译者简介:李会军(网名TerryLee),南开大学软件工程硕士,微软最有价值专家(MVP),多家IT杂志和IT网络媒体特约撰稿人,擅长基于.NET平台的Web开发,业余爱好写作,在各类技术杂志和个人技术博客上撰写了大量的技术文章。他的个人网站为:http://www.dotneteye.cn。

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。