<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blog.magenic.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Designing Out Loud in the .NET Space</title><link>http://blog.magenic.com/blogs/jons/default.aspx</link><description>Stream of consciousness about software design and unit testing (assuming that there is any real difference between the two).</description><dc:language>en</dc:language><generator>CommunityServer 2.1 (Build: 60809.935)</generator><item><title>ORM: Prelude to Greatness: the Requirements for Mapping</title><link>http://blog.magenic.com/blogs/jons/archive/2008/05/02/ORM_3A00_-Prelude-to-Greatness_3A00_-the-Requirements-for-Mapping.aspx</link><pubDate>Fri, 02 May 2008 19:51:18 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:3941</guid><dc:creator>jons</dc:creator><slash:comments>1</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/3941.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=3941</wfw:commentRss><description>All of these solution approaches involve mapping between the application view and the database view. The problem with each of these approaches is that the mapping is defined within the application or the database. What we want is a solution that is outside...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/05/02/ORM_3A00_-Prelude-to-Greatness_3A00_-the-Requirements-for-Mapping.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=3941" width="1" height="1"&gt;</description></item><item><title>In-Memory Database: Waypoint #1</title><link>http://blog.magenic.com/blogs/jons/archive/2008/05/01/In_2D00_Memory-Database_3A00_-Waypoint-_2300_1.aspx</link><pubDate>Thu, 01 May 2008 14:09:26 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:3928</guid><dc:creator>jons</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/3928.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=3928</wfw:commentRss><description>I have narrowed my search for an&amp;#160; in-memory database to support unit testing down to SQLite ( here and here ) and SharpHSQL ( here and here ).&amp;#160; Both are open-source implementations of in-memory SQL databases.&amp;#160; SQLite is written in mostly...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/05/01/In_2D00_Memory-Database_3A00_-Waypoint-_2300_1.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=3928" width="1" height="1"&gt;</description></item><item><title>ORM: The Gray Zone Revisited</title><link>http://blog.magenic.com/blogs/jons/archive/2008/05/01/ORM_3A00_-The-Gray-Zone-Revisited.aspx</link><pubDate>Thu, 01 May 2008 12:59:22 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:3926</guid><dc:creator>jons</dc:creator><slash:comments>2</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/3926.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=3926</wfw:commentRss><description>A key message in the previous ORM posts is that application point of view and the database point of view are both valid.&amp;#160; What we have to do is to create an environment in which the application domain modelers to do their work at the same time that...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/05/01/ORM_3A00_-The-Gray-Zone-Revisited.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=3926" width="1" height="1"&gt;</description></item><item><title>In Search of An In-Memory Database</title><link>http://blog.magenic.com/blogs/jons/archive/2008/04/30/In-Search-of-An-In_2D00_Memory-Database.aspx</link><pubDate>Wed, 30 Apr 2008 19:14:13 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:3917</guid><dc:creator>jons</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/3917.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=3917</wfw:commentRss><description>As part of the podcast I did a few weeks ago (and that was released to the wild this last Monday), I talked about doing unit tests with an in-memory database.&amp;#160; I have a few cycles available and I thought that I would poke around and see what was...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/04/30/In-Search-of-An-In_2D00_Memory-Database.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=3917" width="1" height="1"&gt;</description></item><item><title>ORM: The Database Point of View</title><link>http://blog.magenic.com/blogs/jons/archive/2008/04/30/ORM_3A00_-The-Database-Point-of-View.aspx</link><pubDate>Wed, 30 Apr 2008 13:32:04 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:3909</guid><dc:creator>jons</dc:creator><slash:comments>1</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/3909.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=3909</wfw:commentRss><description>In my experience, almost all non-demo databases contain data that is associated with multiple domain models. It may be the case that the database starts out in a one-to-one relationship to a domain model (that is, the database was created originally to...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/04/30/ORM_3A00_-The-Database-Point-of-View.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=3909" width="1" height="1"&gt;</description></item><item><title>ORM: The Application Point of View</title><link>http://blog.magenic.com/blogs/jons/archive/2008/04/29/The-Application-Point-of-View.aspx</link><pubDate>Tue, 29 Apr 2008 19:28:52 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:3841</guid><dc:creator>jons</dc:creator><slash:comments>1</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/3841.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=3841</wfw:commentRss><description>Ideally, the application point of view is the point of view of the users who will use the application to advance the interests of the organization. While the application must be computationally competent (more on that in a minute), the structure of the...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/04/29/The-Application-Point-of-View.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=3841" width="1" height="1"&gt;</description></item><item><title>Object Relational Mapping (ORM): Welcome to the Gray Zone</title><link>http://blog.magenic.com/blogs/jons/archive/2008/04/29/Object-Relational-Mapping-_2800_ORM_29003A00_-Welcome-to-the-Gray-Zone.aspx</link><pubDate>Tue, 29 Apr 2008 19:02:27 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:3840</guid><dc:creator>jons</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/3840.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=3840</wfw:commentRss><description>This is the first of a series of blog posts about Object Relational Mapping (or ORM). It is an attempt to capture some of the notions in the presentation that I did at the latest Twins Cities Code Camp. The &amp;quot;Gray Zone&amp;quot; is a reference to approach...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/04/29/Object-Relational-Mapping-_2800_ORM_29003A00_-Welcome-to-the-Gray-Zone.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=3840" width="1" height="1"&gt;</description></item><item><title>ORM Podcast</title><link>http://blog.magenic.com/blogs/jons/archive/2008/04/28/ORM-Podcast.aspx</link><pubDate>Mon, 28 Apr 2008 16:53:15 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:3819</guid><dc:creator>jons</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/3819.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=3819</wfw:commentRss><description>As a result of my Spring 2008 Code Camp talk on ORM, I got a chance to sit down with Microsoft Evangelist, Jeff Brand, to chat about ORM.&amp;#160; You can listen at http://www.slickthought.net/post/New-Spaghetti-Code-Podcast-Available---Jon-Stonecash-on-ORM.aspx...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/04/28/ORM-Podcast.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=3819" width="1" height="1"&gt;</description></item><item><title>The PowerPoint Deck for the ORM Talk</title><link>http://blog.magenic.com/blogs/jons/archive/2008/04/28/The-PowerPoint-Deck-for-the-ORM-Talk.aspx</link><pubDate>Mon, 28 Apr 2008 16:36:00 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:3818</guid><dc:creator>jons</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/3818.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=3818</wfw:commentRss><description>The attachment contains a zipped PowerPoint 2003 deck that I used for the talk. As I noted, I am working on a blog post to expand the contents. Coming soon....(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/04/28/The-PowerPoint-Deck-for-the-ORM-Talk.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=3818" width="1" height="1"&gt;</description><enclosure url="http://blog.magenic.com/blogs/jons/attachment/3818.ashx" length="61120" type="application/x-zip-compressed" /></item><item><title>2008 Spring Code Camp</title><link>http://blog.magenic.com/blogs/jons/archive/2008/04/28/2008-Spring-Code-Camp.aspx</link><pubDate>Mon, 28 Apr 2008 16:21:00 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:3817</guid><dc:creator>jons</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/3817.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=3817</wfw:commentRss><description>Here is the code from the Spring, 2008 Code Camp. I am a little late on this. I fell into a &amp;quot;rabbit hole&amp;quot; while cleaning up the code to be posted here. At my age, I should know better: just ship it, you can &amp;quot;improve&amp;quot; it later. You...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/04/28/2008-Spring-Code-Camp.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=3817" width="1" height="1"&gt;</description><enclosure url="http://blog.magenic.com/blogs/jons/attachment/3817.ashx" length="416984" type="application/x-zip-compressed" /><category domain="http://blog.magenic.com/blogs/jons/archive/tags/CSLA/default.aspx">CSLA</category><category domain="http://blog.magenic.com/blogs/jons/archive/tags/NHiberate/default.aspx">NHiberate</category><category domain="http://blog.magenic.com/blogs/jons/archive/tags/ORM/default.aspx">ORM</category></item><item><title>In the Course of Machine Events</title><link>http://blog.magenic.com/blogs/jons/archive/2008/01/25/In-the-Course-of-Machine-Events.aspx</link><pubDate>Fri, 25 Jan 2008 22:16:36 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:1854</guid><dc:creator>jons</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/1854.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=1854</wfw:commentRss><description>The final technique for extending machine-generated code is to use events. Events are essentially a special form of delegates. When an event is raised, the event process invokes any delegates that have been attached to the event. Each of these delegates...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/01/25/In-the-Course-of-Machine-Events.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=1854" width="1" height="1"&gt;</description></item><item><title>A Commenting, A Commenting, We Shall Go</title><link>http://blog.magenic.com/blogs/jons/archive/2008/01/25/A-Commenting_2C00_-A-Commenting_2C00_-We-Shall-Go.aspx</link><pubDate>Fri, 25 Jan 2008 21:25:44 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:1851</guid><dc:creator>jons</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/1851.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=1851</wfw:commentRss><description>I apparently had the comments feature disabled; this technology stuff is soooo complicated. One of my readers sent this comment in by email. I think that it is a very useful comment and I wanted to add this comment to the mix, along with my response:...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/01/25/A-Commenting_2C00_-A-Commenting_2C00_-We-Shall-Go.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=1851" width="1" height="1"&gt;</description></item><item><title>Delegates! Just Handle It!</title><link>http://blog.magenic.com/blogs/jons/archive/2008/01/20/Delegates_2100_-Just-Handle-It_2100_.aspx</link><pubDate>Sun, 20 Jan 2008 14:54:27 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:1794</guid><dc:creator>jons</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/1794.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=1794</wfw:commentRss><description>In my last post I talked about using strategy-pattern-like interfaces to encapsulate the points of extension for a class. If I take that approach to one extreme, I would end up with a single extension interface with multiple methods, each of which represented...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/01/20/Delegates_2100_-Just-Handle-It_2100_.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=1794" width="1" height="1"&gt;</description></item><item><title>And Yet Another Level of Indirection</title><link>http://blog.magenic.com/blogs/jons/archive/2008/01/14/And-Yet-Another-Level-of-Indirection.aspx</link><pubDate>Mon, 14 Jan 2008 14:35:27 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:1703</guid><dc:creator>jons</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/1703.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=1703</wfw:commentRss><description>Overview In this approach we produce machine-generated code that contains references to human-generated instances of objects that implement extension interfaces. The machine-generated code obtains these object instances by calling a human-generated factory...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/01/14/And-Yet-Another-Level-of-Indirection.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=1703" width="1" height="1"&gt;</description></item><item><title>Half Measures on the Highway to Happiness</title><link>http://blog.magenic.com/blogs/jons/archive/2008/01/06/Half-Measures-on-the-Highway-to-Happiness.aspx</link><pubDate>Sun, 06 Jan 2008 17:08:53 GMT</pubDate><guid isPermaLink="false">2a277c9f-7f25-4670-9bb2-55c6ffd86e07:1566</guid><dc:creator>jons</dc:creator><slash:comments>0</slash:comments><comments>http://blog.magenic.com/blogs/jons/comments/1566.aspx</comments><wfw:commentRss>http://blog.magenic.com/blogs/jons/commentrss.aspx?PostID=1566</wfw:commentRss><description>In my last post I explored the mechanisms to integrate machine-generated code with human-generated code using class inheritance. In this post, we are going to explore solving the same problem using partial classes. A fair amount of what we learned in...(&lt;a href="http://blog.magenic.com/blogs/jons/archive/2008/01/06/Half-Measures-on-the-Highway-to-Happiness.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blog.magenic.com/aggbug.aspx?PostID=1566" width="1" height="1"&gt;</description></item></channel></rss>