Share via


Entity Framework Magic Unicorn(还有更多的!)现已开源

[原文发表地址]  Entity Framework Magic Unicorn (and much more!) is now open source with take backs

[原文发表时间] 2012-07-19 16:04

距离我们公布Entity Framework “Magic Unicorn版本”的日子差不多有两年了,在开放源ASP.NET MVC4, ASP.NET Web API 以及 Razor几个月的时间之后,我们很高兴地宣布我们也将为Entity Framework推出开源许可下的源代码。

The Unicorn is fine从很多方面来讲这样做都是非常酷的。EF团队在推进透明化的道路上持续前行。社区将不仅可以看到签入的东西以及监督项目的进度,还可以自身参与到项目中,提交Bug修复请求,使用每日更新的版本,并且给出更多有效的反馈。

正像开源的ASP.NET组件以及开源的Azure SDKs,Entity Framework将持续得到同样全职的微软工程师的支持,并且它仍是一个微软全面支持的产品,它将会单独发布,也会作为Visual Studio的一部分而发布。

代码开源包括了Entity Framework运行时以及NuGet包,Code First,DbContext API,Entity Framework Power Tools以及原本与.NET Framework一起发布的零件。我们的团队也将致力于在将来开源EF设计器图面。

通过开源EF,我们公开了自EF 4.1预览版以来的设计和研发进程。对此感兴趣的人们可以拿到每夜生成,看到所有源代码的改变,以及参与有关设计和研发的讨论。EF团队致力于开放研发过程,包括社区,并且努力将这一切变为现实。

Entity Framework将存放在一个 Git库中https://entityframework.codeplex.com,并且欢迎大家去追踪,指出,讨论以及根据您认为合适的想法去提交bug。你可以指出并修复这个bug来化解使用EF为您的工作带来的困境,您还可以创建一个定制化的EF版本,使之具有不同的功能。因为这些改变还可以还原回去,这在如何使用EF开发方面给人们带来了极大的灵活性。

还需要重复的是,我们先前开源的Azure SDKs,ASP.NET Web Stack以及现在的Entity Framework,这些产品都由相同的团队负责(在很多情况下享有比以前更多的资源),相同的开发人员以及相同的产品支持担保。它们是开源的项目,但是它们也是微软支持并会长期发布的产品,并适用于任何公司。它们将会和Visual Studio一同发布,也会单独作为一个工具包发布在NuGet。过去一年里所有的技术投入是非常明显的,这样的投资不仅会持续,与之伴随的是新版本以及更加酷的功能。

异步- 我最喜欢的新Entity Framework功能

仅作为一个例子,我想秀一个即将发布的EF6的新功能,我们的团队正为在明年的发布中实现此功能而努力。Visual Studio 2012引入了Aync 和 Await的概念,它使得异步代码编写起来更容易(理解起来也更容易)。Damian,Levi和我在本周的Hanselminutes播客中讨论了异步以及相关概念

在查询和保存数据时,EF6将引入对新的基于任务的异步模式的支持。实际上现在你可以在开源的代码里看到并且发现这个功能的第一部分已经签入进去了!;)

做为一个例子,使用EF5你可以定义一个帮助方法,它将帮你在给定的路径下找到一个最近的存储空间。在执行时,任何调用这个方法的代码都需要等待。

    1: public Store FindClosestStore(DbGeography location)
    2: {
    3:     using (var context = new StoreContext())
    4:     {
    5:         return (from s in context.Stores
    6:            orderby s.Location.Distance(location)
    7:            select s).First();
    8:     }
    9: }

但是在EF6里面,它很容易地转化为一个异步方法,它可以单独执行,而调用代码继续执行其他任务。

    1: public async Task<Store> FindClosestStore(DbGeography location)
    2: {
    3:     using (var context = new StoreContext())
    4:     {
    5:         return await (from s in context.Stores
    6:             orderby s.Location.Distance(location)
    7:             select s).FirstAsync();
    8:     }
    9: }

这只是其中一个功能,也是我最喜欢的功能。你将很快可以看到存储过程的映射以及在使用Code First API的情况下支持自定义公约。

请关注Entity Framework库RSS订阅签入的内容来获得EF第一手的新功能以及改进消息!而且您可以与Entity Framework的团队在Jabbr聊天室(由SignalR 和Azure提供)上直接聊天:https://jabbr.net/#/rooms/EntityFramework

相关链接