<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Opgenorth.NET &#187; ALT.NET</title>
	<atom:link href="http://www.opgenorth.net/tag/alt-net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.opgenorth.net</link>
	<description>A software geek torn apart by the dicotomy of .NET by day, Ruby and Android by night</description>
	<lastBuildDate>Wed, 07 Sep 2011 03:30:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Off to Austin</title>
		<link>http://www.opgenorth.net/2008/10/28/off-to-austin/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=off-to-austin</link>
		<comments>http://www.opgenorth.net/2008/10/28/off-to-austin/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 01:35:00 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ALT.NET]]></category>

		<guid isPermaLink="false">http://www.opgenorth.net/2008/10/28/off-to-austin/</guid>
		<description><![CDATA[Well, in a scant few hours I&#8217;ll be off to Austin, Texas, for KaizenConf.  It will be a fun packed couple of day dealing with some very interesting topics.  In all honestly, I don&#8217;t exactly know which of the topics I want to attend &#8211; the pretty much all are of interest to me.  Makes [...]]]></description>
			<content:encoded><![CDATA[<p>Well, in a scant few hours I&#8217;ll be off to Austin, Texas, for <a href="http://www.KaizenConf.com">KaizenConf</a>.  It will be a fun packed couple of day dealing with some very <a href="http://codebetter.com/blogs/david_laribee/archive/2008/10/27/kaizenconf-workshops-schedule.aspx">interesting topics</a>.  In all honestly, I don&#8217;t exactly know which of the topics I want to attend &#8211; the pretty much all are of interest to me.  Makes me wish I could clone myself.</p>
<p>My plane lands early afternoon, so if you&#8217;re kicking around Austin and want to entertain an easily amused Canuck, give me a holler (comments here, or on twitter).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opgenorth.net/2008/10/28/off-to-austin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ALT.NET Session #4: Sprocs Good Or Evil / NHibernate with Cartoon Bears</title>
		<link>http://www.opgenorth.net/2008/04/19/alt-net-session-4-sprocs-good-or-evil-nhibernate-with-cartoon-bears/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=alt-net-session-4-sprocs-good-or-evil-nhibernate-with-cartoon-bears</link>
		<comments>http://www.opgenorth.net/2008/04/19/alt-net-session-4-sprocs-good-or-evil-nhibernate-with-cartoon-bears/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 01:25:00 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[ALT.NET]]></category>

		<guid isPermaLink="false">http://www.opgenorth.net/2008/04/19/alt-net-session-4-sprocs-good-or-evil-nhibernate-with-cartoon-bears/</guid>
		<description><![CDATA[Two topics merged into one.&#160; Rod Paddock wants to talk about stored procs, and others want to learn how to explain NHibernate to other people who aren&#8217;t familiar with it (and minimize the jargon). Rod uses a custom code-gen solution based heavily on sprocs &#8211; a data driven approach.&#160; Sounds like it works well for [...]]]></description>
			<content:encoded><![CDATA[<p>Two topics merged into one.&#160; Rod Paddock wants to talk about stored procs, and others want to learn how to explain NHibernate to other people who aren&#8217;t familiar with it (and minimize the jargon).</p>
<p>Rod uses a custom code-gen solution based heavily on sprocs &#8211; a data driven approach.&#160; Sounds like it works well for him.&#160; Oren concurs that this technique could be very effective in certain circumstances.&#160; It will have problems with complex situations that deal with convoluted/difficult data scenarios.&#160; He&#8217;s giving an example, but I just can&#8217;t keep up with him.&#160; The point of Oren&#8217;s story is that a domain driven approach will would better when you&#8217;re not dealing with data but with data and behavior.</p>
<p>Brad Abrams brings up the point of noun centric vs. verb centric&#160; designs.&#160; Noun centric == data driven.&#160; Verb centric == domain driven.</p>
<p>Oren talks about one of the big advantages of DDD.&#160; We can very easily change the model, as it is all in code.&#160; Tools like R# allow us to make changes quickly, and then NHibernate will allow us to update the database just&#160; as quickly.&#160; Databases are an implementation detail, part of the application, a mere persistence store.&#160; A good domain design will generally lend itself to a&#160; decent database design.</p>
<p>Apparently it is possible to suffer from an SQL injection attack with NHibernate.&#160; According to Oren, you have to be pretty stupid for this to happen, but it can happen.&#160; I did not know this.</p>
<p>Topic changes:&#160; what do you do when you come to a client who has 1.5TB of established data and database.&#160; How do you deal with that?&#160; Ideally, you claim ownership of the data, and carry on.&#160; This isn&#8217;t very realistic.</p>
<p>Oren starts explaining that NHibernate can allow you to partition the data in existing databases to match your model.&#160; He suggests that it might be better to speak with the DBA to make a new model, as this approach might take a lot of effort.&#160; Might be smarter/better to change the persistence.</p>
<p>Oren&#8217;s preference is to generate the HBM&#8217;s by hand.&#160; He wants the pain to be real.&#160; The logic is that the pain will force you to thing about your model, and helps you focus on what is important to your model.&#160; By generating the code, you end up with, for example, a domain model that has 200 classes/tables and classes with 700 fields.</p>
<p>Another advantage of using NHibernate:&#160; you get a nice way to set up a unit of work, and can specify boundaries for your application.&#160; For example, you can, via an HttpModule with your unit of work, limit the number of queries (trips to the database).&#160; Oren:&#160; Going to the database is the best place to optimize, not the query itself.&#160; Minimize the trips to the database.&#160; You can enforce this limit right away.&#160; It is not a problem that will hit you out of the blue in production.</p>
<p>NHibernate is very complex, and the learning curve very steep.&#160; Oren argues it is not overly complex, and this complexity allows you to very advanced things.&#160; For the simple stuff, NHibernate is very easy.&#160; It is very irresponsible to just parachute in, introduce NHibernate, and then disappear.</p>
<p>Oren quotes: </p>
<ul>
<li>&quot;I tend to be nice to people that pay me&quot; </li>
<li>&quot;Use a set, that is all&quot; </li>
<li>&quot;Don&#8217;t worry about performance until you see you have a hotspot and are using a profiler&quot; </li>
<li>&quot;Whoever designed Linq bordered between genius and madman&quot; </li>
</ul>
<p><a href="http://www.flux88.com/">Ben Scheirman</a> refers us to <a href="http://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html/collections.html">Chapter 6</a> in NHibernate.&#160; Important for collections.</p>
<p>It seems that this session is not so much stored procs, but a Q&amp;A session from the community about what exactly NHibernate can do.&#160; Oren&#8217;s knowledge and experience </p>
<p>The CLR is very fast, asserts Oren Eini.&#160; Rod Paddock disagrees.&#160; With WebForms, it isn&#8217;t the CLR that is slower, it is all the stuff that goes on behind the scenes with the page lifecycle.</p>
<p>The question is asked:&#160; Are datasets more efficient that NHibernate.&#160; Apparently some people get hung up on these types of things, and claim that tools like ORM&#8217;s aren&#8217;t good because they add overhead.&#160; Sounds like premature overhead to me.</p>
<p>Unrelated trivia:&#160; This is the latest in the year it has snowed in Seattle since 1968.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opgenorth.net/2008/04/19/alt-net-session-4-sprocs-good-or-evil-nhibernate-with-cartoon-bears/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

