Live data from Hacker News

Microsoft Open Sources their Entity Framework ORM

hanselman.com

31–40 of 83 posts

Re: Microsoft Open Sources their Entity Framework ORM

#31
post #23

EF 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 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.* i…

Have you tried EF Code First? It lets you define classes, with no inherited base class, that can be used with the Entity Framework.

Re: Microsoft Open Sources their Entity Framework ORM

#32
post #23

EF 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 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.* i…

Have you tried EF Code First? It lets you define classes, with no inherited base class, that can be used with the Entity Framework.

Yes, I've given it up because of inefficient emitted sql, broken LINQ > SQL magic (leaky abstraction), poor support of alternative RDBMS's and didn't run on Mono.

Have you tried a Micro ORM?

Re: Microsoft Open Sources their Entity Framework ORM

#33
post #26
post #23

EF 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 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.* i…

Ok, let's check this benchmark out, wait 500 iterations for a total of 651ms = ~1ms per iteration and no version numbers ahh never mind.

That's selecting a single db row, feel free to extrapolate that out for multiple rows containing complex queries performed concurrently by multiple users. But I guess performance doesn't matter in places where EF is used.

Re: Microsoft Open Sources their Entity Framework ORM

#34

Is 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).

I've used NHibernate, Linq2Sql, and Entity Framework in real projects. I like EF the best, particularly EF Code First. I'm not fond of NHibernate's configuration files and lack of linq support. EF Code First has its quirks too, but seems very lean.

Re: Microsoft Open Sources their Entity Framework ORM

#35
post #24
post #20

Earlier quoted context omitted.

I 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 maki…

What things are making DVCS painful?

Usability. [Which isn't to say that there aren't great front-ends, but just that DVCS has a reputation for poor usability and a Microsoft solution that's pretty good and easy to use (especially for TFS users) would likely be well-received.]

Re: Microsoft Open Sources their Entity Framework ORM

#36
post #33
post #26

Earlier quoted context omitted.

Ok, let's check this benchmark out, wait 500 iterations for a total of 651ms = ~1ms per iteration and no version numbers ahh never mind.

That's selecting a single db row, feel free to extrapolate that out for multiple rows containing complex queries performed concurrently by multiple users. But I guess performance doesn't matter in places where EF is used.

But that's just it, you don't extrapolate benchmarks outside the context of the benchmark. Without testing it you don't know if selecting 2 rows an extra 1ms, 200ms or 0.001ms. Many ORM have high overhead per query but are optimized to handle large result set's so depending on usage loading 1,000 rows might be faster than it's competitors.

PS: A lot of frameworks are actually setup to handle the least important case first, handling large result sets are generally more important than the overhead for tiny query's. It's nice to be able to for things to work so a query that returns 1/2 million rows still returns in 1/100th a second and you can start paging through that result set even if the behavior adds overhead in the simple case. Chances are there is a shortcut if you only want 1 result just look for .first or a similar shortcut.

Re: Microsoft Open Sources their Entity Framework ORM

#37
post #30
post #4

This 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 m…

It 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 yea…

To 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-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.

Re: Microsoft Open Sources their Entity Framework ORM

#38

Its 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?

It 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.

Re: Microsoft Open Sources their Entity Framework ORM

#39

Its 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?

Seems 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.

Re: Microsoft Open Sources their Entity Framework ORM

#40
post #39

Its 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?

Seems 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"…

Note: 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.

Post reply on HN