﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Frans Bouma commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>yeah, I wasn't suggesting one should hammer out the classes up front, but along the way the time spent on the overhead adds up. :) If you start out with a couple of entities and it grows and grows, you will even more run into time consumed with changing plumbing code/mappings/tables. 
  
  
Though an interview with a domain expert already gives you a lot of ideas and insights in what entities you can recognize in the problem domain and how they likely relate to each other. How they look in detail (which fields, which types these fields might have etc.) that's the detail which is filled in along the way. 
  
  
That's also the focus of quickmodel, the text-based DSL system in llblgen pro v3: you can sit down with the domain expert, interview him/her and type in facts, like customer 1n order. The model grows visually and in the project and the domain expert can see how things relate. How things are filled in in detail, can be done later, e.g. grouping of fields in value types, that's not something you'd want to do directly up front, so a more top-down approach but that alone already forces you to focus on what the problem domain is all about and what you can recognize in it. I don't think that's a bad thing. 
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment15</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment15</guid><pubDate>Mon, 09 Aug 2010 17:13:41 GMT</pubDate></item><item><title>Ayende Rahien commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>Frans,
  
I am not sure that I agree with your math.
  
I certainly agree on the value of tools :-), but writing 50 entities up front is something that is usually common in BDUF scenarios.
  
  
If you are doing that, it isn't going to matter _how_ you are doing it.  You are going to waste a lot of time without a lot of knowledge of the application itself.
  
  
It is much more common to do  1 - 3 entities at a time.
  
The cost is still real, but it is amortized over a lot longer. 
  
  
I am less concerned about the cost, actually, what I care about is the frustration factor of having to go through seven different steps to get something done.
  
  
Tools can cut that much more easily. And considering the sub 500$ that most tools cost, it is only a few days of work even if you make 20$ - 30$ / hr.
  
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment14</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment14</guid><pubDate>Mon, 09 Aug 2010 16:40:38 GMT</pubDate></item><item><title>Frans Bouma commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>@mattmc3:
  
I don't know how much you make per hour, but even if it's in the range of 20$/hour it's easy to gain it back. The thing is: if you for example have a 50 entity system, you need to create the DB, all 50 classes and 50 mapping files (or less if you use inheritance), debug them, and then you can start working on your client's system functionality. I don't know how much code you can write in an hour, but I bet you can't write 50 mapping files, 50 class files and create the DB without a single error in 1 hour, so it will likely take you a while, say a couple of hours. 
  
  
Or do you think the time you have to spend on all that is 'not time spend on the client's project' ? 
  
  
I'm not your client, so if you want to spend many hours doing dull work, which can be taken over by a machine, be my guest. if your competition can do it quicker with less problems due to advanced tooling, you're not competitive anymore and will lose work. Maybe not overnight, but everything counts: the more time you have to spend on overhead, the less time you can spend on the actual project unless you file more billable hours. 
  
  
I don't care whether you buy my work or not, I just find it wrong to state that writing a lot of plumbing code is 'free'. It's not. 
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment13</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment13</guid><pubDate>Mon, 09 Aug 2010 14:43:49 GMT</pubDate></item><item><title>mattmc3 commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>@Frans - Thankfully, the choice isn't between expensive tools or no tools at all as you suggest.
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment12</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment12</guid><pubDate>Mon, 09 Aug 2010 13:35:40 GMT</pubDate></item><item><title>James Gregory commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>Ayende: I'll admit debugging is a bit of an issue with a more verbose XML output; however, "outputting every single option" is a bit of an exaggeration.
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment11</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment11</guid><pubDate>Mon, 09 Aug 2010 08:19:12 GMT</pubDate></item><item><title>Frans Bouma commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>@mattmc3:
  
As it can do things in a minute you have to spend hours on manually by writing the mapping files/classes by hand, creating the DB by hand (if you're working model first), you're saving a lot of time, you can spend on other parts of the project. This makes you spend less time on a project so you're less expensive for your client. As you spend less time on the project, you can do more projects, and make more money. Also, if your competition uses tooling for plumbing (because that's what mapping / entity classes are) and you don't, you have a disadvantage. 
  
  
In the end it comes down to: do you want to invest a little money to save money. Whether that's worth it is of course up to you, but it's not as if spending the money on it is not giving any financial gain, on the contrary. Similar to tools like Oren's *Prof tools: they make it way easier to get insight in what's going on in your software and with that cutting down time spend on tracking down issues you'd otherwise spend considerable time on and always on the least convenient moments. 
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment10</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment10</guid><pubDate>Mon, 09 Aug 2010 07:16:49 GMT</pubDate></item><item><title>Ayende Rahien commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>James,
  
The problem with FNH mapping is that when there is a problem, that is how you debug it.
  
That is why I find it annoying that FNH is outputting every single option
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment9</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment9</guid><pubDate>Mon, 09 Aug 2010 03:34:08 GMT</pubDate></item><item><title>mattmc3 commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>LLBLGen seems to have a huge and loyal following.  Thought, I've personally never seen anything that made me feel like it justified its steep price.  This post, while interesting, has not changed that.
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment8</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment8</guid><pubDate>Mon, 09 Aug 2010 02:36:32 GMT</pubDate></item><item><title>James Gregory commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>Nice review. This is actually the first time I've had a good look at LLBLGen, so thanks for that.
  
  
Being that Fluent NHibernate is my doing, I feel I have to comment on this: 
  
  
"There are still some things to improve, but compare that to the output of Fluent NHibernate, and you’ll see that this is generating something that is much easier to work with."
  
  
To be fair, it's was never the intention of Fluent to create XML for user consumption, it purely does it to satisfy NHibernate. Minor point though, and I'm only being pedantic.
  
  
Good review, I'm looking forward to the other tools.
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment7</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment7</guid><pubDate>Mon, 09 Aug 2010 00:26:16 GMT</pubDate></item><item><title>Frans Bouma commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>@Jesus
  
  
It's about maintainability and what's the 'source' of the entity class + table: the abstract entity definition. Everything is derived from that: the entity class and the target table(s). As they're reflecting the same definition, one can define a mapping between them and allow transportation of an instance of such an abstract entity definition (== data) flow from class instance to table and back. changing the entity definition therefore has its reflection on class and table and thus mappings. that's why using a tool for that is beneficial: it keeps these elements in sync for you. 
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment6</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment6</guid><pubDate>Sun, 08 Aug 2010 17:05:49 GMT</pubDate></item><item><title>Jesus Bolivar commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>I prefer to write XML, I don't know why but it feels like a more natural way to map classes
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment5</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment5</guid><pubDate>Sun, 08 Aug 2010 16:07:41 GMT</pubDate></item><item><title>NC commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>"There are still some things to improve, but compare that to the output of Fluent NHibernate, and you’ll see that this is generating something that is much easier to work with."
  
  
Disagreed. I don't know how people can still tolerate working with XML. Fluent is the only reason I ever went back to NH, because it was absolutely painful having to write XML. 
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment4</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment4</guid><pubDate>Sun, 08 Aug 2010 14:51:01 GMT</pubDate></item><item><title>Phil Scott commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>Guys at my office often forget the name of the product and refer to it as the "LL Bean thingy"
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment3</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment3</guid><pubDate>Sun, 08 Aug 2010 14:43:49 GMT</pubDate></item><item><title>Alan Schrank commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>I've used LlblgenPro for many years with great success. Now v3 supports not only the LlblgenPro runtime but NHibernate, Entity Framework v1 and v4 and Linq2Sql.  I'm starting to work with NHibernate for the first time.  Looks like my long time tool will help me as I do.
</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment2</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment2</guid><pubDate>Sun, 08 Aug 2010 13:35:17 GMT</pubDate></item><item><title>Frans Bouma commented on NHibernate Tooling Review: LLBLGen Pro 3.0</title><description>Short comments:
  
"*  Kick all the access=”field.camelcase-underscore” to the default-access on the 
&lt;hibernate-mapping element, that would remove a lot of duplication."
  
Yes, we'll work on that next week
  
  
"* The table=”[dbo].[UsersBlogs]” should be table=”`UsersBlogs`” schema=”`dbo`”, and I would skip the catalog if it is dbo already."
  
the idea is to generate catalog + schema name in the table name, as you can have multiple catalogs in the project and map a single entity model onto it. For a single catalog/schema setup, it probably makes sense to use the schema attribute instead. We went for the name of the full target into the target name. This also produces queries with the catalog and schema name embedded, which is more efficient for RDMS caches
  
  
"* The class contains an optimistic-lock=”version”, but there is no version column, so this should go away as well. The same error appears in the fluent nhibernate mapping as well."
  
That's indeed a little bug we'll fix the coming week. In the settings, you can set it to 'none' to work around it.
  
  
------------
  
V3 is the first llblgen pro designer which also has model first functionality instead of the database first functionality we had before that: there's a rich range of model first tools, including a text-DSL based system allowing you to quickly model a set of entities and create mappings and relational data from that, and much more. 
  
&gt;</description><link>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment1</link><guid>http://ayende.com/4579/nhibernate-tooling-review-llblgen-pro-3-0#comment1</guid><pubDate>Sun, 08 Aug 2010 09:41:18 GMT</pubDate></item></channel></rss>