ADO.NET 实体框架引起争议

阅读数:1019 2008 年 7 月 18 日 01:02

由社区发起的一份请愿书表达了对关注微软即将发布的

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 Entity Framework Taking Some Heat


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

评论

发布