﻿<?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>Steve Wagner commented on NHibernate is on the cover of MSDN Magazine</title><description>Your article is very interesting and it reads good, but i have two questions.
  
  
How would you solve a scenario where you could not edit and save parts of a larger object model in one view. Instead you have to save or discard the large object model complete. 
  
In example think of an CRM where you could open a customer, do some changes on more then one view, validate all at once and then save or discard you changes.
  
  
And as second question, how did you work with services this way? The services are often need access to the full object when they do operations, but the services dose not know of the session from the view.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment64</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment64</guid><pubDate>Wed, 30 Dec 2009 10:20:11 GMT</pubDate></item><item><title>raffaeu commented on NHibernate is on the cover of MSDN Magazine</title><description>I saw the article and it's very interesting. I am completely agree with you as the session in a smart client application has  and should have a complete different approach.
  
When I work with n-tier app and I have to use Nhb session both in WCF or in the win side, the session approach is completely different.
  
Really happy and satisfied from your article. As usual, great job!!
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment63</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment63</guid><pubDate>Thu, 10 Dec 2009 17:26:13 GMT</pubDate></item><item><title>Ayende Rahien commented on NHibernate is on the cover of MSDN Magazine</title><description>It looks like you are using an older version of NHibernate, from the version numbers
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment62</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment62</guid><pubDate>Thu, 10 Dec 2009 15:43:23 GMT</pubDate></item><item><title>Bernhard commented on NHibernate is on the cover of MSDN Magazine</title><description>I tried to adapt one of your ideas from the article (saving the configuration to disk) - but it throws me an exception: 
  
  
System.Runtime.Serialization.SerializationException wasn't caught by user code
  
  Message="The type \"NHibernate.Util.CollectionHelper+EmptyMapClass`2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[NHibernate.Mapping.MetaAttribute, NHibernate, Version=2.1.0.1003, Culture=neutral, PublicKeyToken=null]]\" in Assembly \"NHibernate, Version=2.1.0.1003, Culture=neutral, PublicKeyToken=null\" is not marked as serializable
  
  Source="mscorlib"
  
  InnerException: 
  
  
Any idea what could be wrong with my code ?
  
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment61</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment61</guid><pubDate>Thu, 10 Dec 2009 15:38:38 GMT</pubDate></item><item><title>Richard commented on NHibernate is on the cover of MSDN Magazine</title><description>You can leave the name calling out if it as it doesn't make your case any stronger.
  
  
"Alex I'm interested in seeing what DataObjects.Net offers with the Sync framework, it looks like an interesting perspective on the issue."
  
  
Despite how you try to reword in the follow-up comment,  this comment wasn't worded as a question and doesn't have anything to do with Ayende's article or NH for that matter.  It is an invitation to Alex to explain how his product leverages the synch framework.
  
  
Again, this is a *perfectly* valid question/inquiry, but this blog is not the place for that discussion.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment60</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment60</guid><pubDate>Wed, 09 Dec 2009 16:58:07 GMT</pubDate></item><item><title>Richard commented on NHibernate is on the cover of MSDN Magazine</title><description>@pete w — Whether you find that type behavior disappointing or not is irrelevant — asking for information about a completely different topic/product within a comment thread is what is commonly known as hijacking the comment thread.  So here it my point a little clearer — asking for more information about DO is perfectly valid, but this is not the place to do it.
  
  
With respect to a opening up and learning a different perspective, I am very open to looking into any product that could help me become a better developer, thank you very much.  I just respect Ayende enough not to discuss Alex's product here. 
  
  
As for Alex's tone, well, it doesn't bother me much actually.  Nonetheless, maybe he should take your advice and learn how to better communicate so he doesn't ruffle as many feathers.  He does do his fair share of antagonizing too.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment59</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment59</guid><pubDate>Wed, 09 Dec 2009 16:49:29 GMT</pubDate></item><item><title>pete w commented on NHibernate is on the cover of MSDN Magazine</title><description>DataObjects.Net leverages the microsoft sync framework as a means of tackling the classic problem of keeping "occasionally connected"  thick clients in sync with the master object graph (the database).
  
  
NHibernate tackles this problem by controlling the granularity of sessions.
  
  
These are two unique approaches to the same problem.
  
  
It is an important problem, my question is not off topic, and obviously you have never dealt with the problem first hand. I have great respect for Ayende and his writing, but the syncophants who post here arent worth my time to argue with any more.  
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment58</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment58</guid><pubDate>Wed, 09 Dec 2009 16:47:01 GMT</pubDate></item><item><title>marco commented on NHibernate is on the cover of MSDN Magazine</title><description>pete if you try to open up maybe you understant that in a post titled 
  
"Building a Desktop To-Do Application with NHibernate"
  
talking about "what DataObjects.Net offers with the Sync framework" is a little off topic :)
  
  
and about alex same people overdo it but he continue to make only comments where it speaks about a little thing of zero+ importance that is framework can do and nhibernate no and continue to speak about that as it is a very important feature. 
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment57</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment57</guid><pubDate>Wed, 09 Dec 2009 15:38:09 GMT</pubDate></item><item><title>pete w commented on NHibernate is on the cover of MSDN Magazine</title><description>Richard - 
  
I think my statement is absolutely appropriate.
  
  
I am disappointed by you and other readers in here that antagonize and mock Alex not for his ideas but because you dont like the tone of his writing. 
  
  
If you try to open up and learn a different perspective you might pick up something useful along the way.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment56</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment56</guid><pubDate>Wed, 09 Dec 2009 14:33:40 GMT</pubDate></item><item><title>Richard commented on NHibernate is on the cover of MSDN Magazine</title><description>@pete w — you should probably ask that elsewhere, don't ya think?!? Ayende's blog is hardly the place to discuss DO.  If Alex wants to discuss DO's features he can do so on his blog or write his own MSDN article. ;)
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment55</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment55</guid><pubDate>Tue, 08 Dec 2009 22:07:02 GMT</pubDate></item><item><title>pete w commented on NHibernate is on the cover of MSDN Magazine</title><description>Alex I'm interested in seeing what DataObjects.Net offers with the Sync framework, it looks like an interesting perspective on the issue.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment54</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment54</guid><pubDate>Tue, 08 Dec 2009 21:07:03 GMT</pubDate></item><item><title>lemycanh commented on NHibernate is on the cover of MSDN Magazine</title><description>Oh, thanks, that is a great aticle, the Model-View-Presenter architecture in that example is also very interesting, tyvm ;)
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment53</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment53</guid><pubDate>Tue, 08 Dec 2009 16:03:18 GMT</pubDate></item><item><title>Ayende Rahien commented on NHibernate is on the cover of MSDN Magazine</title><description>lemycanh,
  
No, because NHibernate may provide a proxy class for you. For all intents and purposes, you may treat this instance as a ToDoAction class.
  
Making runtime checks of GetType() == typeof() is a bad idea
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment52</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment52</guid><pubDate>Tue, 08 Dec 2009 13:00:49 GMT</pubDate></item><item><title>lemycanh commented on NHibernate is on the cover of MSDN Magazine</title><description>In the code of this article, when i load an entity from database, then i compare as the following:
  
entity.GetType().IsSubclassOf(typeof(ToDoAction))
  
the result is true, and
  
entity.GetType().Equals(typeof(ToDoAction))
  
alway return false.  :(
  
Is there any way to make the type of an entity loaded from database equal the type of ToDoAction class?
  
Sorry for my poor English :)
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment51</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment51</guid><pubDate>Tue, 08 Dec 2009 05:22:00 GMT</pubDate></item><item><title>Sean commented on NHibernate is on the cover of MSDN Magazine</title><description>Hmmm...winky faces appear when you ask questions for the Nth time with no answer?  Is that why you opened the comments with this:
  
  
&gt; Really nice article ;)
  
  
To me (and probably 99% of the population) that reads as if you don't really mean it was a nice article.  Maybe the real problem (aside from your argumentative and condescending nature and inability to recognize it in yourself of course) is that you simply don't understand how to use emoticons.
  
  
&gt; Ok, I feel I said enough for this thread. 
  
  
Actually that happened about 16 comments or so back.  ;)
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment50</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment50</guid><pubDate>Tue, 08 Dec 2009 05:16:34 GMT</pubDate></item><item><title>Ayende Rahien commented on NHibernate is on the cover of MSDN Magazine</title><description>Alex,
  
I don't like to repeat myself. And I don't see much of a point in arguing endlessly.
  
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment49</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment49</guid><pubDate>Mon, 07 Dec 2009 23:29:07 GMT</pubDate></item><item><title>Alex Yakunin commented on NHibernate is on the cover of MSDN Magazine</title><description>I'll explain how this happens:
  
- I ask a question like: "If you do, just name them."
  
- Oren does not answers, but writes: "Cloning the session results in more problems down the road" without explaining this further (I seen the explanation earlier, and already shown there are at least no more problems than in his original version).
  
  
Respecting the party normally implies answering on exact questions. Answer, than add anything you want to say. But it's the second topic I take part here where this rule does not work, and not from my side. Winky faces normally appear when I ask the same question for N-th time, and getting no direct answer.
  
  
So guys, good look paying attention on various side effects of such discussions like smiles in messages. 
  
  
&gt; The fact that there are usually things like "we already support this"
  
  
Don't rephrase me: I answered this on "merging Sessions is meaningless". Meaningless is not the best matching term here - possibly, for NH too (there must be original state used to perform dirty checking; so just detect the conflicts there, merge it and merge the actual state - again, with conflict detection). I wrote "we" mainly because I know how this works in our case. Moreover, the whole subject about merging was far from the original topic.
  
  
Btw, I completely don't understand why are you so aggressively talking with competitors here: if you're strong/popular enough (that's obvious), there is nothing to fear at all. Moreover, you're getting various ideas as well as issue reports for free. And instead of just following this, you're turning a  normal discussion into argue around marketing. 
  
  
You can say I'm writing mainly about the issues here (and that's true). Why? Well, good solutions are interesting for me, but frequently there is nothing to discuss, because it just works. I write mainly about our own good solutions, or the ones I consider brilliant (like Rx) - something, that is really new for me. Oren writes lots of nice posts, but personally I simply don't know what to write about many of them, although I understand they must be useful for developers. 
  
  
On the other hand, finding &amp; discussing possible issues in proposed solution is what really interesting. Sometimes this may even brake the whole idea. But this is good, because if you don't pay attention to issues, you're not developer at all. 
  
  
So I'm not a kind guy constantly pointing on problems. Looking for them is simply a part of my mind. Obviously, in my daily life I mainly discussing solutions, but not just issues ;) But when I read something, I read it as critic as well. And, if there is something suspicious, I normally point on this; if this leads to argue, I'm proving my position. I easily agree with the opponent, if I understand his reasoning.
  
  
Ok, I feel I said enough for this thread. It's time to sleep here (3am). Have a good day/night.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment48</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment48</guid><pubDate>Mon, 07 Dec 2009 22:41:46 GMT</pubDate></item><item><title>Sean commented on NHibernate is on the cover of MSDN Magazine</title><description>Alex, the reason folks get annoyed is that you are thoroughly argumentative and often condescending in your comments.  No amount of winky faces makes up for that and despite whatever your intentions may be, your comments come across as nothing more than NH (or Oren) bashing.  The fact that there are usually things like "we already support this" makes it sound like a misguided marketing attempt too (i.e. here is the problem with NH that you won't have with my product).
  
  
But even giving you the benefit of the doubt here, assuming you have good intentions and don't mean to sound condescending, the sheer volume of your comments detracts from any actual meaningful conversation to be had.  All people see is comment after comment by you (often with no other comments in between) and that, in and of itself, is annoying.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment47</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment47</guid><pubDate>Mon, 07 Dec 2009 20:39:24 GMT</pubDate></item><item><title>Ayende Rahien commented on NHibernate is on the cover of MSDN Magazine</title><description>Alex,
  
Cloning the session results in more problems down the road
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment46</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment46</guid><pubDate>Mon, 07 Dec 2009 20:36:58 GMT</pubDate></item><item><title>Alex Yakunin commented on NHibernate is on the cover of MSDN Magazine</title><description>Hack = usage of API that is not intended for solving the problem. 
  
- Concurrent read-write access to Session is not a part of its intended usage.
  
- If cloning is really supported, I don't see any hacks (inappropriate usage of APIs) inside my solution. If you do, just name them.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment45</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment45</guid><pubDate>Mon, 07 Dec 2009 19:44:32 GMT</pubDate></item><item><title>Ayende Rahien commented on NHibernate is on the cover of MSDN Magazine</title><description>Alex,
  
I consider the cloning approach to be a hack.
  
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment44</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment44</guid><pubDate>Mon, 07 Dec 2009 19:12:57 GMT</pubDate></item><item><title>Alex Yakunin commented on NHibernate is on the cover of MSDN Magazine</title><description>Behavior of objects exposed in Session can significantly vary. Obviously, what you see in NH isn't the only possible way. You're right, finally it's a part of the whole graph of objects stored in DB, so the differences aren't dramatic. But this is enough to make a question of using multiple sessions versus single one subjective.
  
  
Let me finish here. There are such guys as Nick, and I'm already feeling his "grrrr...." ;)
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment43</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment43</guid><pubDate>Mon, 07 Dec 2009 18:12:43 GMT</pubDate></item><item><title>pete w commented on NHibernate is on the cover of MSDN Magazine</title><description>&gt;Actually, this is dependent on the framework - all depends on intended Session usage in a particular ORM.
  
  
Whether you call it a session, a dataset, or just a bag of objects with state, it falls under the same conceptual umbrella. The objects contain state that can be invalidated and need to be kept in sync with the master copy. That's a universal problem regardless of whether you are using an ORM or a carrier pigeon.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment42</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment42</guid><pubDate>Mon, 07 Dec 2009 16:07:25 GMT</pubDate></item><item><title>Alex Yakunin commented on NHibernate is on the cover of MSDN Magazine</title><description>Btw (to state this once again :) ), the article itself is great. Simply perfect intro for NH @ WPF.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment41</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment41</guid><pubDate>Mon, 07 Dec 2009 15:58:13 GMT</pubDate></item><item><title>Alex Yakunin commented on NHibernate is on the cover of MSDN Magazine</title><description>&gt; This concept of UI arrangement can be of benefit to any thick client design regardless of NHibernate/EF/XX.
  
  
Actually, this is dependent on the framework - all depends on intended Session usage in a particular ORM.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment40</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment40</guid><pubDate>Mon, 07 Dec 2009 15:55:53 GMT</pubDate></item><item><title>Alex Yakunin commented on NHibernate is on the cover of MSDN Magazine</title><description>Oren, I fully agree that ideally any saving\loading must be asynchronous. But I think if this is shown in sample, it's better to use really safe approach instead of the one closer to a hack.
  
  
What do you normally do to perform async operation, if you'd like to avoid locking? Either use read-only structures or provide their own copy for each thread. Your solution was based on fact that a mutable structure won't be used concurrently (i.e. "let's think it's read only, although this is not fully true"). Thus I suggested to simply clone it to avoid any danger.
  
  
For me it's almost the same as recommending to use dictionary concurrently in case there is just a single writer.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment39</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment39</guid><pubDate>Mon, 07 Dec 2009 15:50:47 GMT</pubDate></item><item><title>pete w commented on NHibernate is on the cover of MSDN Magazine</title><description>I once wrote a reasonably large enterprise app (80+ tables, 30+ concurrent users) using NHibernate 1.2 with WPF thick clients.
  
  
I ran into the painful lesson that Ayende describes as "common bad practice", using a single session per application instance.
  
  
Once we gained a better understanding around how to handle sessions correctly, we refactored and found NH to be effective for our needs.
  
  
One subtle but important lesson I learned is that the design of the UI (correct use of master-detail windows, modal behavior) not only makes conflict management easier for the developer, but also gives the end user an understanding of the data model, and this transparency allows for a better all-around understanding of the application which is a good thing in terms of support. 
  
  
This concept of UI arrangement can be of benefit to any thick client design regardless of NHibernate/EF/XX.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment38</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment38</guid><pubDate>Mon, 07 Dec 2009 15:25:48 GMT</pubDate></item><item><title>Ayende Rahien commented on NHibernate is on the cover of MSDN Magazine</title><description>Nick,
  
A small correction, I am not the main contributor for NHibernate, just the loudest one.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment37</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment37</guid><pubDate>Mon, 07 Dec 2009 15:13:02 GMT</pubDate></item><item><title>Ayende Rahien commented on NHibernate is on the cover of MSDN Magazine</title><description>Alex,
  
Please attribute quotes correctly.
  
  
Your approach with synchronous save is going to lead to either hung UI or to lot of connection timeout errors. Neither of which are nice to the user.
  
My approach, quite explicitly, as mentioned in the article is there to handle the case of not hunging the UI.
  
And I was quite clear about how to handle multiple actions at the same time.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment36</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment36</guid><pubDate>Mon, 07 Dec 2009 15:12:28 GMT</pubDate></item><item><title>Alex Yakunin commented on NHibernate is on the cover of MSDN Magazine</title><description>Great you're trying to protect Oren. What's bad is the way you choose (switching the context to the only one you are able to recognize - for me this looks much like: "he is alien! bow-wow!") and your inability to distinguish between advertisement and regular discussion of issue. So you're true fan ;)
  
  
P.S. I write here only when I have something important to say. Moreover, I'm also reader of Oren's blog. If I'd decide to advertise something here, obviously, I'd ask the others.
</description><link>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment35</link><guid>http://ayende.com/4313/nhibernate-is-on-the-cover-of-msdn-magazine#comment35</guid><pubDate>Mon, 07 Dec 2009 15:02:55 GMT</pubDate></item></channel></rss>