9 ms·
Microsoft Open Sources their Entity Framework ORM
- klausjensen 14y agoThis is so awesome. Partly as a developer who enjoys open source software, but also in part because decisions like this makes life much easier, when you suggest using open source in some a large corporations, where they have a very conservative approach to open source.
- NDizzle 14y agoYeah, what I really like is that MS just open sourced a thing that is used in places that tend to not use open source software. Talk about getting a foot in the door.
- modarts 14y agoDespite my usual complaints about Microsoft, I really appreciate the direction they've been heading with their adoption of open source for a growing number of their products. ScottGu, Hanselman et al. really deserve a lot of credit for the big cultural changes they've caused to allow a lot of this.
- danieldk 14y agoIndeed, it's also great to see that they are starting to use more widely accepted open source licenses, which as the Apache License (as was also the case with ASP.NET MVC).
- SideburnsOfDoom 14y agoI think of it slightly differently - "I really appreciate the direction that Microsoft developer tools division has been heading with their adoption of open source for a growing number of their products. They deserve big credit. But devs appreciate open source more than other consumers. it's hard to see how open source would work for, say, the parts of Microsoft that make Windows, Office or Xboxes. it's easy for devs to think of Dev tools as Microsoft as a whole, but they're not the biggest part of it, and are not the ones who bring in the most money (I found this link: http://www.tannerhelland.com/3958/microsoft-money-updated-2011/ http://www.tannerhelland.com/3958/microsoft-money-updated-20... ). Like it or not, the MS Windows division can therefore boss the dev tools division around (and have in Windows 8, effectively dictating the direction of .Net and WPF).
- cek 14y agoThis makes me even more bullish on Xamarin/Mono. As Miguel de Icaza of Xamarin tweeted this morning after this was announced: "Wow @scottgu announces that Microsoft open sourced the Entity Framework, Mono's Achilles heel" I believe if you are building mobile clients and need to target more than one platform you should do your UI with the native APIs on each platform, but should use something like Mono to achieve as much code-reuse as possible for the lower layers of your app.
- untog 14y agoIt is crazy how C# is one of the few languages you can actually use to develop both iPhone and Android apps (as well as WP, obviously). It's a great language- I just wish that a license for MonoTouch didn't cost $400. Also, does anyone know how to develop for MonoTouch using Visual Studio? I want to like SharpDevelop but I just can't... and of course, VS doesn't run on OSX. (I haven't tried SharpDevelop in over a year- it might be dramatically better these days, but I don't think so)
- ColinDabritz 14y agoTo be clear, I assume you are asking about developing for iOS using MonoTouch and VisualStudio. Android development is in Visual Studio natively. Apparently you can do some development, but you can't compile in Visual Studio. http://escoz.com/blog/developing-with-monotouch-on-windows-and-visual-studio http://escoz.com/blog/developing-with-monotouch-on-windows-a... So you get Visual Studio, Intellisense, tools like Resharper, but you can't quite build, because of missing elements. The build process would be to swap over to the Mac side to build and simulate. Not perfect, but it's nice to know it's there.
- davidjade 14y agoThis will let you load MonoTouch projects is VS and compile but the compile is only for syntax checking, etc... You still have to do the actual binary build on a Mac. Still, with this you can use all the refactoring tools, plug-ins, Intellisense, etc... that VS has to offer. https://github.com/follesoe/VSMonoTouch https://github.com/follesoe/VSMonoTouch
- 14y ago
- flyinRyan 14y agoIs Entity used a lot? We looked at using it but it seemed to be inferior to NHibernate (don't remember details, think there was a problem with type error detection and other stuff).
- gecko 14y agoI don't like it, and we don't use it at Fog Creek, but, yes, it's VERY heavily used on piles of projects I know. It's not as efficient or flexible as NHibernate, but it's far easier and vastly better integrated into Visual Studio, making it a bit of a no-brainer for simple persistence needs.
- kamau 14y agoSo, what do you guys use at Fog Creek. I've been discussing with my colleagues some of the micro-ORMs like Dapper, Massive, or PetaPoco as an alternative to EF. http://code.google.com/p/dapper-dot-net/ http://code.google.com/p/dapper-dot-net/ <br/ > https://github.com/robconery/massive https://github.com/robconery/massive <br/ > http://www.toptensoftware.com/petapoco/ http://www.toptensoftware.com/petapoco/ <br/ >
- jmcqk6 14y agoI don't know what they use at Fog Creek, but I will say that I've been building a lot of things lately in both Massive and PetaPoco, and I've really enjoyed it. I've done several projects in both Linq2SQL and EntityFramework at this point, and they both seem way too 'heavy.' Writing straight sql (or pretty much straight sql) has been a return to simplicity. it's forced me to make sure my queries are efficient, and only return what they need to return. I do miss using Linq to query the db, but not enough to make me go back. I use EF in my main job, and while it does the job, sometimes I find myself being constrained by the framework. That's not an issue with EF so much as it is an issue with any kind of ORM.
- IanDrake 14y agoBeen having a lot of success with Massive myself. How's using PetaPoco? Any frustrating gotchas?
- outside1234 14y agoIts hard for me to say this in some ways, but of the bigcos, I'm most bullish on Microsoft. I might actually go stand in line (if there are any) for the Surface tablet and maybe even a Windows Phone 8 device. They are (finally) making the right moves and doing it in a consistent and open way. Any Microsoft insiders know who is driving all this change? ScottGu? Steven Sinofsky?
- gringomorcego 14y agoIf anything I'd bet that the 'fiefdoms' have quit warring as much?
- mythz 14y agoIt looks like they've started their big Open initiative after they found a business case for it with Windows Azure where almost everything OSS'ed in recent times runs on it. When you're a cloud provider it makes sense to appear "more open" and support as many technologies as possible == more customers - which is good from the broad developer community as we would have never have seen their node.js on Windows support otherwise.
- ams6110 14y agoSeems more like a desperation move to me. Microsoft have almost no presence in popular web apps or mobile. Almost no startups or established services use the Microsoft stack. Maybe they think that by open sourcing they will get a look by devs/shops that would never have considered them before. I still think it's a long shot. The best development platform for .NET is Visual Studio and Windows. And the "cool startups" all use Mac OS or Linux. .NET has been sold as an enterprise platform since the beginning. That's what it's thought of by most people, and I don't really see this changing anything. Windows Phone is way late to the party and isn't going to do anything significant in the market. Microsoft will continue to be primarily a platform for building enterprise-type CRUD apps.
- mythz 14y agoNote: only their Azure + DEV arm is OSS happy - which is a result from making money with it on Azure. Their Windows/WP/UI projects are violently closed source, almost all cross-platform Rich/UI initiatives have been killed since Sinofsky has taken back the helm. Personally they should do all C#/.NET devs a service and provide better integration/code-reuse with MonoDroid/MonoTouch, but as they don't see it in their best interest they're pushing for platform-lockin. Which is a strange play when you're hopelessly behind the incumbents. This is starting to be a real problem for .NET devs now (since MS is losing their influence) as they become pawns in Microsoft's platform strategies, whilst we (C# devs) miss out on the most exciting platforms Microsoft doesn't want you to develop for, e.g: iOS/Android, NaCL, Unity3d, RaspPi, etc. We're just lucky Mono exists which runs on all these platforms.
- tarr11 14y agoInteresting that they put this in a Git repo (instead of TFS), but only to then push it to CodePlex (instead of Github)
- politician 14y agoOne vice at a time?
- shanselman 14y agoChoosing our battles.
- px1999 14y agoI don't have any proof to provide (and if I did, it would all be anecdotal) but I've heard rumours that Microsoft are planning on breathing life into codeplex and have an exciting/significant set of changes in the pipeline (which should improve on some of the things that make using DVCS painful). Considering Team Foundation Service, project Kudu/Git deploy on Azure etc. it makes sense to think that Microsoft are making a play to seriously take on GitHub and Atlassian, so that they're the one provider that owns an entire software ecosystem, end to end. Either way, I don't think that the EF team would have had a choice on where to host it...
- yxhuvud 14y agoWhat things are making DVCS painful?
- deleted 14y ago[deleted]
- mythz 14y agoEF is another overly architected + bloated fx from Microsoft. It's over 12x slower than other Micro ORMs like Dapper + OrmLite - Benchmarks at: http://www.servicestack.net/benchmarks/#dapper http://www.servicestack.net/benchmarks/#dapper The benefit of Micro ORMs is that they bind to clean re-usable POCO's (which by nature can be re-used as DTO's, ViewModels, etc). Most of them also add features as DRY extension methods over the underlying ADO.NET System.Data.* interfaces, so there's no magic behaviour or heavy abstractions happening underneath, letting you add new features orthogonally (by adding your own DRY Extension methods in your own project), and you always have direct access to ADO.NET IDbConnection so you're never restricted when you need it.
- Smudge 14y agoNot sure which version of EF those benchmarks are using, or how representative it is. For what it's worth, the EF team has been focusing on performance for EF5 and is making some promising improvements: http://blogs.msdn.com/b/adonet/archive/2012/02/14/sneak-preview-entity-framework-5-0-performance-improvements.aspx http://blogs.msdn.com/b/adonet/archive/2012/02/14/sneak-prev... (Disclosure: I work at Microsoft)
- mythz 14y agoThe benchmarks are from StackOverflow's Open sourced Dapper ORM project - the source of which is contained in their repo: http://code.google.com/p/dapper-dot-net/ http://code.google.com/p/dapper-dot-net/
- mythz 14y agoIf you guys are so "open" why aren't your performance advances compared in context against other ORMs? Benchmarks means a lot more in context and are more meaningful when they're compared to alt fx's on the same hardware specs / RDBMS / network configuration, etc. But I guess it doesn't matter when you're still be the most popular .NET package http://nuget.org/packages http://nuget.org/packages (580k) whilst remaining more than a factor of times slower than the competition - that's the .NET OSS ecosystem for you.
- Retric 14y ago