The Inquisitive Coder – Davy Brion's Blog

Trying to walk that thin line between intelligence and ignorance

What Should I Talk About In A Presentation About NHibernate?

Posted by Davy Brion on March 5th, 2009

I’ve been asked to do a presentation on NHibernate for a group of developers (not sure if i’m allowed to mention the details yet so i won’t). My presentation would be part of a larger session, but i would get about 45 minutes to talk about NHibernate. You could cover a lot in 45 minutes, but then again, i can’t assume that the audience has prior knowledge about NHibernate. So now i’m wondering how i should approach the presentation… i don’t just want to do simple Hello World stuff, but it might be hard to get into the really interesting topics if most of the audience doesn’t already know some NHibernate basics.

I probably should start with a relatively simple example, but i want to be able to quickly work my way up to the more interesting/advanced stuff since that is where NHibernate truly shines, in my opinion. I was thinking of starting with a small domain (maybe the online auction example from NHibernate in Action), explaining the basics of the mappings, showing the transparent persistence, doing some querying with Criteria/HQL and perhaps even LINQ (it might be really usable by the time of the presentation), and then i would like to cover topics like query batching (you know how much i love that), the batching of DML statements (yeah, love that as well) and explaining some things about the first and second level cache (love those as well). I don’t know if i can squeeze all of that in 45 minutes, but then again, this isn’t a workshop or anything so if i can demo all of that stuff and just talk a bit about those things, it should be doable, right? I’d then complete the presentation by mentioning a bunch of other cool features and strengths, along with some references on where they can learn more.

What do you guys think? Are there any topics you think i should definitely discuss? What i just mentioned is just the first i could come up with and i definitely haven’t made my mind up yet so i would definitely appreciate some suggestions from you guys.

15 Responses to “What Should I Talk About In A Presentation About NHibernate?”

  1. Kris-I Says:

    Interesting this topics, I have to do almost the same to do in fee weeks but :
    - 2 hours
    - the presenter (me) use NH from several months only
    - 95% of the audience doesn’t know NH

  2. sirrocco Says:

    If you have no idea about the level of NH knowledge in the audience, then you should have the easy part and in the end the hard part. Now, depending on how you feel the audience, you can talk longer on either part. That way you’re covered :) .

  3. PP Says:

    Hi Davy

    If I’m you, here are my suggestions

    1. You can have 2-3 sessions over span of days, believe me people would love to participate
    2. Session-1: Speak high-level overview of NHibernate.
    Why its used
    What are the advantages/disadvantages
    What all things one should be aware of
    When to use it & when NOT to use it

    3. Session-2: Iterate Session-1 with Simple –> Moderate example(s).
    “Hello World” example could be your Level-1 Demo

    4. Session-3: Take a real-life example which people can relate easily & show the demo
    In this session explicitly DEMO the disadvantages of features

    5. Session-4: Can go one level higher…

    Hope that helps

  4. Yves Goeleven Says:

    Davy,

    I think you allready have a nice agenda to fill the 45 minutes, it should be doable in my opinion as long as you do not spend to much time on the demo’s, prep them in advance

    But you should definitly ask for more sessions to cover the really interesting stuff like interceptors, custom types etc…

  5. Pieter Gheysens Says:

    Hi Davy,

    no problem to mention the details about the upcoming VISUG session. We just have to take care of finding an appropriate date and location and also tune the format of the session a bit …

    Expect that people will probably know what an ORM tool does, but don’t expect them to have already some hands-on experience with NHibernate!

    Good luck with your preparations!

  6. Peter Morris Says:

    In my experience of doing talks on complicated systems the best approach is to

    01: Write down all your favourite things, because you will appear enthusiastic and that will keep everyone interested.
    02: Show, don’t teach.
    03: Answer questions along the way.
    04: If you run out of time (which I doubt) ask the audience for questions + if they want to see something else (give options).

    By the end of that members of the audience will undoubtedly want to ask for more details about something specific that they have seen.

  7. SeeR Says:

    I’m a windows forms programmer, so my first question will be how can I use NHibernate in Windows Forms client. I mean clientDB or clientweb servicedb. What about session cache on the client side – I mean can NH behave similiary to Dataset. How can I create dialog window with OK and Cancel buttons and merge the changes when user presses OK. How can I use identity columns in clientweb servicedb case.

  8. Steve Bohlen Says:

    In a single 45-minute session, I don’t think its usually possible to TEACH anything useful about nearly any technology so the goal (IMHO) would be to achieve the following:

    a) cover some concepts (whats an ORM, what problems does it solve)
    b) why NH vs another ORM technology (e.g. what features differentiate it from other ORM offerings)
    c) show some of the features in action to whet the appetite of attendees to go learn more on their own (e.g., generate the schema from the hbm files, show how simple queries in HQL or criteria work, show how easy it is to enable caching, etc.)

    Most of these kinds of talks tend to fail when they attempt to TEACH rather than generate interest as 45 minutes = just too short a time for teaching anything as complex as NH IMO. In 45 minutes it can be hard to even…

    a) build even a single-table DB
    b) create even the simplest object model
    c) create just one mapping file
    d) query for even one object

    I know I’m biased towards longer sessions (after all, my NH screencast teaching series was *15* sessions at about 1.5 hours each ) but even in the short agenda I just listed above there are likely to be enough questions, etc. that you could easily run out of time even then.

    I’d (personally) be very interested in seeing what you eventually come up with b/c I think its important for there to some way to introduce people to NH within the typical constraints of a 45-60 minute session (typ length for most dev presentations) but I haven’t come up with such a way myself yet… :(

    HTH,

    -Steve B.

  9. Davy Brion Says:

    @Steve,

    i’ve been told that i can assume knowledge about ORM (in general) so there’s no need to get into explaining ORM concepts. Another part of the session will be about Entity Framework (probably), so i don’t need to get into that either. In fact, i’d like to make it through my presentation without mentioning any other ORM product. NHibernate’s feature set is extensive enough that it can be showed off and impress people on its own merits without having to mention downsides to competing products IMO.

    Basically i just want to show what it can do, how it can help people, and along the way, try to get rid of some myths surrounding nhibernate, particularly here in Belgium. I’ve heard a lot of false statements regarding nhibernate, and i’ve seen a lot of ignorance regarding it and a lot of people are unfortunately letting that influence certain decisions.

  10. PP Says:

    Davy

    I presume this session will be webcasted (and recorded), looking forward to see those webcasts

    Thanks

  11. Davy Brion Says:

    @PP

    not sure about that, although they might be… kinda depends on the VISUG people i guess. I also don’t know if the session is going to be in English, or Dutch

  12. Kris-I Says:

    @Davy

    You talk about “VISUG people” and session in English or Dutch ….
    Where is your session ? In Belgium ?

  13. Davy Brion Says:

    In Belgium yes, though the exact location hasn’t been decided yet. As for English or Dutch, i don’t know what VISUG prefers.

  14. Kris-I Says:

    @Davy,

    May be I’ll go then :) All (I think) VISUG sessions are in English (it’s like that when 3 national languages)

  15. Andriy Buday Says:

    I encountered absolutely same issue. Thanks for having this post…
    I’m going to proceed with having two demos: 1. Customer table, basic configuration, ever simplest CRUD with HQL, showing SQL generated. 2. Customer->OrdersProducts, mapping with FluentNHibernate, Criteria, Lazy loading, caches, transactions and concurrency.

    With bombarding my audience at the beginning and forcing them to ask questions I will know if I need being slowly or faster on some moments.

    Thanks.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>