you may be right about that one..."Fluently For the Fall"? Oh well, at
least the timing is good with the coming release and all.

On Aug 2, 3:50 pm, Paul Batum <[email protected]> wrote:
> How about "Autumn of Fluent NHibernate". The other title could be
> misunderstood... :)
>
> On Mon, Aug 3, 2009 at 7:48 AM, Berryl Hesh <[email protected]> wrote:
>
> > Hi Steve.
>
> > How about the "Fall of Fluent NHibernate" for your next major video
> > production? Kind of just rolls off the tongue, doesn't it??
>
> > Seriously, good to see you having a hard look at FNH!
>
> > Berryl
>
> > On Aug 1, 9:00 am, sbohlen <[email protected]> wrote:
> > > James:
>
> > > I get it now (I must be a little thick, I guess).  You're suggesting
> > > to use a private auto-property as a 'stand-in' for the 'role' of a
> > > field and then map directly to the private autoproperty using FNH...?
>
> > > Yes, I do think this approach would work; it just requires a sort of
> > > mental shift (on my part) about the use of properties; in this
> > > approach where I would (usually) use a private field, I should instead
> > > use a private autoproperty.  Makes sense, and the (slight) overhead of
> > > accessing the private autoproperty vs a private field in my object
> > > model should be near-completely imperceptible (unless doing something
> > > inane like accessing it 1M times in a tight loop <g>).
>
> > > Thanks for the info on 'Reveal'; that was very helpful.  The 'nested-
> > > class' approach delineated in that section of the wiki is basically
> > > accomplishing the same thing as I was hinting at in my prior post
> > > using code-gen techniques at compile-time to create strongly-typed
> > > field-wrapping-properties for persisted entities; the code-gen
> > > approach typically involves declaring the 'hand-written class' and the
> > > 'code-generated class' using the 'partial' keyword and the nested
> > > class is code-gen-ed by the template and merged into the 'hand-
> > > written' class at compile-time.  You don't get design-time
> > > intellisense support for mapping statements until *after* a first
> > > compile (to fire off the template), but you also needn't maintain
> > > these nested classes by hand either.
>
> > > Obviously there are pros and cons to all of these strategies, but they
> > > all accomplish somewhat the same thing: (semi-) automatic strongly-
> > > typed access to private fields in persisted classes in lambda
> > > expressions.
>
> > > I completely agree that in my case FNH may very well not suit my
> > > 'typical' implementation pattern for some of the ways that I prefer to
> > > use NH and I'm not so much suggesting that it change in any way to
> > > meet my needs but am more just trying to explore the relative pros and
> > > cons of how well (or not) it aligns with my usual usage patterns, of
> > > course.
>
> > > Thanks for all the info and I will continue to explore all of this in
> > > greater detail.
>
> > > -Steve B.
>
> > > On Aug 1, 8:22 am, James Gregory <[email protected]> wrote:
>
> > > > > Since my usual architectural approach to using NH typically involves
> > mapping
> > > > > fields rather than properties (auto or not), obviously none of my
> > properties
> > > > > *can* be auto-properties since auto-properties (sadly) don't have
> > > > > predicatably-named backing stores that I could map to using
> > 'traditional'
> > > > > non-FNH approaches (e.g., XML).
>
> > > > You sure about that? If FNH can do it, NH can do it... AFAIK you just
> > map a
> > > > private autoproperty the same as a regular public property, no need to
> > > > specify any access strategy.
>
> > > > You can find info about Reveal at the bottom of this wiki
> > > > page<
> >http://wiki.fluentnhibernate.org/show/StandardMappingPrivateProperties>
> > > > .
>
> > > > The fact is, fluent isn't going to fit with everybody's style; I
> > wouldn't
> > > > expect anyone to change their design to use FNH, just as I wouldn't
> > expect
> > > > anyone to change to use NH. If your design is compatible, then that's
> > where
> > > > FNH can be of use, if it isn't then there's not much use trying to mash
> > one
> > > > into the other.
>
> > > > Fields will be supported, but there's always going to be some
> > compromise
> > > > around inaccessible ones.
>
> > > > On Sat, Aug 1, 2009 at 12:41 PM, sbohlen <[email protected]> wrote:
>
> > > > > Paul:
>
> > > > > Good points -- I may be inadvertently conflating PUBLIC
> > autoproperties
> > > > > with PRIVATE autoproperties (and also PROPERTIES with AUTOPROPERTIES)
> > > > > here.  Honestly it never occured to me to have private properties
> > > > > (again, auto or not) on my objects even though there's clearly no
> > > > > compiler-rule that says I can't so I think when I read 'property' in
> > > > > the above thread my mind immediately just inferred 'public'
> > > > > accessibility for them.
>
> > > > > Since my usual architectural approach to using NH typically involves
> > > > > mapping fields rather than properties (auto or not), obviously none
> > of
> > > > > my properties *can* be auto-properties since auto-properties (sadly)
> > > > > don't have predicatably-named backing stores that I could map to
> > using
> > > > > 'traditional' non-FNH approaches (e.g., XML).
>
> > > > > Given James' reply, I can see TWO issues that would seemingly need to
> > > > > be overcome here: one being that everything would of course need to
> > > > > have an option to be expressed in terms of FieldInfo rather than
> > > > > PropertyInfo, and the other being how do you get the
> > lamba-reflection-
> > > > > trick to work against private members.  The FieldInfo v PropertyInfo
> > > > > issue is straightforward, but can you point me to a reference (blog
> > > > > post, whatever) that demonstrates what mapping to a private property
> > > > > would look like (using this 'Reveal' option) --?  I would like to
> > > > > explore what this looks like as a semi-viable alternative to having
> > to
> > > > > expose all data-bound values in my objects as public properties even
> > > > > though I agree with James' post that this renders much of the benefit
> > > > > of FNH impotent.
>
> > > > > Unfortunately, the only non-string-dependent way that I am aware of
> > to
> > > > > access private members via anything similar to the lamda-reflection-
> > > > > hack is to do code-gen to create a parallel class hierarchy, each
> > > > > parallel class full of properties that correlate exactly to both the
> > > > > public and private members of your objects so that you can express
> > the
> > > > > private members in lamba statements.  This is obviously significantly
> > > > > less than idea b/c you're just moving the responsibility for keeping
> > > > > things 'logically consistent' from string-literals to whatever your
> > > > > code-gen executable is, but I have seen this approach generally work
> > > > > leveraging the somewhat flakey integration of VS and the T4
> > templating
> > > > > engine.  Obviously this approach is counter to (or at least different
> > > > > from) what you're trying to accomplish with FNH, but I have seen it
> > > > > work.
>
> > > > > Thanks again for the suggestions; in the end it may just be that the
> > > > > overall architectural approach that FNH is taking (using the lamda-
> > > > > reflection-hack to avoid string-literals) is simply incompatible with
> > > > > my general approach of mapping to private fields in objects (square
> > > > > peg, meet round hole <g>).
>
> > > > > -Steve B.
>
> > > > > On Jul 31, 8:27 pm, Paul Batum <[email protected]> wrote:
> > > > > > Stephen,
>
> > > > > > I'd just like to point out that private auto properties
>
> > > > > > a) Cannot have any logic in getters and setters
> > > > > > b) Do not appear in the public interface of your domain objects.
>
> > > > > > i.e. Neither of your objections apply when replacing your private
> > fields
> > > > > > with private auto properties.
>
> > > > > > Of course, to map to those private autoproperties you need to
> > either give
> > > > > up
> > > > > > some compile time safety (by using Reveal as James mentioned, or
> > mapping
> > > > > to
> > > > > > a public property and then using an access modifier), or sacrifice
> > > > > "domain
> > > > > > purity" and nest your mappings inside your entities.
>
> > > > > > Paul Batum
>
> > > > > > On Sat, Aug 1, 2009 at 3:13 AM, James Gregory <
> > [email protected]
> > > > > >wrote:
>
> > > > > > > We do have full intention of supporting as much of fields as we
> > can,
> > > > > but
> > > > > > > it's not a high priority right now (getting the release out with
> > what
> > > > > > > everyone's already been using for the past year is). There's
> > always
> > > > > going to
> > > > > > > be trouble around private fields that don't have a public getter,
> > > > > because we
> > > > > > > can't access them via a lambda, but we can always provide string
> > based
> > > > > > > alternatives (however much that undoes one of the key strengths
> > of
> > > > > FNH); for
> > > > > > > example the Reveal functionality does allow you to use private
> > > > > properties
> > > > > > > currently, if you're willing to use strings.
>
> > > > > > > The whole issue is that our entire public interface is based on
> > > > > > > PropertyInfo, it has been from day one. I don't think much
> > > > > consideration was
> > > > > > > given to fields in the beginning and as such they've kind-of
> > fallen to
> > > > > the
> > > > > > > wayside. It's clear what we have to do (replace all instances of
> > > > > PropertyInfo with some higher-level abstraction that could be a
> > PropertyInfo
> > > > > or FieldInfo (or MethodInfo!) under the hood), it's just a matter of
> > getting
> > > > > the time and resources to do it.
>
> > > > > > > There isn't any voting happening because we're already decided
> > that we
> > > > > will
> > > > > > > support fields, we were a long time ago :)
>
> > > > > > > As always, patches are welcome ;)
>
> > > > > > > On Fri, Jul 31, 2009 at 4:30 PM, sbohlen <[email protected]>
> > wrote:
>
> > > > > > >> Just FYI for some perspective, many people (like me!) prefer
> > field
> > > > > > >> mappings to property mappings for at
>
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to