Ayende @ Rahien

It's a girl

ORM += 2

I am going to give a talk about the high end usages of OR/M and what it can do to an application design.

I have about one hour for this, and plenty topics. I am trying to think about what topics are both interesting and important to be included.

Here are some of the topics that I am thinking about:

  • Partial Domain Models
  • Persistent Specifications
  • Googlize your domain model
  • Integration with IoC containers
  • Taking polymorphism up a notch - adaptive domain models
  • Aspect Orientation
  • Future Queries
  • Scaling up and out
    • Distributed Caching
    • Shards
  • Extending the functionality with listeners
    • Off the side reporting
  • Queries as Business Logic
  • Cross Cutting Query Enhancement
    • Filters
  • Dealing with temporal domains

Anything that you like? Anything that you would like to me to talk about that isn't here?


Benedikt Eckhard
01/27/2008 10:02 PM by
Benedikt Eckhard

You should make a nice workshop with all these topics - not just an one hour talk :-)

what I would be particularily interested in are "customer specific domain models" as needed in Software as a Service.

Ayende Rahien
01/27/2008 10:09 PM by
Ayende Rahien


I am thinking about doing one, yes.

"customer specific domain models" is what I call adaptive domain models.

Ken Egozi
01/27/2008 11:01 PM by
Ken Egozi

I am going to give a talk

Where and when?

01/28/2008 02:09 AM by

I'd like to here under high loads how dynamic queries are better than stored procs

It's a good selling point on why to use an ORM - is it better, worse, why, etc...

Markus Zywitza
01/28/2008 07:45 AM by
Markus Zywitza

What does "Googlizing the Domain Model" mean. Never heard that verb before though it obviously means using Google in a some way. But with which intention? Searching best practices according to the domain? Or to the principles behind the modeling with regard to the domain?

Jon Skeet
01/28/2008 09:48 AM by
Jon Skeet

+1 to Steve's suggestion. One of the biggest criticisms against ORM is usually "stored procs are faster". It would be good to at least tackle that briefly, even if there isn't time for a complete debunking :)

It would also be good to cover issues which ORM tends to raise - where do you tend to have problems?


Ayende Rahien
01/28/2008 10:14 AM by
Ayende Rahien

It means integration with Lucene.NET, so you can run google-style queries against the domain model.

Nothing with Google at all, I am afraid.

Ayende Rahien
01/28/2008 10:20 AM by
Ayende Rahien


Those are interesting topics, but I don't think that they relate to the subject of the talk

01/28/2008 11:15 AM by


Any idea when and where the talk will be given?

Francois Tanguay
01/28/2008 01:25 PM by
Francois Tanguay

Great. Sessions have been posted. Means we'll meet there!

Winston Fassett
01/28/2008 03:58 PM by
Winston Fassett

In addition to Distributed Caching, I'd like to hear a decent discussion of plain old non-distributed caching of entities, collections, queries, etc, and things like the tradeoff between (a) a single query with lots of outer joins and (b) a simple query that relies on caching but may require several subsequent queries depending on cache misses. It seems to me that many people are unaware of the caching capabilities of ORMs and how to best utilize / optimize them. For my part, I'm currently struggling to decide what to cache and when, and so far I haven't seen a good discussion of it.

If you're going to discuss Lucene, many people are going to wonder why they should use it instead of the built-in full-text search in their DB.

01/28/2008 06:12 PM by

I'm in favor of Queries as Business Logic, but the main stumbling block for me is unit testing them. Do you have pointers to further information on this topic?

Ayende Rahien
01/28/2008 06:48 PM by
Ayende Rahien





As for testing, in memory DB works very well there.

Chris Chew
01/28/2008 09:49 PM by
Chris Chew

How about portioning out a single, contiguous domain into small pieces of cross-team ownership? Basically I'm thinking about using inheritance to provide extensibility to higher-level teams across an enterprise-like organization.

Ayende Rahien
01/28/2008 09:58 PM by
Ayende Rahien


Can you give more information about it?

I think that partial domain models covers that, no?

Comments have been closed on this topic.