|
Just a point about what often seen as EF making very large queries for simple things.
If doing something like Get Record Where ID = 5
Quick SQL could be "select * from table where id = 5"
EF will use the full expanded out version, so that * becomes all the fields in the table.
So just like writing suitable SQL quieres, EF needs to be used appropriately. If just want to get 2 fields from a 20 field table, then in EF use .Select and Where in combination, and will generate out suitable query.
|
|
|
|
|
Most DBA's have no practical "application development" experience ... and their designs (and attitude) reflect that.
Asking a DBA about EF, or any ORM, would be like asking them what programming language to use.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
DBAs that are not application developers do have experience in dealing with poorly written SQL by application developers that they have to then clean up and optimize.
An application developer who uses SQLProfiler, is adept at SQL, understands indices, avoids table scans, etc. is a delight to the DBAs that have to manage the databases.
Asking them about EF and other ORMs is in the context of how does the application developer's use of them impact their work. And it does, if you read some of the other posts.
|
|
|
|
|
personally, I've used entity for a couple years, but stopped. I didn't like it, and have gone back to using stored procedures and then the system.Data namespace to use the calls, for multiple reasons:
*i don't need CRUD on all tables
*SPROCs are easy to test and verify results.
*complex joins and other like functions are easier to do in T-SQL before it gets to the app
*Entity framework feels heavy.
but these reasons are mine, and our environment works well with SPROCs.
|
|
|
|
|
I will rail against the use of ANY ORM when given the opportunity.
I've been looking, for the last 10 years or so, for a way to completely rid MVC apps of the scourge that is EF, and have never found anything more descriptive than, "yeah it's possible". I want code, not possibilities.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
In addition to what others said, there are two different EF frameworks:
* EF6 is fine for most business work. It enables fast coding for the 99% of your application, and it's easy enough to use raw ADO.net for the 1% that's performance-sensitive;
* EF Core does not support Distributed Transactions. For most business applications this is a dealbreaker: it's very common to have to write on different databases, even if both are residing on the same server. EF6 will happily join them in a single transaction, EF Core won't. This is why we are still on the .net framework and skipping .net core...
Luca
The Price of Freedom is Eternal Vigilance. -- Wing Commander IV
En Það Besta Sem Guð Hefur Skapað, Er Nýr Dagur.
(But the best thing God has created, is a New Day.)
-- Sigur Ròs - Viðrar vel til loftárása
|
|
|
|
|
I use EF not only with MS SQL, it fits fine also for nosql databases (eg Arango) .
Yes it saves also work for dumb jobs like "list and some actions".
|
|
|
|
|
I thought I was going to get in front of my graphics device drivers by starting with the SSD1306 - a small monochrome OLED display that comes in 3 different sizes/resolutions and runs over SPI, I2C, or (not usually) parallel - the latter of which is basically never available for MCUs - it's either SPI or I2C
It's a simple device. I thought implementing it would be the easiest place to start.
Now keep in mind, I've written this graphics library such that it should seamlessly interface with my device drivers with very little massaging on my part. I've architected it such that I can just lego what is there together with my device drivers.
Or so I thought.
This device has an integrated frame buffer, but you can't *read* the frame buffer over either of those serial interfaces - only the parallel one you never have access to. This isn't a show stopper normally, except it's a monochrome framebuffer, meaning 1-bit per pixel, meaning you have to read 8 pixels in order to write one pixel because you can only write a byte at a time.
So basically, you can't really do random access to the frame buffer at all with this device because of the above.
I had counted on not being able to read the buffer, but I hadn't counted on not being able to do random access when writing the frame buffer. That was a corner I just didn't think around.
Software architecture was being discussed earlier, and I spent some time as a software architect professionally.
What it taught me was no matter how good at it you are, the results are mixed, not consistent no matter how process oriented you are about it. The reason is because of things like the above. We can't predict the future. We can't think around every corner.
Architecture comes with a certain amount of accepting the idea of moving 3 steps forward and two steps back when it comes to design.
There are ways to mitigate this. You can be flexible and code compartmentalized such that if you rewrite part of it you don't have to rewrite all of it.
I saved myself because I use "template polymorphism" instead of standard polymorphism and inheritance in my library, so I don't have a bunch of base class changes to make that will wreck my entire source tree, but it comes with downsides as well.
But you will be rewriting code for any non-trivial project. You will be redesigning bits as you go. Your best efforts are not put in heading all of that off but rather putting it into making your code flexible enough that it will survive having portions of it ripped out and completely rewritten.
Real programmers use butterflies
|
|
|
|
|
honey the codewitch wrote: What it taught me was no matter how good at it you are, the results are mixed, not consistent no matter how process oriented you are about it. The reason is because of things like the above. We can't predict the future. We can't think around every corner. Amen !
I see a paradoxical inverse relationship between the extent to which i may have become secure and confident in my technical abilities ... and ... the extent to which I could enter a state of FUD facing a new project/challenge ... and ... the unleashing of creativity, and out-of-the-box thinking. Of course, I don't mean self-confidence in the broader sense: I speak of FUD that hones the blade of reason
At the same time, creative "exaltation," as you have novel insights, carries the risk so perfectly embodied in the Narcissus story.
I was lucky that my professional work usually gave me complete freedom to do "architect" whatever, because no one else understood my specialties (the PostScript language, color science, printing).
These daze, I would never claim to have been an "architect" in the profound way I believe Marc Clifton is !
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
|
|
|
|
|
I didn't so much claim the role as it was thrust upon me. In fact, I didn't want to go that direction, but I had been a senior developer for so long, headhunters were wondering about me. I had to move at least laterally if not upward, whether I wanted to or not in order to stay commercially viable.
Real programmers use butterflies
|
|
|
|
|
I'm certain you deserve the title
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
|
|
|
|
|
I didn't like doing it, so I'm sure there are others more suited. I am good at systems. I love systems. But politics, not so much, and I found that being an architect involves more interfacing with people I didn't care to interface with than I really liked.
I'm a coder. Give me code. I like design, but I like to do it on my own, or among a small team I lead, where I don't have to deal with politics. Otherwise, I'd prefer to be strictly a coder.
Real programmers use butterflies
|
|
|
|
|
Thank your hubby. You impossible to please.
honey the codewitch wrote: I saved myself because I use "template polymorphism" instead of standard polymorphism and inheritance in my library Case closed.
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Well, it has its drawbacks, like it's possible to put source code that won't compile into production if you do things this way. Code coverage testing becomes much more ... fun.
It can also lead to code bloat, which is one of the main reasons that will cause me to fall back on binary polymorphism.
There is no single silver bullet. I wish there was.
Real programmers use butterflies
|
|
|
|
|
Wow.
I was not talking code.
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
I didn't see the hubby part.
Real programmers use butterflies
|
|
|
|
|
[...]
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
How good are you in searching for generality can never beat the 'clever tricks' of the 'creative people' designing those little devices.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
I wish it was a clever trick. That I could at least understand. Frankly, it was either laziness or otherwise expediency in the name of cost savings that made them work this way. There's no technological reason for it other than .. less than stellar design.
Real programmers use butterflies
|
|
|
|
|
honey the codewitch wrote: expediency in the name of cost savings Managers name that 'clever trick'.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
Hahaha that's fair.
And why I'm glad I'm not in management.
Real programmers use butterflies
|
|
|
|
|
When I saw this[^] I new that once more I've a confirmation that there's no cure for stupid.
Opinions may differ on health issues and such - but this, in my opinion, is taking political allegiance to a specific topic even past CULT level.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
W∴ Balboos, GHB wrote: is taking political allegiance to a specific topic even past CULT level. Is there a political group that says you should not get vaccinated?
|
|
|
|
|
There are two types of politics: party politics and advocacy. In reality, the border's often rather vague but I'm only thinking in terms of advocacy.
Here, the final paragraph, speaks those 'volume's' in just a few words:
Quote: The school has a chiropractor on staff to give adjustments to students and staff and practices meditation among students with the use of crystals.
I'd postulate that any sign of illness is mitigated with the sacrifice of a suitable number of chickens.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
W∴ Balboos, GHB wrote: with the use of crystals I know a lady, wonderful person, who practices crystal therapy on her clients. They keep coming back and love the work she does. Which leaves me gobsmacked because I am a sceptic and think she is as crazy as a bedbug (she agrees with me).
Never underestimate the power of human stupidity -
RAH
I'm old. I know stuff - JSOP
|
|
|
|