<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>
<channel>
	<title>Comments on: (final) Summer of NHibernate Session 14: Migrating to NHibernate 2.0 is Available</title>
	<atom:link href="http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/feed/" rel="self" type="application/rss+xml" />
	<link>http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/</link>
	<description>Miscellaneous musings on life, .NET development, and related things that don't really matter</description>
	<pubDate>Thu, 17 May 2012 21:24:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Coach Handbags</title>
		<link>http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/comment-page-8/#comment-123914</link>
		<dc:creator>Coach Handbags</dc:creator>
		<pubDate>Tue, 21 Feb 2012 07:22:25 +0000</pubDate>
		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/#comment-123914</guid>
		<description>Ironically, although many were impressed by Crosby's invention when she wore it on the dance floor, sales were slow. Crosby managed to sell only one for a dollar and for a while it seemed that the bra was doomed to be forgotten Coach 17693p SVBK Madison Op Art Sateen Sophia Satchel Silver Brown.</description>
		<content:encoded><![CDATA[<p>Ironically, although many were impressed by Crosby&#8217;s invention when she wore it on the dance floor, sales were slow. Crosby managed to sell only one for a dollar and for a while it seemed that the bra was doomed to be forgotten Coach 17693p SVBK Madison Op Art Sateen Sophia Satchel Silver Brown.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Naresh</title>
		<link>http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/comment-page-1/#comment-19300</link>
		<dc:creator>Naresh</dc:creator>
		<pubDate>Wed, 05 Aug 2009 17:37:04 +0000</pubDate>
		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/#comment-19300</guid>
		<description>Any tutorail for NHibernate 2.0 for enterprise apllication?</description>
		<content:encoded><![CDATA[<p>Any tutorail for NHibernate 2.0 for enterprise apllication?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ray</title>
		<link>http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/comment-page-1/#comment-11281</link>
		<dc:creator>Ray</dc:creator>
		<pubDate>Thu, 26 Feb 2009 20:59:33 +0000</pubDate>
		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/#comment-11281</guid>
		<description>Steve:

I tried to use the Microdesk.Utility.UnitTest against a SQL Server 2008 database using schemas and the SaveTestDatabase() method cannot find my tables like it did when I was using it against an identical SQL Server 2005 database without special schemas (technically dbo only).

Does your utility support schemas?  Am I doing something wrong?

Thanks,

Ray</description>
		<content:encoded><![CDATA[<p>Steve:</p>
<p>I tried to use the Microdesk.Utility.UnitTest against a SQL Server 2008 database using schemas and the SaveTestDatabase() method cannot find my tables like it did when I was using it against an identical SQL Server 2005 database without special schemas (technically dbo only).</p>
<p>Does your utility support schemas?  Am I doing something wrong?</p>
<p>Thanks,</p>
<p>Ray</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David V</title>
		<link>http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/comment-page-1/#comment-10656</link>
		<dc:creator>David V</dc:creator>
		<pubDate>Wed, 11 Feb 2009 18:40:27 +0000</pubDate>
		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/#comment-10656</guid>
		<description>I found the answer to my question--Yes, you can encapsulate NHibernate in a DataAccess project and isolate it from the rest of the app. The architecture works fine.

I had a problem that actually related to the idiocyncracies of a SQL CE private installation. For anyone with a similar problem, I posted the same question, and it's solution, on the NHibernate forum at Hibernate.org.</description>
		<content:encoded><![CDATA[<p>I found the answer to my question&#8211;Yes, you can encapsulate NHibernate in a DataAccess project and isolate it from the rest of the app. The architecture works fine.</p>
<p>I had a problem that actually related to the idiocyncracies of a SQL CE private installation. For anyone with a similar problem, I posted the same question, and it&#8217;s solution, on the NHibernate forum at Hibernate.org.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David V</title>
		<link>http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/comment-page-1/#comment-10561</link>
		<dc:creator>David V</dc:creator>
		<pubDate>Mon, 09 Feb 2009 22:11:17 +0000</pubDate>
		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/#comment-10561</guid>
		<description>Hi Steve--

I've got a question that probably falls under the category "Further Exploration". 

I have created a demo app to help me learn architecture with NHibernate. I am using a very basis architecture with two layers, each in a separate project:

-- Core (domain model and mapping files); and

-- DataAccess (data access code).

The DataAccess project has several repositories, which return objects or collections, and a DatabaseManager, which holds an NHibernate session factory. This project holds a reference to NHibernate, and 'Copy Local' is set to true. The Core project has no reference to 
NHibernate. 

I am using a separate unit test project to drive the app It calls repository methods to get the populated objects it needs and to persist objects. The test project does not have a reference to NHibernate.

Obviously, I am trying to isolate knowledge of NHibernate to the DataAccess project. Here's my question: Is this a viable architecture for working with NHibernate? Any suggestions on how to improve it?

Thanks for your help!

David Veeneman
Foresight Systems</description>
		<content:encoded><![CDATA[<p>Hi Steve&#8211;</p>
<p>I&#8217;ve got a question that probably falls under the category &#8220;Further Exploration&#8221;. </p>
<p>I have created a demo app to help me learn architecture with NHibernate. I am using a very basis architecture with two layers, each in a separate project:</p>
<p>&#8211; Core (domain model and mapping files); and</p>
<p>&#8211; DataAccess (data access code).</p>
<p>The DataAccess project has several repositories, which return objects or collections, and a DatabaseManager, which holds an NHibernate session factory. This project holds a reference to NHibernate, and &#8216;Copy Local&#8217; is set to true. The Core project has no reference to<br />
NHibernate. </p>
<p>I am using a separate unit test project to drive the app It calls repository methods to get the populated objects it needs and to persist objects. The test project does not have a reference to NHibernate.</p>
<p>Obviously, I am trying to isolate knowledge of NHibernate to the DataAccess project. Here&#8217;s my question: Is this a viable architecture for working with NHibernate? Any suggestions on how to improve it?</p>
<p>Thanks for your help!</p>
<p>David Veeneman<br />
Foresight Systems</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Simon</title>
		<link>http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/comment-page-1/#comment-10071</link>
		<dc:creator>Simon</dc:creator>
		<pubDate>Mon, 02 Feb 2009 14:35:07 +0000</pubDate>
		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/#comment-10071</guid>
		<description>Hi Steve,

The series is fantastic - we are implementing NHibernate on some smaller projects now and if things go well then we will also use it for our bigger projects.

One thing I am stuck on in converting from MbUnit v2 to v3 is that Assert.Warning is no longer valid in v3. According to the only post I can find on the subject (http://blog.bits-in-motion.com/2008/10/announcing-gallio-and-mbunit-v304.html) I should now be using TestLog.Warning.WriteLine instead of Assert.Warning - but I have not been able to get this to work; intelisense does not recognise TestLog and it won't compile. How did you overcome this issue? Is the syntax wrong or is there a better pattern for checking that there are results and warning if there are not?</description>
		<content:encoded><![CDATA[<p>Hi Steve,</p>
<p>The series is fantastic - we are implementing NHibernate on some smaller projects now and if things go well then we will also use it for our bigger projects.</p>
<p>One thing I am stuck on in converting from MbUnit v2 to v3 is that Assert.Warning is no longer valid in v3. According to the only post I can find on the subject (http://blog.bits-in-motion.com/2008/10/announcing-gallio-and-mbunit-v304.html) I should now be using TestLog.Warning.WriteLine instead of Assert.Warning - but I have not been able to get this to work; intelisense does not recognise TestLog and it won&#8217;t compile. How did you overcome this issue? Is the syntax wrong or is there a better pattern for checking that there are results and warning if there are not?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sbohlen</title>
		<link>http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/comment-page-1/#comment-3633</link>
		<dc:creator>sbohlen</dc:creator>
		<pubDate>Mon, 27 Oct 2008 22:57:18 +0000</pubDate>
		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/#comment-3633</guid>
		<description>@Ryan:

See this thread also (from the NHUsers google group...

http://groups.google.com/group/nhusers/browse_thread/thread/2373c0365ff3fc83?hl=en&#038;pli=1</description>
		<content:encoded><![CDATA[<p>@Ryan:</p>
<p>See this thread also (from the NHUsers google group&#8230;</p>
<p><a href="http://groups.google.com/group/nhusers/browse_thread/thread/2373c0365ff3fc83?hl=en&#038;pli=1" rel="nofollow">http://groups.google.com/group/nhusers/browse_thread/thread/2373c0365ff3fc83?hl=en&#038;pli=1</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sbohlen</title>
		<link>http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/comment-page-1/#comment-3628</link>
		<dc:creator>sbohlen</dc:creator>
		<pubDate>Mon, 27 Oct 2008 20:06:27 +0000</pubDate>
		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/#comment-3628</guid>
		<description>@Ryan:

Sort of.  Here is a link to a post that begins to describe this issue in a bit more detail...

http://dotnet.agilekiwi.com/blog/2007_09_01_archive.html</description>
		<content:encoded><![CDATA[<p>@Ryan:</p>
<p>Sort of.  Here is a link to a post that begins to describe this issue in a bit more detail&#8230;</p>
<p><a href="http://dotnet.agilekiwi.com/blog/2007_09_01_archive.html" rel="nofollow">http://dotnet.agilekiwi.com/blog/2007_09_01_archive.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ryan</title>
		<link>http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/comment-page-1/#comment-3593</link>
		<dc:creator>Ryan</dc:creator>
		<pubDate>Sun, 26 Oct 2008 20:43:12 +0000</pubDate>
		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/#comment-3593</guid>
		<description>Steve, you mentioned that with 2.0 it was a requirement that even reads be done in the context of a transaction yet methods in the series like CRIT_GetCustomersByFirstname are still just simple returns.  Did I misunderstand something?

Ryan</description>
		<content:encoded><![CDATA[<p>Steve, you mentioned that with 2.0 it was a requirement that even reads be done in the context of a transaction yet methods in the series like CRIT_GetCustomersByFirstname are still just simple returns.  Did I misunderstand something?</p>
<p>Ryan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sbohlen</title>
		<link>http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/comment-page-1/#comment-3541</link>
		<dc:creator>sbohlen</dc:creator>
		<pubDate>Sat, 25 Oct 2008 11:49:44 +0000</pubDate>
		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2008/10/05/final-summer-of-nhibernate-session-14-migrating-to-nhibernate-20-is-available/#comment-3541</guid>
		<description>@antoschka:

I wouldn't be at all 'fearful' of the fact that the Castle Project appears mostly 'inactive'.  I (personally) use the project's Windsor Container as my IoC tool of choice with great success.  Up until just very recently NHibernate itself took a dependency on the Castle Dynamic Proxy library for its lazy-loading support(which is still its default though now you can replace that with your own proxying engine if you need to).

The stated reason that the Castle Project remains at 1.0 RCxxx rather than having reached a formal 1.0 RTM is philosophical: the project team's vision for Castle is for it to be able to do several things that are not yet entirely possible in the .NET framework.  Because they feel strongly that Castle 1.0 should have these features in order to be feature-complete, they have (wrongly in my view) decided to leave the thing at RC-status rather than just going to 1.0 RTM and saving the additional 'wish-list' feastures for Castle v 2.0 or something.

As a result of this choice, to anyone not familiar with this 'backstory' it looks like Castle has been 'stuck' at 1.0 RCxxx status and abandoned.  This is most definitely NOT the case, but this is why I personally disagree with their decision not to RTM until they can somehow overcome some limitations of the framework (which of course won't happen and they are stuck hoping that MS solves a few ugly architectural gotchas in some subsequent framework release).  It sends absolutely the wrong message to anyone considering adopting anythign from the Castle Project.

That said, you are pretty much correct in your estimation of the role of Castle ActiveRecord being a simplification/abstraction atop NHibernate; like its name suggests, Castle ActiveRecord is an implementation of the more general Active Record data-access pattern (google it for more info) that basically says 'for every table in my DB, I will have a class and for every field in my table I will have a property'.  If this suits your project's data-access needs then Castle ActiveRecord can be a great way to get your data-access accomplished without the complexity (or frankly the flexibility) of 'full' NHibernate.  SubSonic (by Rob Conery) falls into this same category of being an implementation of the Active Record pattern, as do .NET datasets and a number of other technologies (that space is pretty well saturated with a variety of choices of tools).

Re: a follow-on screencast showing some of the more advanced NHibernate features (or more about 2.0 features), I might indeed spend some time doing this but my immediate feeling is that there are already great resources out there that can focus on just one more specific NHib feature (the eventing model you mentioned, for example).  Once someone has learned the fundamentals (hopefully from my screencasts :) ) then my thought is that its more reasonable for someone to read a blog post about some additional feature, etc. and be able to make sense of it having already grasped the fundamentals from something like my screencasts.  

There are great posts from people like Gabriel Schenker, Davy Brion, Ayende Rahein (of course), and others that focus more deeply on edge cases, a single specific feature, or a more narrow how-to in just one area for people interested in diving into more of the specifics of any one feature.  Your point about the screencasts being a great medium for delivering that same content is well-taken, but I really wanted to focus on delivering content in my screencasts that is NOT really available elsewhere (or at least not as coherently organized) rather than duplicating what's already out there.

I hope that makes some sense and thanks again for the feedback.</description>
		<content:encoded><![CDATA[<p>@antoschka:</p>
<p>I wouldn&#8217;t be at all &#8216;fearful&#8217; of the fact that the Castle Project appears mostly &#8216;inactive&#8217;.  I (personally) use the project&#8217;s Windsor Container as my IoC tool of choice with great success.  Up until just very recently NHibernate itself took a dependency on the Castle Dynamic Proxy library for its lazy-loading support(which is still its default though now you can replace that with your own proxying engine if you need to).</p>
<p>The stated reason that the Castle Project remains at 1.0 RCxxx rather than having reached a formal 1.0 RTM is philosophical: the project team&#8217;s vision for Castle is for it to be able to do several things that are not yet entirely possible in the .NET framework.  Because they feel strongly that Castle 1.0 should have these features in order to be feature-complete, they have (wrongly in my view) decided to leave the thing at RC-status rather than just going to 1.0 RTM and saving the additional &#8216;wish-list&#8217; feastures for Castle v 2.0 or something.</p>
<p>As a result of this choice, to anyone not familiar with this &#8216;backstory&#8217; it looks like Castle has been &#8217;stuck&#8217; at 1.0 RCxxx status and abandoned.  This is most definitely NOT the case, but this is why I personally disagree with their decision not to RTM until they can somehow overcome some limitations of the framework (which of course won&#8217;t happen and they are stuck hoping that MS solves a few ugly architectural gotchas in some subsequent framework release).  It sends absolutely the wrong message to anyone considering adopting anythign from the Castle Project.</p>
<p>That said, you are pretty much correct in your estimation of the role of Castle ActiveRecord being a simplification/abstraction atop NHibernate; like its name suggests, Castle ActiveRecord is an implementation of the more general Active Record data-access pattern (google it for more info) that basically says &#8216;for every table in my DB, I will have a class and for every field in my table I will have a property&#8217;.  If this suits your project&#8217;s data-access needs then Castle ActiveRecord can be a great way to get your data-access accomplished without the complexity (or frankly the flexibility) of &#8216;full&#8217; NHibernate.  SubSonic (by Rob Conery) falls into this same category of being an implementation of the Active Record pattern, as do .NET datasets and a number of other technologies (that space is pretty well saturated with a variety of choices of tools).</p>
<p>Re: a follow-on screencast showing some of the more advanced NHibernate features (or more about 2.0 features), I might indeed spend some time doing this but my immediate feeling is that there are already great resources out there that can focus on just one more specific NHib feature (the eventing model you mentioned, for example).  Once someone has learned the fundamentals (hopefully from my screencasts <img src='http://unhandled-exceptions.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) then my thought is that its more reasonable for someone to read a blog post about some additional feature, etc. and be able to make sense of it having already grasped the fundamentals from something like my screencasts.  </p>
<p>There are great posts from people like Gabriel Schenker, Davy Brion, Ayende Rahein (of course), and others that focus more deeply on edge cases, a single specific feature, or a more narrow how-to in just one area for people interested in diving into more of the specifics of any one feature.  Your point about the screencasts being a great medium for delivering that same content is well-taken, but I really wanted to focus on delivering content in my screencasts that is NOT really available elsewhere (or at least not as coherently organized) rather than duplicating what&#8217;s already out there.</p>
<p>I hope that makes some sense and thanks again for the feedback.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

