[Entity Framework] I take back what I said some months ago
-
Some time ago I had a post in the Lounge about how much I liked Entity Framework etc. etc. Yadda yadda. Crapola. For the future I'll wait until I've had some real world experience before praising some technology. Because after trying to use the Entity Framework in a real world app, I must admit that The Entity Framework v. 1 s.... big fat hairy monkey .....! I am so baffled that Microsoft, in this day and age, releases an ORM tool that has no built-in support for n-Tier development. I just cannot fathom it. Oh yes, the Entity Framework is great if you're developing a monolithic desk top app. But come on, this is 2009. I don't wanna baby sit change tracking - that's what the framework should be doing for me. Seriously, I'm back to manual DAL layer with DataReaders. Perhaps I'll use some code gen tool (or write my own), but I'll sure as hell not use the Entity Framework. The amount of plumbing code needed to get it to work properly in a disconnected, n-Tier, web service world is ridiculous. 1994 called and they want their technology back. Maybe scottgu should take a look/stab at it?
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn RandRohde wrote:
I am so baffled that Microsoft, in this day and age, releases an ORM tool that has no built-in support for n-Tier development.
This is my major objection with it as well. However, there is an MSDN article on how to use it in n-tier development, something about proxies, but the article is very vague on actual implementation, and no code examples. Read more here[^]. Note the first link in that blog appears broken now. Web services and n-tier scenarios are very important to the Entity Framework and we are taking a much closer look at ways of enabling a richer n-tier experience using EF in the next release. and: The key challenge revolves around change tracking and serialization, both of which DataSet does well. Of course, from my perspective, the DataSet (and DataTable) does serialization very poorly, creating bloated XML. Marc
-
Some time ago I had a post in the Lounge about how much I liked Entity Framework etc. etc. Yadda yadda. Crapola. For the future I'll wait until I've had some real world experience before praising some technology. Because after trying to use the Entity Framework in a real world app, I must admit that The Entity Framework v. 1 s.... big fat hairy monkey .....! I am so baffled that Microsoft, in this day and age, releases an ORM tool that has no built-in support for n-Tier development. I just cannot fathom it. Oh yes, the Entity Framework is great if you're developing a monolithic desk top app. But come on, this is 2009. I don't wanna baby sit change tracking - that's what the framework should be doing for me. Seriously, I'm back to manual DAL layer with DataReaders. Perhaps I'll use some code gen tool (or write my own), but I'll sure as hell not use the Entity Framework. The amount of plumbing code needed to get it to work properly in a disconnected, n-Tier, web service world is ridiculous. 1994 called and they want their technology back. Maybe scottgu should take a look/stab at it?
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn RandI object to the fact that this technology has been "rushed" out without thinking about how it will actually be used. There are lots of marketing-speak statements, but no clear indication as to what problems it really IS solving, and samples indicating how these problems can be solved using this technology. I know that MS see it as being about more than just managing databases applications, but they've not done enough to convince me that this is a technology that I want to pursue. I'm all in favour of metamodel database applications - I was using this type of thing 20 years ago, but the tooling in EF is nothing short of woeful, and I won't be looking to make the leap anytime soon.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith
As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
-
Some time ago I had a post in the Lounge about how much I liked Entity Framework etc. etc. Yadda yadda. Crapola. For the future I'll wait until I've had some real world experience before praising some technology. Because after trying to use the Entity Framework in a real world app, I must admit that The Entity Framework v. 1 s.... big fat hairy monkey .....! I am so baffled that Microsoft, in this day and age, releases an ORM tool that has no built-in support for n-Tier development. I just cannot fathom it. Oh yes, the Entity Framework is great if you're developing a monolithic desk top app. But come on, this is 2009. I don't wanna baby sit change tracking - that's what the framework should be doing for me. Seriously, I'm back to manual DAL layer with DataReaders. Perhaps I'll use some code gen tool (or write my own), but I'll sure as hell not use the Entity Framework. The amount of plumbing code needed to get it to work properly in a disconnected, n-Tier, web service world is ridiculous. 1994 called and they want their technology back. Maybe scottgu should take a look/stab at it?
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn RandAn alternative the Danny Simmons "EntityBag" stuff that Marc has pointed out, there is all the "AttachObjectGraph" method - see this article Reattaching Entity Graphs with the Entity Framework[^]. It's something we are currently considering.
Simon
-
Rohde wrote:
I am so baffled that Microsoft, in this day and age, releases an ORM tool that has no built-in support for n-Tier development.
This is my major objection with it as well. However, there is an MSDN article on how to use it in n-tier development, something about proxies, but the article is very vague on actual implementation, and no code examples. Read more here[^]. Note the first link in that blog appears broken now. Web services and n-tier scenarios are very important to the Entity Framework and we are taking a much closer look at ways of enabling a richer n-tier experience using EF in the next release. and: The key challenge revolves around change tracking and serialization, both of which DataSet does well. Of course, from my perspective, the DataSet (and DataTable) does serialization very poorly, creating bloated XML. Marc
Marc Clifton wrote:
Of course, from my perspective, the DataSet (and DataTable) does serialization very poorly, creating bloated XML.
It does change tracking really well though :)
xacc.ide - now with TabsToSpaces support
IronScheme - 1.0 beta 2 - out now!
((lambda (x) `((lambda (x) ,x) ',x)) '`((lambda (x) ,x) ',x)) -
Rohde wrote:
I am so baffled that Microsoft, in this day and age, releases an ORM tool that has no built-in support for n-Tier development.
This is my major objection with it as well. However, there is an MSDN article on how to use it in n-tier development, something about proxies, but the article is very vague on actual implementation, and no code examples. Read more here[^]. Note the first link in that blog appears broken now. Web services and n-tier scenarios are very important to the Entity Framework and we are taking a much closer look at ways of enabling a richer n-tier experience using EF in the next release. and: The key challenge revolves around change tracking and serialization, both of which DataSet does well. Of course, from my perspective, the DataSet (and DataTable) does serialization very poorly, creating bloated XML. Marc
Thanks, I'll check out the Danny Simmons stuff.
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn Rand -
An alternative the Danny Simmons "EntityBag" stuff that Marc has pointed out, there is all the "AttachObjectGraph" method - see this article Reattaching Entity Graphs with the Entity Framework[^]. It's something we are currently considering.
Simon
That is a very nice article - thanks for the link.
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn Rand -
That is a very nice article - thanks for the link.
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn Randno prob. It's not a solution to all the ef's problems though. Be aware of what Pete & Marc are saying before you jump to far in and consider the ef ready for production use. I have the luxury of having some small internal projects I can use as test runs for new tech.
Simon
-
Rohde wrote:
I am so baffled that Microsoft, in this day and age, releases an ORM tool that has no built-in support for n-Tier development.
This is my major objection with it as well. However, there is an MSDN article on how to use it in n-tier development, something about proxies, but the article is very vague on actual implementation, and no code examples. Read more here[^]. Note the first link in that blog appears broken now. Web services and n-tier scenarios are very important to the Entity Framework and we are taking a much closer look at ways of enabling a richer n-tier experience using EF in the next release. and: The key challenge revolves around change tracking and serialization, both of which DataSet does well. Of course, from my perspective, the DataSet (and DataTable) does serialization very poorly, creating bloated XML. Marc
Marc Clifton wrote:
but the article is very vague on actual implementation, and no code examples.
This seems to be a problem with a lot of the documentation, tutorials and help available for a lot of the new stuff Microsoft have released that I've looked at. Last week I was having a look at Silverlight and very quickly ran into a brick wall attempting to build a simple CRUD application. I went online and found an article by Jesse Liberty, whose book Programming in C# I think is great, who now apparently works for Microsoft. In his introduction he has this to say:
Jesse Liberty wrote:
Key to virtually every business application is the ability to move data from a database to the User Interface.
Yeah, but also key is the ability to manipulate and save that data back into the database - which the article singularly fails to cover! I really struggle to see the point of these lightweight-half-a-job examples. They don't teach anything particularly useful, give the finger to best practice (with the caveat that you shouldn't do this in the *real world*) and appear to do nothing more than add fuel to the many and various misinformed adolescent "suck" wars that infest the Internet (Silverlight sucks, Flash sucks, Java Sucks, C++ Sucks, Managed Code sucks, Unmanaged Code sucks, static languages suck, dynamic languages suck etc. etc. etc.)
print "http://www.codeproject.com".toURL().text Ain't that Groovy?
-
I object to the fact that this technology has been "rushed" out without thinking about how it will actually be used. There are lots of marketing-speak statements, but no clear indication as to what problems it really IS solving, and samples indicating how these problems can be solved using this technology. I know that MS see it as being about more than just managing databases applications, but they've not done enough to convince me that this is a technology that I want to pursue. I'm all in favour of metamodel database applications - I was using this type of thing 20 years ago, but the tooling in EF is nothing short of woeful, and I won't be looking to make the leap anytime soon.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith
As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
I'm still waiting for object databases to take off in a big way. Cache's a good example or better yet Jade (which I never got to use in anger, but when I looked at it a couple of years ago it was mightily impressive).
print "http://www.codeproject.com".toURL().text Ain't that Groovy?
-
I'm still waiting for object databases to take off in a big way. Cache's a good example or better yet Jade (which I never got to use in anger, but when I looked at it a couple of years ago it was mightily impressive).
print "http://www.codeproject.com".toURL().text Ain't that Groovy?
I've never really looked into object databases, but I should imagine that they'd only really take off if Orrible or Microshaft released a "revolutionary new platform".
"WPF has many lovers. It's a veritable porn star!" - Josh Smith
As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
-
Some time ago I had a post in the Lounge about how much I liked Entity Framework etc. etc. Yadda yadda. Crapola. For the future I'll wait until I've had some real world experience before praising some technology. Because after trying to use the Entity Framework in a real world app, I must admit that The Entity Framework v. 1 s.... big fat hairy monkey .....! I am so baffled that Microsoft, in this day and age, releases an ORM tool that has no built-in support for n-Tier development. I just cannot fathom it. Oh yes, the Entity Framework is great if you're developing a monolithic desk top app. But come on, this is 2009. I don't wanna baby sit change tracking - that's what the framework should be doing for me. Seriously, I'm back to manual DAL layer with DataReaders. Perhaps I'll use some code gen tool (or write my own), but I'll sure as hell not use the Entity Framework. The amount of plumbing code needed to get it to work properly in a disconnected, n-Tier, web service world is ridiculous. 1994 called and they want their technology back. Maybe scottgu should take a look/stab at it?
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn RandRohde wrote:
I am so baffled that Microsoft, in this day and age, releases an ORM tool that has no built-in support for n-Tier development.
I haven't used EF, so take this with a grain of salt. I just watched a Mix09 video in which a Silverlight client/server app used EF in an N-tier project. Maybe I don't understand what you mean.
Religiously blogging on the intarwebs since the early 21st century: Kineti L'Tziyon Judah Himango
-
Some time ago I had a post in the Lounge about how much I liked Entity Framework etc. etc. Yadda yadda. Crapola. For the future I'll wait until I've had some real world experience before praising some technology. Because after trying to use the Entity Framework in a real world app, I must admit that The Entity Framework v. 1 s.... big fat hairy monkey .....! I am so baffled that Microsoft, in this day and age, releases an ORM tool that has no built-in support for n-Tier development. I just cannot fathom it. Oh yes, the Entity Framework is great if you're developing a monolithic desk top app. But come on, this is 2009. I don't wanna baby sit change tracking - that's what the framework should be doing for me. Seriously, I'm back to manual DAL layer with DataReaders. Perhaps I'll use some code gen tool (or write my own), but I'll sure as hell not use the Entity Framework. The amount of plumbing code needed to get it to work properly in a disconnected, n-Tier, web service world is ridiculous. 1994 called and they want their technology back. Maybe scottgu should take a look/stab at it?
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn RandI hate to sound like a shill, but you should check out DevForce[^] from IdeaBlade. We've been using DevForce "classic" for two years now, and it really works well. Their latest product DevForce EF, basically sits on top of Microsoft's Entity Framework and makes it much more useful.
The StartPage Randomizer - The Windows Cheerleader - Twitter
-
I hate to sound like a shill, but you should check out DevForce[^] from IdeaBlade. We've been using DevForce "classic" for two years now, and it really works well. Their latest product DevForce EF, basically sits on top of Microsoft's Entity Framework and makes it much more useful.
The StartPage Randomizer - The Windows Cheerleader - Twitter
Thanks, looks interesting. I'll check out...
"When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
-Atlas Shrugged, Ayn Rand