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?
Comments
Sounds great, can't wait.
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.
Benedikt,
I am thinking about doing one, yes.
"customer specific domain models" is what I call adaptive domain models.
Where and when?
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...
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?
+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?
Jon
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.
Jon,
Those are interesting topics, but I don't think that they relate to the subject of the talk
Ayende,
Any idea when and where the talk will be given?
DevTeach Toronto, May
Great. Sessions have been posted. Means we'll meet there!
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.
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?
Oran,
http://www.ayende.com/Blog/archive/2007/03/09/Querying-is-a-business-concern.aspx
And:
http://www.ayende.com/Blog/archive/2007/03/12/Querying-Is-A-Business-Concern-Sample.aspx
As for testing, in memory DB works very well there.
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.
Chris,
Can you give more information about it?
I think that partial domain models covers that, no?
Comment preview