In spring this year, I began work on a moderately sized business application.
  The time from learning what the program should do to the first prototype were
  less than 2 weeks. To pull it off, I basically ditched any sane development
  practice and started throwing code at the problem as fast as I could.
  The application required a client/server model and the server had to store
  its data in a database. At that point in time, I knew about ORMs but had never
  used one before, but hoping for the best, I picked Microsoft’s Entity Framework because it had
  a visual designer and looked like I could just drag & drop my data model
  together and then figure out how to perform queries.
   
  It fell flat when I noticed that I could only choose between TPT (Table
  Per Type) and TPH (Table Per Hierarchy) globally
  for the whole freakin’ model. So I tried NHibernate and
  quickly rebounded due to its learning curve, resorting to writing SQL queries myself
  and loading them into objects with a very basic class mapper that I had written for
  another, much smaller project some time ago.
  It was tedious work, but at least hacking away for two hours got you two hours further,
  not one step forward and two steps back figuring out the ORM. And so I managed to get
  the prototype done with two all-nighters. In autumn, when the heat was off, I decided to
  do the database properly, using NHibernate…
 Read More