I Love Entity Framework

DevOps
I love Entity Framework. I also like (not love) nHibernate. That's right, as a DBA and data professional, I'm telling you I love Object/Relational Mapping tools (ORM). I think this is a technology set that the DBA needs to more tightly embrace. Let me tell you why. Most of the Queries I know that the biggest pushback against Entity Framework (EF) and it's fellow ORM tools is that they generate crap code. I know this to be true. I've seen it. ORM tools can, and do, generate seriously poor T-SQL. That's not to mention the N+1 problem and a few others. However, as you see from the article in that link, these problems and how to avoid them are very well defined. You don't have to suffer from the issues.…
Read More

The Curse of Relational Databases

Professional Development
Let's face it, none of Information Technology is easy. Oh yeah, there are those few geniuses that have an absolute grasp over some small aspect of the stack, or those other geniuses that have a very shallow knowledge level, but understand the entire stack. But the stack itself, it's vast, deep, wide, utterly unfathomable. So what do you do? You cheat. You take shortcuts. You ignore things you don't like/understand/appreciate. And then there's all the things you just don't know. Or, you cheat another way, you get experts that have drilled down on a particular technology so that they'll provide you with the knowledge you need. Ah, but then you have to listen to them and what happens when your local genius (deep or wide) doesn't agree with your hired…
Read More

Thoughts on ORM

nHibernate, Object Relational Mapping
I've posted before about issues I'm having either with behaviors of nHibernate, or behaviors of teams using nHibernate, but I don't think I've made my thoughts on ORM too clear. Let me do that now. I think some form of ORM is here to stay. There are lots of different ORM tools out there and acceptance of them is absolutely growing. Further, it should grow. Developing software is hard and if you can write code that reduces the overall amount of code you have to write, I'm in favor of it. I'm not convinced that the current crop of tools are quite as good as they ought to be, but most of them seem very flexible which should mean implementation of them can be, overall, beneficial to your project. That's…
Read More

nHibernate Database, First Look

nHibernate
I'm getting my first look at a full-fledged nHibernate database developed by consultants for our company. I thought I'd share my initial impressions. I'll be capturing trace events from the database over the next couple of weeks, so I'll be following up on the behavior of nHibernate within this database as well. The first thing I saw & thought was, "Foreign key constraints. Thank the gods." That really is good news. I was frankly concerned that they might go with the "let the code handle it" approach. There are quite a few null columns. I'm also seeing tons & tons of nvarchar(255) which must the default string size. Lots of bit fields too. They also used bigint in a lot of places too. None of this is definitively good or bad,…
Read More

nHibernate First Impressions

Object Relational Mapping, Tools
If I'm going to have to support it, I want to understand it. So, I got going yesterday, installing nHibernate 2.0 and walking through the Quick Start Guide. My C# is a bit rusty, to say the least, but I managed to sqeak by. The Guide is meant for an older version of nHibernate and there have been a few changes made that affect the code displayed. What that means is, I had to do more than simply type up what was presented to me. Which, was actually good because it forced me to do a bit more learning in order to get everything to work. What I found was interesting. I can see why developers like this. It really does let you treat the database as just another object…
Read More

LINQ and (by extension) ORM Discussion

Object Relational Mapping
Steve Jones' editorial today was questioning the use of LINQ. His focus was on the security aspects. The discussion went past that. This is a bit of circular reference since I posted over there and linked back to my ORM Concerns post below. There are a lot of interesting points being made. Some of it, from a DBA stand-point, is quite repetitive although I'd prefer to think of it as reinforcing. Steve's editorial is worth a read and the discussion is excellent.
Read More

ORM Concerns

Object Relational Mapping
Object Relational Mapping (ORM) software is a great idea. You can't deny that the mismatch between objects and relational data has to be dealt with. Instead of all the time, money and effort being spent here, why not get a tool that does most of the work for you? But... One direction that this can lead is towards dumb databases. After all, if putting a piece of software between the object & the db makes things easier, how much easier if the db and the object look exactly the same. Ta-da! Even less code to write & maintain. Unfortunately, TANSTAAFL (There Ain't No Such Thing As A Free Lunch) still applies. What you save in initial coding you will pay for in reporting, data cleanup, integrity issues, data integration issues...…
Read More

nHibernate Database Benefits and Costs?

Object Relational Mapping, SQL Server
I posted this question over at SQL Server Central, just like my last post, I'm also posting it here. I need some help. I've been trying to research this and I can't find good, hard facts. Any help would be deeply appreciated. It looks like we might be facing a large project shifting over to using ORM methods through nHibernate. I'm trying to get a read from the database community on what exactly I should expect in terms of issues, challenges and headaches during the development process. I'm also interested in any long term maintenance issues, troubleshooting problems, etc. If your developers implemented ORM all the way down to storing object data on the database in a non-normalized/object oriented fashion, how did that affect you? Did it muck up reporting?…
Read More