<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Unhandled Exceptions</title>
	
	<link>http://unhandled-exceptions.com/blog</link>
	<description>Miscellaneous musings on life, .NET development, and related things that don't really matter</description>
	<pubDate>Wed, 11 Nov 2009 03:03:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/unhandled-exceptions" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Travelogue: Oredev 2009 Wrap-Up</title>
		<link>http://feedproxy.google.com/~r/unhandled-exceptions/~3/Ct8nx4z_0lQ/</link>
		<comments>http://unhandled-exceptions.com/blog/index.php/2009/11/10/travelogue-oredev-2009-wrap-up/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 03:03:47 +0000</pubDate>
		<dc:creator>sbohlen</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[NHibernate]]></category>

		<category><![CDATA[People]]></category>

		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2009/11/10/travelogue-oredev-2009-wrap-up/</guid>
		<description><![CDATA[I’ve just returned from a wonderful trip to the Oredev 2009 Oresund Regional Developers Conference where I was invited to present both a half-day workshop and an hour-long regular talk in the .NET conference track.&#160; If you’re interested, links to my slides and my code samples can be found for download as mentioned in this [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve just returned from a wonderful trip to <a href="http://www.oredev.com" target="_blank">the Oredev 2009 Oresund Regional Developers Conference</a> where I was invited to present both a half-day workshop and an hour-long regular talk in the .NET conference track.&#160; If you’re interested, links to my slides and my code samples can be found for download as mentioned in <a href="http://unhandled-exceptions.com/blog/index.php/2009/11/06/oredev-2009-slides-and-code/" target="_blank">this post</a>.</p>
<h3>Inspiring Variety!</h3>
<p>Oredev (now in its fifth year) has been a conference I have watched longingly from afar for some time.&#160; Each year the speakers, the topics, the variety, and the creativity of content has attracted me to watch the session recordings once posted for viewing and so when I was approached and asked if I would submit several papers for consideration for the event, you couldn’t have kept me away with a stick &#8212; here was a conference I had long admired asking me to consider submitting ideas for my own presentations!</p>
<p>Unlike many conferences that focus in on a specific technology or area of interest, Oredev is that still that (relatively) rare thing in today’s day-and-age of narrow-casting content: the broad, multidisciplinary conference offering a diverse set of conference tracks designed to appeal to everyone.&#160; With tracks that included .NET, Java, Architecture, Agile, Testing, Mobile, and more if you can’t find something of interest at Oredev then you’re in the wrong line of work!</p>
<p>At many conferences you look at the schedule and say to yourself “there’s no session that interests me this hour” but to Oredev’s credit each hour offered at least two or three hard decisions to make about which sessions to attend next!</p>
<h3>Great Content, Great People, Great Experiences</h3>
<p>Some of the best parts of such conferences often happen outside the confines of the actual conference talks themselves.&#160; As seen in the following photo, this is the beginning of the collaboration to end all collaborations: <a href="http://ayende.com/blog" target="_blank">Oren Eini (Ayende)</a> and <a href="http://thedatafarm.com/blog/" target="_blank">Julie Lerman</a> beginning to discuss the challenges of wiring up <a href="http://www.nhprof.com" target="_blank">NHProf (NHibernate Profiler)</a> to work with the Microsoft Entity Framework.</p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00017200911042028.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="IMG00017-20091104-2028" border="0" alt="IMG00017-20091104-2028" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00017200911042028-thumb.jpg" width="244" height="184" /></a> <a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00018200911042053.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="IMG00018-20091104-2053" border="0" alt="IMG00018-20091104-2053" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00018200911042053-thumb.jpg" width="244" height="184" /></a> </p>
<p>Yes, it started right there at one of the tables in the conference’s exhibition space, if you can believe it!&#160; Later, it continued at the local pub, the Bishop’s Arms, that had been designated the semi-official off-conference watering hole for the speakers.&#160; In the following photo, Oren struggles (ok, it was a short struggle for the likes of him!) to get the newly-born Entity Framework Profiler to intercept and display the right SQL statements on INSERT, UPDATE, and DELETE operations in addition to queries (which he’d already tackled).&#160; Note the pint of Guinness at the ready, which just goes to show that its true what they say: “Using Entity Framework will drive you to drink!” <img src='http://unhandled-exceptions.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00020200911042337.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="IMG00020-20091104-2337" border="0" alt="IMG00020-20091104-2337" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00020200911042337-thumb.jpg" width="244" height="184" /></a> </p>
<p>Once the Alpha build was running on Oren’s MacBook, it took three of us to figure out how to get the newly-minted EFProf integrated into the demo code on Julie’s laptop.&#160; I’m doing my part by helping illuminate the scene with the reflection of the light off my forehead.&#160; Note that by now Oren has switched from Guinness to a White Russian and now I’m drinking too.&#160; Even EF tastes good with a pint of Guinness!</p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/stevebohlenjulielermanandoreneinidoefprofintegration.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="Steve Bohlen, Julie Lerman, and Oren Eini do EFProf integration" border="0" alt="Steve Bohlen, Julie Lerman, and Oren Eini do EFProf integration" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/stevebohlenjulielermanandoreneinidoefprofintegration-thumb.jpg" width="244" height="184" /></a> </p>
</p>
<h3>Malmo: Rebirth of an Industrial Center</h3>
<p>Although the conference kept me pretty busy the whole time I was over there, I did nonetheless manage to explore a little of the surrounding town of Malmo.&#160; Malmo is an interesting city in a state of transition: a former industrial center that is in the process of transforming itself into a center of high-tech innovation to position itself for the future.&#160; The city is full of canals that criss-cross the edges of the former industrial region as you can see in the following photo looking back into the center of town from the edge of the Oresund sound itself:</p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00013200911031122.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG00013-20091103-1122" border="0" alt="IMG00013-20091103-1122" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00013200911031122-thumb.jpg" width="244" height="184" /></a></p>
<p>On the left of the canal you can see some of the older buildings that make up much of the city and on the right you can see a familiar sight in Malmo: the juxtaposition of newer modern architecture that houses some of the high-tech businesses that fill the city.</p>
<h3>Mandatory Ferris Wheels in the Town Square</h3>
<p>After the London Wheel, it appears that all European cities now need to have a large Ferris wheel for tourists, and Malmo is apparently no exception; in the following photo you can see ‘The Wheel of Malmo’ located in the town square just barely a block away from the hotel:</p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00029200911070843.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG00029-20091107-0843" border="0" alt="IMG00029-20091107-0843" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00029200911070843-thumb.jpg" width="244" height="184" /></a></p>
<p>Immediately overlooking ‘The Wheel of Malmo’ is the wonderful old Malmo City Hall building where the city sponsored a welcome dinner for the conference speakers on the evening just before the conference began.&#160; Offering a ‘traditional’ Swedish meal involving blood soup (yes, its what you think it is) along with some other interesting regional menu items, this was a great chance for the city to kick off the conference in style.</p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00030200911070843.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG00030-20091107-0843" border="0" alt="IMG00030-20091107-0843" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00030200911070843-thumb.jpg" width="244" height="184" /></a> <a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00031200911070844.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG00031-20091107-0844" border="0" alt="IMG00031-20091107-0844" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00031200911070844-thumb.jpg" width="244" height="184" /></a> </p>
<h3>St. Malmo?&#160; General Malmo?</h3>
<p>Like all good town squares, Malmo’s has a statue of someone important on a horse at its center.&#160; The square was under some repair and so I couldn’t approach the statue to determine just exactly whom this is atop the horse, but I’m sure it was someone important <img src='http://unhandled-exceptions.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00032200911070845.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG00032-20091107-0845" border="0" alt="IMG00032-20091107-0845" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00032200911070845-thumb.jpg" width="244" height="184" /></a> </p>
<h3>American Culture Uber Alles (sorry, Sweden)</h3>
<p>As an American abroad, I’m always of mixed opinion about the invasiveness of some canonical icons of American culture when they find their way into some otherwise odd locations.&#160; Here we see the Malmo Burger King and McDonald’s, probably <em>not</em> quite what Malmo’s founding fathers had in mind when they decided to settle in this part of Sweden.</p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00033200911070846.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG00033-20091107-0846" border="0" alt="IMG00033-20091107-0846" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00033200911070846-thumb.jpg" width="244" height="184" /></a> <a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00037200911070850.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG00037-20091107-0850" border="0" alt="IMG00037-20091107-0850" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00037200911070850-thumb.jpg" width="244" height="184" /></a> </p>
<h3>Old Meets New</h3>
<p>As mentioned, the area of Malmo where the conference was held has a very interesting eclectic mix of old and new architectural styles, evident even when the new architecture attempts to fit into fabric of the city by attempting to look like older architecture.</p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00034200911070846.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG00034-20091107-0846" border="0" alt="IMG00034-20091107-0846" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00034200911070846-thumb.jpg" width="244" height="184" /></a> <a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00035200911070848.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG00035-20091107-0848" border="0" alt="IMG00035-20091107-0848" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00035200911070848-thumb.jpg" width="244" height="184" /></a> <a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00036200911070848.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG00036-20091107-0848" border="0" alt="IMG00036-20091107-0848" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00036200911070848-thumb.jpg" width="244" height="184" /></a></p>
<h3>Accountants Everywhere!</h3>
<p>Its always good to know that companies like Price Waterhouse Coopers are everywhere, including Malmo (I guess there’s no such thing as a city that doesn’t require accountants!).&#160; This whole office complex along the canal looks to be occupied by various white-collar businesses, helping to revive the Malmo economy and assist in its move into its post-manufacturing economic phase.</p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00044200911070901.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG00044-20091107-0901" border="0" alt="IMG00044-20091107-0901" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00044200911070901-thumb.jpg" width="244" height="184" /></a> </p>
<h3>Biking in the Rain(?)</h3>
<p>An interesting thing about Malmo isn’t the prevalence of bicycles used by the populace to get around the city – that’s a pretty common occurrence in most European towns.&#160; But what I did find amazing was the sheer number of people who seemed to still use their bicycles as their primary mode of transport even in the driving windy freezing rain under the slate-gray-overcast-skies of southern Sweden in November.&#160; You haven’t lived until you’ve been near-run-over by a cyclist in a parka with mittens on!</p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00047200911070956.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG00047-20091107-0956" border="0" alt="IMG00047-20091107-0956" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00047200911070956-thumb.jpg" width="244" height="184" /></a> </p>
<h3>Malmo Central Station</h3>
<p>As in much of Europe, the train plays a significant role in the local transportation of the region.&#160; Living in the highly-train-accessible northeast corridor of the United States for the past 25 years of my life, train travel is a common occurrence for me so I was right at home on the regional train system in Malmo.&#160; This last photo comes from the inside of the Malmo Central Station train shed boarding area – a wonderful old building with some quite interesting architectural features.&#160; Believe it or not, the vaults and the roofing in this photo are actually wooden members rather than the more common steel or iron that you might generally see in many such structures.&#160; This wonderful old structure is like much of the rest of Malmo – an interesting (and quite effective) combination of the old and the new.</p>
<p>&#160;<a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00049200911071012.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG00049-20091107-1012" border="0" alt="IMG00049-20091107-1012" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/img00049200911071012-thumb.jpg" width="244" height="184" /></a> </p>
<h3>That’s a Wrap</h3>
<p>Oredev 2009 was a great experience—with luck they’ll consider asking me back so I can do it again next year!&#160; Until then, happy coding to all~!</p>
<img src="http://feeds.feedburner.com/~r/unhandled-exceptions/~4/Ct8nx4z_0lQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unhandled-exceptions.com/blog/index.php/2009/11/10/travelogue-oredev-2009-wrap-up/feed/</wfw:commentRss>
		<feedburner:origLink>http://unhandled-exceptions.com/blog/index.php/2009/11/10/travelogue-oredev-2009-wrap-up/</feedburner:origLink></item>
		<item>
		<title>Updated ClassCleaner and ClassCleaner Refactor!Pro Menu for DXCore 2009.2.8</title>
		<link>http://feedproxy.google.com/~r/unhandled-exceptions/~3/jzvXG7hmBzg/</link>
		<comments>http://unhandled-exceptions.com/blog/index.php/2009/11/07/updated-classcleaner-and-classcleaner-refactorpro-menu-for-dxcore-200928/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 08:45:20 +0000</pubDate>
		<dc:creator>sbohlen</dc:creator>
		
		<category><![CDATA[Software Development Resources]]></category>

		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2009/11/07/updated-classcleaner-and-classcleaner-refactorpro-menu-for-dxcore-200928/</guid>
		<description><![CDATA[Its that time again!&#160; DevExpress has released an update to their Developer Productivity Tools suite which means that several plugins need to be recompiled against them in order to work.
As a courtesy, here are the downloads for the ClassCleaner plugin and the related Refactor_ClassCleaner_Menu plugin that adds ClassCleaner commands to the Refactor!Pro context menu (if [...]]]></description>
			<content:encoded><![CDATA[<p>Its that time again!&#160; DevExpress has released an update to their Developer Productivity Tools suite which means that several plugins need to be recompiled against them in order to work.</p>
<p>As a courtesy, here are the downloads for <a href="http://crclasscleaner.codeplex.com" target="_blank">the ClassCleaner plugin</a> and <a href="http://unhandled-exceptions.com/blog/index.php/2009/09/26/cr_classcleaner-unintended-dependencies-whats-in-a-name/" target="_blank">the related Refactor_ClassCleaner_Menu plugin</a> that adds ClassCleaner commands to the Refactor!Pro context menu (if you have Refactor!Pro installed)…</p>
<ul>
<li><a href="http://unhandled-exceptions.com/downloads/CR_ClassCleaner_1.5.1.0_DXCore_2009.2.8.zip" target="_blank">ClassCleaner for DXCore 2009.2.8</a></li>
<li><a href="http://unhandled-exceptions.com/downloads/Refactor_ClassCleaner_Menu_1.0.0.0_DXcore_2009.2.8.zip" target="_blank">ClassCleaner Refactor!Pro menu add-in for DXCore 2009.2.8</a></li>
</ul>
<p>As mentioned prior, I will be (soon!) adding the refactor_classcleaner_menu source code to the DXCoreCommunityPlugins repository so that anyone who ever wants to recompile that against the latest DXCore assembly can subsequently do so for themselves in the future.</p>
<p>Happy Coding~!</p>
<img src="http://feeds.feedburner.com/~r/unhandled-exceptions/~4/jzvXG7hmBzg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unhandled-exceptions.com/blog/index.php/2009/11/07/updated-classcleaner-and-classcleaner-refactorpro-menu-for-dxcore-200928/feed/</wfw:commentRss>
		<feedburner:origLink>http://unhandled-exceptions.com/blog/index.php/2009/11/07/updated-classcleaner-and-classcleaner-refactorpro-menu-for-dxcore-200928/</feedburner:origLink></item>
		<item>
		<title>Oredev 2009 Slides and Code</title>
		<link>http://feedproxy.google.com/~r/unhandled-exceptions/~3/dtb1tCZglFI/</link>
		<comments>http://unhandled-exceptions.com/blog/index.php/2009/11/06/oredev-2009-slides-and-code/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 08:40:22 +0000</pubDate>
		<dc:creator>sbohlen</dc:creator>
		
		<category><![CDATA[Software Development Resources]]></category>

		<category><![CDATA[NHibernate]]></category>

		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2009/11/06/oredev-2009-slides-and-code/</guid>
		<description><![CDATA[Oredev 2009: Mission Accomplished
I’m glad to report that I have managed to complete my delivery of both of my sessions at the Oredev 2009 conference!
This was my first invitation to present at Oredev and I have to say I am impressed with both the organizers and the attendees here.  Although Malmo is apparently consistently cold [...]]]></description>
			<content:encoded><![CDATA[<h3>Oredev 2009: Mission Accomplished</h3>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/image.png"><img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/11/image-thumb.png" border="0" alt="image" width="117" height="244" align="left" /></a>I’m glad to report that I have managed to complete my delivery of both of my sessions at <a href="http://www.oredev.com" target="_blank">the Oredev 2009 conference</a>!</p>
<p>This was my first invitation to present at Oredev and I have to say I am impressed with both the organizers and the attendees here.  Although Malmo is apparently consistently cold and rainy this time of year, the fireplace at the local pub seems more than capable of addressing that issue quite effectively (although in fairness, it just started SNOWING here this afternoon, so perhaps the weather has a few more tricks up its sleeve yet this week!).</p>
<p>I did a half-day workshop, <em>NHIbernate: From Principle to Practice</em>, that condensed down the 20+ hours of <a href="http://www.summerofnhibernate.com" target="_blank">the Summer of NHibernate screencasts</a> into just four hours (largely by eliminating whole installments and then reducing the depth of the remaining content).  Even though it was (obviously) a lot to cover, I received pretty good feedback from attendees that they got good value out of the experience.</p>
<p>The following day, I did a 50-minute regular session, <em>Exploring the NHibernate Ecosystem</em>, that tried (successfully or not, we’ll have to see!) to provide a comprehensive overview of the large universe of NHibernate-related add-ons, extensions, frameworks, and the like that NHibernate-adopters can use to improve the power and capability of the underlying NHibernate ORM engine (from FluentNHibernate to NHibernateValidator to NHibernate Burrow).</p>
<h3>Slides and Code</h3>
<p>If anyone is interested, slides and code can be downloaded from the following links…</p>
<h4>NHibernate: From Principle to Practice</h4>
<ul>
<li><a href="http://unhandled-exceptions.com/downloads/Oredev2009-NHibernate-From_Principle_to_Practice.pptx" target="_blank">Powerpoint Slides</a></li>
<li><a href="http://unhandled-exceptions.com/downloads/Oredev2009-NHibernateWorkshopCode.zip" target="_blank">Code Sample</a></li>
</ul>
<h4>Exploring the NHibernate Ecosystem</h4>
<ul>
<li><a href="http://unhandled-exceptions.com/downloads/Oredev2009-Exploring_the_NHibernate_Ecosystem.pptx" target="_blank">Powerpoint Slides</a></li>
<li><a href="http://unhandled-exceptions.com/downloads/Oredev2009-NHibernateValidatorDemo.zip" target="_blank">Code Sample</a></li>
</ul>
<p>Hope everyone enjoyed the presentations and was able to get good value out of them.  Its hard to do so complex a topic as either of these complete justice in the short time allotted for each, but I tried my best to ensure there was good value provided in both sessions.</p>
<p>I suppose the best test of whether I managed success at that or not is whether they ask me back next year <img src='http://unhandled-exceptions.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In the mean time, Happy Coding from the south of Sweden~!</p>
<img src="http://feeds.feedburner.com/~r/unhandled-exceptions/~4/dtb1tCZglFI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unhandled-exceptions.com/blog/index.php/2009/11/06/oredev-2009-slides-and-code/feed/</wfw:commentRss>
		<feedburner:origLink>http://unhandled-exceptions.com/blog/index.php/2009/11/06/oredev-2009-slides-and-code/</feedburner:origLink></item>
		<item>
		<title>You Can Lead A Developer to Patterns but You Can’t Make Them Think!</title>
		<link>http://feedproxy.google.com/~r/unhandled-exceptions/~3/q6VoOqU2gCQ/</link>
		<comments>http://unhandled-exceptions.com/blog/index.php/2009/10/18/you-can-lead-a-developer-to-patterns-but-you-cant-make-them-think/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 00:56:59 +0000</pubDate>
		<dc:creator>sbohlen</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[ALT.NET]]></category>

		<category><![CDATA[People]]></category>

		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2009/10/18/you-can-lead-a-developer-to-patterns-but-you-cant-make-them-think/</guid>
		<description><![CDATA[At yesterday’s Philadelphia .NET CodeCamp, I was again wearing my somewhat tongue-in-cheek custom t-shirt with the following platitude on the front and the succinct summary of what I consider to be ALT.NET’s primary raison-d’etre on the reverse side:
 
As those readers who either attended the Agile Firestarter event in June or watched any of the [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://www.phillydotnet.org/Default.aspx?tabid=805" target="_blank">yesterday’s Philadelphia .NET CodeCamp</a>, I was again wearing my somewhat tongue-in-cheek custom t-shirt with the following platitude on the front and the succinct summary of what I consider to be ALT.NET’s primary raison-d’etre on the reverse side:</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Lead-Developer-Patterns-Front" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/leaddeveloperpatternsfront.jpg" border="0" alt="Lead-Developer-Patterns-Front" width="232" height="244" /> <a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/leaddeveloperpatternsrear.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Lead-Developer-Patterns-Rear" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/leaddeveloperpatternsrear-thumb.jpg" border="0" alt="Lead-Developer-Patterns-Rear" width="232" height="244" /></a></p>
<p>As those readers who either attended <a href="http://www.agilefirestarter.com/" target="_blank">the Agile Firestarter event in June</a> or watched any of <a href="http://vimeo.com/album/105954" target="_blank">the videos of that event</a> may recall, I originally created this shirt for that event.  I enjoyed the friendly, humorous challenge that it suggested to developers to always better themselves and so I wore it again to the recent Philly CodeCamp event.</p>
<h3>Why the Shirt?</h3>
<p>A number of people approached me at the event and began conversations with me about the shirt (which, frankly, was part of the point of wearing the shirt in the first place).  Its turned into a great conversation-starter for everything from  “<em>What is this ALT.NET thing anyway?</em>” to “<em>I love the thought – great shirt!</em>” to “<em>I always find you ALT.NET guys horribly abrasive and insulting to everyone else, how come you’re not like that?</em>”.</p>
<p>OK, I admit that I made that last one up <img src='http://unhandled-exceptions.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> but as someone that feels strongly that ALT.NET can be a positive force for change in the Microsoft developer eco-system, I think its important for people to be able to associate my community outreach and educational efforts with at least the <em>spirit </em>of ALT.NET and the shirt helps make that point clearly without my needing to constantly remind people that I’m part of the self-associated group of developers who consider themselves ALT.NET.</p>
<h3>Where Can I Get the Shirt?</h3>
<p>A number of people at the Philly Code Camp had asked me if the shirt was available for purchase somewhere and although I originally created the design just for myself, I don’t see any reason why others shouldn’t be able to purchase one for themselves if they want one and so I have made the design available publically from the website I originally used to create the design myself: <a href="http://www.zazzle.com" target="_blank">Zazzle.com</a>.</p>
<p>Why Zazzle?  Because they offered the best mix of high-quality base material (shirts, in this case) and reasonable cost.  The shirt as-designed is now available on the Zazzle site for about USD $28.00 at the following link:</p>
<p><a title="http://www.zazzle.com/you_can_lead_a_developer_to_patterns_tshirt-235606708515208354" href="http://www.zazzle.com/you_can_lead_a_developer_to_patterns_tshirt-235606708515208354" target="_blank">http://www.zazzle.com/you_can_lead_a_developer_to_patterns_tshirt-235606708515208354</a></p>
<p>Note that in case you think the USD $28.00 price is more than you want to spend, I have left the option open from the ordering page for you to select a different (lower-quality) base shirt (e.g., without double-stitching, not 100% cotton, etc.).  And if you don’t want a t-shirt at all but would prefer a crew, a long-sleeve shirt, a hoody, or even something else, you can customize all of that for yourself too…the Zazzle site offers no-end of choices for things you might want to imprint the design upon – have a blast and explore your options before deciding.</p>
<p>Note that not all items are available in all colors, so if you’re in love with the black shirt as the ‘base’, you’re choices are somewhat limited (which in my case is one of the reasons the shirt was so (relatively) expensive: black is only offered with the more expensive base t-shirt).</p>
<p>Perhaps the all-time winner of the craziest thing to print this on has to be the “Infant Organic Onesie”, as shown here (just for fun, I’m NOT suggesting this would make a great infant outfit)…</p>
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Lead-Developer-Patterns-Infant-Front" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/leaddeveloperpatternsinfantfront.jpg" border="0" alt="Lead-Developer-Patterns-Infant-Front" width="232" height="244" /> <a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/leaddeveloperpatternsinfantrear.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Lead-Developer-Patterns-Infant-Rear" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/leaddeveloperpatternsinfantrear-thumb.jpg" border="0" alt="Lead-Developer-Patterns-Infant-Rear" width="232" height="244" /></a></p>
<h3>Royalty Payments</h3>
<p>Even though I’m not trying to make any money off of this design, it turns out that the Zazzle site actually will NOT permit you to sell an item without adding a minimum 10% royalty to the price.  Trust me, I tried to set the ‘royalty slider’ to 0% but it snaps back to 10% no matter what you do.  Since I’m not really interested in making any money off of this thing but I cannot set the royalty to 0%, here’s what I <em>will</em> commit to do with the royalty money: <strong>I will apply 100% of any revenue generated by this design to assist the NYC ALT.NET user group’s pizza and soda budget for our monthly meetings</strong>.</p>
<p>Since I’m betting this isn’t really ever going to amount to much anyway, its probably not a big deal, but in case you bristle at the thought of my making money off of this, the best I can do is give the internet universe my word that the money will go to a good cause <img src='http://unhandled-exceptions.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Zazzle Panel</h3>
<p>Apparently, Zazzle makes available an embeddable ‘panel’ that you can put on your website to make it easy for people to purchase your items.  Presumably it also makes it easier for you to share the item with others, so here’s this thing if you’re interested…</p>
<p><object width="450" height="300" data="http://www.zazzle.com/utl/getpanel?tl=My%20Zazzle%20Panel&amp;at=238750588923196313&amp;cn=238750588923196313&amp;st=date_created" type="application/x-shockwave-flash"><param name="flashvars" value="feedId=0&amp;path=http://www.zazzle.com/assets/swf/zp/skins" /><param name="src" value="http://www.zazzle.com/utl/getpanel?tl=My%20Zazzle%20Panel&amp;at=238750588923196313&amp;cn=238750588923196313&amp;st=date_created" /><param name="wmode" value="transparent" /></object></p>
<p>Have fun, and I hope I get to one day show up at an event where everyone is wearing these things but on the back it just says “.NET” instead of “ALT.NET”…then our work here will be done <img src='http://unhandled-exceptions.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/unhandled-exceptions/~4/q6VoOqU2gCQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unhandled-exceptions.com/blog/index.php/2009/10/18/you-can-lead-a-developer-to-patterns-but-you-cant-make-them-think/feed/</wfw:commentRss>
		<feedburner:origLink>http://unhandled-exceptions.com/blog/index.php/2009/10/18/you-can-lead-a-developer-to-patterns-but-you-cant-make-them-think/</feedburner:origLink></item>
		<item>
		<title>Philly.NET Code Camp: That’s a Wrap!</title>
		<link>http://feedproxy.google.com/~r/unhandled-exceptions/~3/uCQXKoX5cLs/</link>
		<comments>http://unhandled-exceptions.com/blog/index.php/2009/10/17/phillynet-code-camp-thats-a-wrap/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 19:53:27 +0000</pubDate>
		<dc:creator>sbohlen</dc:creator>
		
		<category><![CDATA[Software Development Resources]]></category>

		<category><![CDATA[ALT.NET]]></category>

		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2009/10/17/phillynet-code-camp-thats-a-wrap/</guid>
		<description><![CDATA[I just completed spending my Saturday at the Philadelphia-area .NET CodeCamp 2009.2 event (I actually have to say ‘2009.2’ because this event apparently happens at least two or three times each year, as hard as it is for me to believe that they put all that energy into planning/executing it more than once a year).
I [...]]]></description>
			<content:encoded><![CDATA[<p>I just completed spending my Saturday at the Philadelphia-area .NET CodeCamp 2009.2 event (I actually have to say ‘2009.2’ because this event apparently happens at least two or three times each year, as hard as it is for me to believe that they put all that energy into planning/executing it more than once a year).</p>
<p>I did my Refactoring To A SOLID Foundation talk and although its a lot of content to jam into a 1h20m session, I think it came off well for the most-part.</p>
<p>For those interested, the content can be downloaded as follows…</p>
<ul>
<li><a href="http://unhandled-exceptions.com/downloads/Philly.NET CodeCamp_ALT.NET Track_Refactoring to a SOLID Foundation_PowerPoint.zip" target="_blank">Powerpoint Slide Deck</a></li>
<li><a href="http://unhandled-exceptions.com/downloads/Philly.NET CodeCamp_ALT.NET Track_Refactoring to a SOLID Foundation_00_Code-before-refactoring.zip" target="_blank">Initial, unfactored code sample</a></li>
<li><a href="http://unhandled-exceptions.com/downloads/Philly.NET CodeCamp_ALT.NET Track_Refactoring to a SOLID Foundation_01_Code-before-refactoring-to-ISP.zip" target="_blank">Intermediate code sample, forming the basis for the ISP refactoring</a></li>
<li><a href="http://unhandled-exceptions.com/downloads/Philly.NET CodeCamp_ALT.NET Track_Refactoring to a SOLID Foundation_02_Code-Final-Refactoring-Result.zip" target="_blank">Final solution as refactored</a></li>
</ul>
<p>I had a great time at the event, I hope the attendees were able to find value in the content, and I hope they invite me back again next time~!</p>
<p>As always, happy coding and enjoy the content~!</p>
<img src="http://feeds.feedburner.com/~r/unhandled-exceptions/~4/uCQXKoX5cLs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unhandled-exceptions.com/blog/index.php/2009/10/17/phillynet-code-camp-thats-a-wrap/feed/</wfw:commentRss>
		<feedburner:origLink>http://unhandled-exceptions.com/blog/index.php/2009/10/17/phillynet-code-camp-thats-a-wrap/</feedburner:origLink></item>
		<item>
		<title>ASP.NET MVC Firestarter: That’s A Wrap!</title>
		<link>http://feedproxy.google.com/~r/unhandled-exceptions/~3/iDCXM4hthFk/</link>
		<comments>http://unhandled-exceptions.com/blog/index.php/2009/10/04/aspnet-mvc-firestarter-thats-a-wrap/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 22:27:09 +0000</pubDate>
		<dc:creator>sbohlen</dc:creator>
		
		<category><![CDATA[Software Development Resources]]></category>

		<category><![CDATA[People]]></category>

		<category><![CDATA[Process]]></category>

		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2009/10/04/aspnet-mvc-firestarter-thats-a-wrap/</guid>
		<description><![CDATA[As some of you may be aware, yesterday (Saturday 10/3/2009) the ASP.NET MVC Firestarter Event was held here in NYC.  This event, hosted and organized by Microsoft, was a free day-long event intended to help .NET WebForms developers begin to come up-to-speed on the Microsoft ASP.NET MVC Framework.  As mentioned on this blog prior, I [...]]]></description>
			<content:encoded><![CDATA[<p>As some of you may be aware, yesterday (Saturday 10/3/2009) the <a href="http://unhandled-exceptions.com/blog/index.php/2009/09/12/presenting-at-the-aspnet-mvc-firestarter-event/" target="_blank">ASP.NET MVC Firestarter Event</a> was held here in NYC.  This event, hosted and organized by Microsoft, was a free day-long event intended to help .NET WebForms developers begin to come up-to-speed on the <a href="http://www.asp.net/mvc" target="_blank">Microsoft ASP.NET MVC Framework</a>.  As mentioned on this blog prior, I was tapped by one of our area Developer Evangelists, <a href="http://blogs.msdn.com/peterlau/" target="_blank">Peter Laudati</a>, to help prepare some of the materials for the event and also to lead several of the sessions.</p>
<h3>Thanks to the other Participants and Organizers</h3>
<p>I want to take just a quick second to say ‘thanks’ to everyone who participated in helping to make this event come off.  Obviously as a Microsoft corporate-sponsored event I’m sure there was probably an army of people behind the scenes that was mobilized to handle all kinds of logistics issues from booking the ballroom at the Grand Hyatt to making sure the lunch menu had enough choices for everyone, but I want to give a specific shout-out to the following people who really collaborated well to make this event work…</p>
<h4>Sara Chipps (Independent Developer), Co-Presenter</h4>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/sarachipps.jpg"><img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Sara Chipps" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/sarachipps-thumb.jpg" border="0" alt="Sara Chipps" width="120" height="147" align="left" /></a> Stepping up and running point on the topics of Rendering Markup, Partial Views and User Controls, and Integrating AJAX into your MVC applications as well as working closely with me to be one half of our joint ‘build-a-quick-MVC-app-to-edit-data’ session that filled the bulk of the afternoon’s agenda, Sara was indispensible in helping to prepare content for our joint session, providing feedback and input during the authoring process, and spending her valuable time rehearsing our joint-delivery together.</p>
<p>Its always great to get to collaborate with someone who shares my passion for software development as well as the importance of sharing their knowledge with others to help them improve their own skills.</p>
<p>Sara blogs regularly at <a href="http://girldeveloper.com">http://girldeveloper.com</a> and you can read her random musings via Twitter by following <a href="http://twitter.com/sarajchipps" target="_blank">@SaraJChipps</a></p>
<h4>Peter Laudati (Microsoft), Co-Presenter</h4>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/peterlaudati.jpg"><img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Peter Laudati" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/peterlaudati-thumb.jpg" border="0" alt="Peter Laudati" width="120" height="120" align="left" /></a> One of the several Microsoft Developer Evangelists for our region, Peter did the presentations on C# 3.0 Fundamentals as well as introducing the attendees to the inner workings of the ASP.NET MVC Routing infrastructure and then took people through understanding the role of Controllers in the framework.</p>
<p>Peter was also invaluable in helping shape the overall structure for the event and gave the rest of us presenters very helpful feedback about areas in which we could improve the delivery of our content. </p>
<h4>Asli Bilgin (Microsoft), the Face of Our Online Presence</h4>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/0424aslibilgincolor-lg.jpg"><img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="04-24aslibilgin-color_lg" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/0424aslibilgincolor-lg-thumb.jpg" border="0" alt="04-24aslibilgin-color_lg" width="120" height="135" align="left" /></a></p>
<p>Also a Microsoft Developer Evangelist for our region, Asli helped to moderate the Q+A system in the LiveMeeting, used chat and Twitter to help remote LiveMeeting attendees having technical issues find ways to resolve them, and frequently reminded all of us to always <strong>repeat the question</strong> when raised by the live audience for the benefit of those attending remotely.</p>
<p>When you’re presenting to a room full of people, its easy to lose sight of the fact that there’s also an online audience you need to consider (and tend to the needs of) and Asli was very helpful in making sure that dealing with the complexities of trying to present to a live in-person audience while trying to respond to remote LiveMeeting attendees didn’t completely overwhelm those of us doing the speaking <img src='http://unhandled-exceptions.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4>Anonymous AV Guy</h4>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/anonymous.jpg"><img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="anonymous" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/10/anonymous-thumb.jpg" border="0" alt="anonymous" width="120" height="121" align="left" /></a></p>
<p>Even though we introduced ourselves to each other early in the morning before the event started, since I’m so bad with names I have absolutely NO IDEA what this guy’s name was but I would be completely remiss if I didn’t give him a shout-out for his efforts.</p>
<p>Whether replacing the batteries in the wireless microphones at mid-day as a pre-emptive measure so that they didn’t die in the afternoon or rapidly assembling a replacement radio mic when the feedback from Sara’s mic threatened to torpedo her presentation on Rendering HTML Markup, this guy (who will sadly have to remain anonymous!) gets major props in my book for being experienced enough in his job to handle all of that with total professional calm.</p>
<h3>Nice to meet all of You!</h3>
<p>For those that I met at the event for the first time, let me say a quick ‘nice to meet you’ and I hope that you were able to find value in the content.  The point of the day certainly wasn’t to supplant the need for training in ASP.NET MVC but instead to give some introductory overview of the ASP.NET MVC Framework and some ideas about what the experience is like in using it to develop web sites in ASP.NET.  From my side, it seemed like the event went well, but I suppose we won’t really be able to say that until we see what the event evaluation forms say when they are all collated and analyzed <img src='http://unhandled-exceptions.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The good news is though that since I don’t get paid anything by Microsoft for my efforts, there’s no impact on my annual performance review even if all the evaluations come back with  “I learned nothing, the event was terrible, the speakers were awful, and that guy Steve should never be allowed to present at any other events no matter what.” <img src='http://unhandled-exceptions.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Session Recordings</h3>
<p>As many of you know (and still more asked online all day yesterday) the entire day’s sessions were delivered in real-time via a giant LiveMeeting session that was also recorded live.  I don’t have any firm info on where to go for the recordings if you want to watch them but couldn’t attend the event in real-time yesterday, but once I have this info I will post it here.  In the mean time, you might keep a watch on the <a href="http://msdnevents.com">http://msdnevents.com</a> site for further info there.</p>
<h3>PowerPoint Slide Deck</h3>
<p>If you just want the PowerPoint slide deck, you can download it from my site <a href="http://unhandled-exceptions.com/downloads/aspnetmvcfirestarter_ppt.zip" target="_blank">here</a>.</p>
<h3>Sample Code</h3>
<p>If you find that you want the sample code as used in the ‘demo’ application building session, you can download that from my site <a href="http://unhandled-exceptions.com/downloads/aspnetmvcfirestarter_code.zip" target="_blank">here</a>.</p>
<h3>That’s A Wrap!</h3>
<p>I had a fun time participating in the event and I hope attendees were able to get some value out of it – ASP.NET MVC is entirely too complex a framework to cover every aspect of it in a single day, but hopefully our efforts have been able to give more people a better understanding of the moving parts, the ideas behind it, and the principles and values that the framework tries to support.</p>
<p>Happy Coding~!</p>
<img src="http://feeds.feedburner.com/~r/unhandled-exceptions/~4/iDCXM4hthFk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unhandled-exceptions.com/blog/index.php/2009/10/04/aspnet-mvc-firestarter-thats-a-wrap/feed/</wfw:commentRss>
		<feedburner:origLink>http://unhandled-exceptions.com/blog/index.php/2009/10/04/aspnet-mvc-firestarter-thats-a-wrap/</feedburner:origLink></item>
		<item>
		<title>DX_SourceOutliner 1.3 updated for DevExpress 2009.2.6</title>
		<link>http://feedproxy.google.com/~r/unhandled-exceptions/~3/Tafeup7HT4M/</link>
		<comments>http://unhandled-exceptions.com/blog/index.php/2009/09/26/dx_sourceoutliner-13-updated-for-devexpress-200926/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 21:01:31 +0000</pubDate>
		<dc:creator>sbohlen</dc:creator>
		
		<category><![CDATA[Software Development Resources]]></category>

		<category><![CDATA[SolutionOutliner]]></category>

		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2009/09/26/dx_sourceoutliner-13-updated-for-devexpress-200926/</guid>
		<description><![CDATA[One of these days, I swear I will discover just what it is that is the ‘trigger’ within each update to their IDE products released by Developer Express that results in plug-ins compiled against prior versions not working with the newly-released versions until recompiled against the latest release.&#160; No, really, I will figure it out [...]]]></description>
			<content:encoded><![CDATA[<p>One of these days, I swear I will discover just what it is that is the ‘trigger’ within each update to their IDE products released by Developer Express that results in plug-ins compiled against prior versions not working with the newly-released versions until recompiled against the latest release.&#160; No, really, I will figure it out at some point because its quite the vexing problem for which I have no real explanation.</p>
<p>As an example, my <a href="http://dxsourceoutliner.googlecode.com" target="_blank">DX_SourceOutliner</a> plug-in was last compiled against references to the 2009.1.5 release of DXCore.&#160; Its continued to work just fine (the same binary, without any recompilation necessary) under the subsequent 2009.2.4 and 2009.2.5 releases of the DXCore (and related) products from DevExpress.&#160; Without warning (or, seemingly, predictability) it now fails to show up under the DevExpress —&gt; Tool Windows menu when running 2009.2.6 of the DevExpress IDE tools products.&#160; Go figure. <img alt="smile_sad" src="http://spaces.live.com/rte/emoticons/smile_sad.gif" /></p>
<h3>DX_SourceOutliner 1.3 Updated</h3>
<p>To address this, I have recompiled the tool against the 2009.2.6 release of DXCore and posted the binary for download from the Google Code site <a href="http://dxsourceoutliner.googlecode.com/files/DX_SourceOutliner_1.3.3556.25677.zip" target="_blank">here</a>.&#160; If you are running DXCore (and related tools) v 2009.2.6 or later, you will need this new binary of the plug-in for the tool to properly appear in the DevExpress –&gt; Tools Windows menu.</p>
<p>Humorously, if you happen to already have the DX_SourceOutliner window open in VS before you upgrade to 2009.2.6 of the DevExpress IDE tools, the DX_SourceOutliner will continue to function just fine.&#160; Once the tool window is already opened, you seem good-to-go.&#160; The plug-in seems to need recompilation only to be properly registered with the DevExpress tools for the purpose of displaying it in the DevExpress –&gt; Tool Windows menu – for the purposes of its actual <em>functionality</em>, the old binary still <em>works</em> fine as-is.&#160; Like I said, one of these days I’m actually going to dig into the details of why this kind of unpredictable behavior happens from one release to the next of the DevExpress IDE tools…</p>
<h3>Reminder: the DX_SourceOutliner TRUNK is *BROKEN*</h3>
<p>Just a reminder: if you find you want to build the tool for yourself from the source code in the repository, the working, functional version of the tool isn’t in the trunk but is instead in the v1 branch here: <a title="http://code.google.com/p/dxsourceoutliner/source/browse/#svn/branches/v1" href="http://code.google.com/p/dxsourceoutliner/source/browse/#svn/branches/v1">http://code.google.com/p/dxsourceoutliner/source/browse/#svn/branches/v1</a>.&#160; The trunk is presently in state of flux as I am redesigning much of the tool’s overall code structure as detailed in these past posts <a href="http://unhandled-exceptions.com/blog/index.php/2009/08/07/dx_sourceoutliner-vnext-technical-bankruptcy-and-write-one-to-throw-away/" target="_blank">here</a>, <a href="http://unhandled-exceptions.com/blog/index.php/2009/08/21/dx_sourceoutliner-v2-design-concepts/" target="_blank">here</a>, <a href="http://unhandled-exceptions.com/blog/index.php/2009/08/24/dx_sourceoutliner-v20-redesign-concepts-continued/" target="_blank">here</a>, and <a href="http://unhandled-exceptions.com/blog/index.php/2009/08/27/dx_sourceoutliner-v20-redesign-concepts-final-installment/" target="_blank">here</a>.</p>
<p>Happy coding~!</p>
<img src="http://feeds.feedburner.com/~r/unhandled-exceptions/~4/Tafeup7HT4M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unhandled-exceptions.com/blog/index.php/2009/09/26/dx_sourceoutliner-13-updated-for-devexpress-200926/feed/</wfw:commentRss>
		<feedburner:origLink>http://unhandled-exceptions.com/blog/index.php/2009/09/26/dx_sourceoutliner-13-updated-for-devexpress-200926/</feedburner:origLink></item>
		<item>
		<title>CR_ClassCleaner, Unintended Dependencies: What’s in a Name?</title>
		<link>http://feedproxy.google.com/~r/unhandled-exceptions/~3/w75rwt5V2u0/</link>
		<comments>http://unhandled-exceptions.com/blog/index.php/2009/09/26/cr_classcleaner-unintended-dependencies-whats-in-a-name/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 17:29:53 +0000</pubDate>
		<dc:creator>sbohlen</dc:creator>
		
		<category><![CDATA[Software Development Resources]]></category>

		<category><![CDATA[CodeRush]]></category>

		<category><![CDATA[People]]></category>

		<category><![CDATA[Process]]></category>

		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2009/09/26/cr_classcleaner-unintended-dependencies-whats-in-a-name/</guid>
		<description><![CDATA[In this recent post I mentioned that in response to the recent release of updated versions of Developer Express’ Visual Studio productivity tools (2009.2.6), I was not only providing an updated build of the CR_ClassCleaner plug-in compiled against the latest DXCore release, but that I also decided to incorporate the patch to CR_ClassCleaner mentioned in [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://unhandled-exceptions.com/blog/index.php/2009/09/24/devexpress-ide-tools-updated-to-200926-and-cr_classcleaner-rebuilt-too/" target="_blank">this recent post</a> I mentioned that in response to the recent release of updated versions of Developer Express’ Visual Studio productivity tools (2009.2.6), I was not only providing an updated build of the <a href="http://www.codeplex.com/CRClassCleaner" target="_blank">CR_ClassCleaner</a> plug-in compiled against the latest DXCore release, but that I also decided to incorporate the patch to CR_ClassCleaner mentioned in <a href="http://www.kowitz.net/archive/2009/08/19/cr_classcleaner-now-with-refactor-key.aspx" target="_blank">this post</a> by Brendan Kowitz.&#160; This patch doesn&#8217;t change any of the intrinsic capabilities of CR_ClassCleaner per-se, but does provide for adding its invocation to the ‘Refactor’ context menu when its activated and the cursor is in an appropriate location as seen in the following screenshot (admittedly appropriated from Brendan’s own blog post):</p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image-thumb.png" width="300" height="131" /></a> </p>
<p>In doing so, however, I unwittingly introduced a new dependency into the CR_ClassCleaner project.&#160; Since the ‘Refactor’ context menu only exists in the DevExpress <a href="http://devexpress.com/Products/Visual_Studio_Add-in/Coding_Assistance/" target="_blank">CodeRush</a>, <a href="http://devexpress.com/Products/Visual_Studio_Add-in/Refactoring/" target="_blank">Refactor! Pro</a>, and <a href="http://devexpress.com/Products/Visual_Studio_Add-in/CodeRushX/" target="_blank">CodeRushXpress</a> products, adopters of CR_ClassCleaner are no longer able to use the plug-in unless they have one of those products installed in their instance of Visual Studio.&#160; Since Developer Express has done the amazing thing of making CodeRushXpress available to all developers for free, thankfully this doesn’t introduce a <em>cost</em> requirement for using CR_ClassCleaner.&#160; But plenty of CR_ClassCleaner adopters are only interested in installing CR_ClassCleaner and don’t want to use even the free CodeRushXpress functionality in their IDE, usually because they have already settled on a competing IDE productivity tool and don’t need either CodeRush, Refactor! Pro, or even CodeRushXpress.</p>
<p>By introducing a dependency for CR_ClassCleaner on having one or more of these other products installed, its now more difficult for interested parties to adopt and use the CR_ClassCleaner tool because it now requires one or more of the ‘higher level’ DevExpress IDE tools be installed.</p>
<h3>What’s in a Name?</h3>
<p>Despite the fact that the name of the plug-in is ‘CR_ClassCleaner’, its fundamental behavior didn’t actually require CodeRush (or even CodeRushXpress) be installed in order for a developer to make use of the CR_ClassCleaner plug-in.&#160; In fact, its only dependency was on the DXCore library that DevExpress uses as a common abstraction layer upon which its other Visual Studio products (CodeRush, Refactor! Pro, and CodeRushXpress) are designed.&#160; This distinction isn’t helped by the use of the ‘CR_’ prefix for the CR_ClassCleaner plug-in, which would seem to at least hint at the need for CodeRush (or at least CodeRushXpress) to be installed in order to make use of the plug-in.</p>
<p>So that everyone can better understand how all these dependencies work, its probably worth digging into the dependencies of the DevExpress Visual Studio Tool for bit…</p>
<h3>Understanding the DevExpress Visual Studio Tools Stack</h3>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image1.png"><img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image-thumb1.png" width="304" height="169" /></a> </p>
<p>The figure at left is an attempt to depict the ‘dependency’ stack for the DevExpress Visual Studio extensibility tools in a single, simple diagram that all can comprehend.</p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" border="0" alt="image" align="left" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image-thumb2.png" width="133" height="40" /></a> </p>
<p>At the very bottom (in blue) is the ‘native’ Visual Studio extensibility API layer as provided by Microsoft.&#160; This is the extensibility point with which developers must interact when developing Visual Studio add-ins if not working at all with any DevExpress VS integration tools.</p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" border="0" alt="image" align="left" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image-thumb3.png" width="133" height="40" /></a></p>
<p>Immediately atop this lowest layer is the ‘DXCore API Layer’ (in red).&#160; This layer represents the abstraction API developed by DevExpress for their own use in simplifying their development of their own CodeRush and Refactor! Pro tools (and now, also their freeware CodeRushXpress tool).&#160; Although its neither open-source nor redistributable directly by third-parties, DevExpress makes the DXCore ‘engine’ available for anyone to build plug-ins atop and provides it for free for anyone to download and install into their copy of Visual Studio.</p>
<p>The DXCore layer and the manner in which it simplifies, abstracts, and makes consistent the otherwise messy and complex native VS API is one of the main reasons why I gravitate to the DevExpress productivity tools for my IDE productivity suite.&#160; It represents a significant competitive advantage for me to be able to leverage it to create my own Visual Studio plug-ins atop it much faster than I could if forced to interact with the native VS extensibility API myself.</p>
<h4><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" border="0" alt="image" align="left" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image-thumb4.png" width="282" height="40" /></a> </h4>
<p>The next layer is where things really start to get interesting for both plug-in developers and for Visual Studio end-users.&#160; At this layer, you see the commercial (for-fee) offerings from DevExpress: CodeRush and Refactor! Pro as well as the free offering from DevExpress: CodeRushXpress.&#160; These are all three built atop the common DXCore API ‘engine’.&#160; Where it gets interesting is that this is also where you find the box ‘DXCore-based Plugins’.&#160; With enough time, effort, and energy anyone can write a Visual Studio plug-in atop DXCore that’s every bit as powerful and functional as CodeRush, Refactor! Pro, and CodeRushXpress.</p>
<p>I’m pretty sure that the DXCore license specifically enjoins you from using DXCore to produce a commercial product that competes with the DevExpress commercial offerings (which seems only fair and is probably one of the reasons that you are enjoined from actually distributing the DXCore API libraries yourself), but by leveraging the DXCore API library and copious amounts of your own spare time, you could create a Visual Studio plug-in that does anything that you see the commercial DevExpress IDE tools doing.&#160; After all, CodeRush itself is ‘just’ a bunch of code that DevExpress wrote themselves by leveraging the very same DXCore APIs that you can make use of as well.</p>
<p>Best of all, take careful note of where such plug-ins are in the dependency chart: they are directly atop <em>only</em> the DXCore layer and are <em>not</em> on top of either CodeRush <em>or</em> Refactor! Pro.&#160; <strong>This means that plug-ins written as this level require only the free download of DXCore in order to function and don’t require the purchase of either CodeRush or Refactor! Pro nor the installation of even the free CodeRushXpress tool in order to function.</strong>&#160; This means that people who wish to use such plug-ins don’t have to worry about the installation of any software that will conflict (behaviorally) with any other installed Visual Studio productivity tools (e.g., JetBrains Resharper, etc.).&#160; Since DXCore by definition is just a set of libraries that abstract away the underlying VS API and provide powerful convenience services to other plug-in authors, installing DXCore won’t affect any other installed Visual Studio tool.</p>
<p>Plug-ins that fit into this category are things like my own <a href="http://dxsourceoutliner.googlecode.com/" target="_blank">DX_SourceOutliner plug-in</a> and the CR_ClassCleaner plug-in mentioned at the start of this post.</p>
<p>By convention (which is completely unenforceable by anyone), these plug-ins are prefixed with ‘DX_’, indicating their dependence on only DXCore.&#160; I follow this convention in my own development of such plug-ins as do many others, but as you can see in the naming of CR_ClassCleaner, not everyone else does this.&#160; This isn’t a ‘knock’ on the original author of CR_ClassCleaner at all as this situation is exacerbated by several unfortunate factors that conspire to make this problem quite common:</p>
<ul>
<li>DevExpress’ own ‘create-new-plug-in wizard’ provided with CodeRush hints that you should use ‘CR_’ as a prefix for your plug-in; this actually makes some&#160; sense since the wizard is actually a part of CodeRush and so its reasonable to assume that people launching it are then going to create a plug-in for CodeRush rather than the less-fully-featured DXCore or even Refactor! Pro </li>
<li>Once you install CodeRush, its incredibly difficult for a plug-in developer to <em>know </em>whether the plug-in they just wrote requires anything specific to CodeRush, Refactor! Pro, or just the free DXCore infrastructure as there’s no real clarity re: which assemblies containing which objects ship with which product. </li>
<li>This situation is made worse (for plug-in developers) by the introduction of the freeware CodeRushXpress which contains a subset of the overall CodeRush + Refactor! Pro libraries.&#160; The only way I can think of to mitigate this issue (and believe me, I have considered taking the time to do exactly this) would be to install and uninstall each product (DXCore, CodeRushXpress, Refactor! Pro, and CodeRush) one by one, taking careful note of which assemblies are installed with which product and making a map of all these dependencies for future reference [are you listening, Developer Express??? I -- and others -- could really use this!!!] </li>
</ul>
<p>As a result, anyone developing a plug-in is really just ‘playing it safe’ when they prefix their plug-in with ‘CR_’ indicating a dependency on CodeRush…it may not actually <em>require </em>CodeRush, but saying so is the safest thing to do since CodeRush is a superset of everything else in the stack.</p>
<p>People like myself that can afford CodeRush often lose sight of the fact that many are in situations where they cannot and so developing a plug-in and unnecessarily labeling it as requiring CodeRush (commercial) leaves many who would otherwise choose to use the plug-in thinking that they are unable to do so because they don’t own a CodeRush license.&#160; If fact, in many cases, all they need to use a particular plug-in is just the DXCore library or even just the freeware CodeRushXpress.</p>
<h4><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image5.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" border="0" alt="image" align="left" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image-thumb5.png" width="181" height="40" /></a> </h4>
<p>This last layer is the top of the stack, where the most powerful stuff lives.&#160; Here, developers can build custom plug-ins that leverage not only the capabilities of DXCore, but also the capabilities of CodeRush and Refactor! Pro themselves.&#160; In the same way that DXCore provides powerful tools to interact with the underlying VS API, developers building atop CodeRush and Refactor! Pro have access to a rich object model replete with methods for interacting with the Code DOM, performing low-level refactoring via simple method calls, painting to the screen with all kinds of rich UI widgets, and much more.</p>
<p>By convention, such plug-ins are prefixed either with ‘Refactor_’ or ‘CR_’, indicating their dependency on either Refactor! Pro or CodeRush to function.&#160; Examples of such plug-ins are my own <a href="http://unhandled-exceptions.com/blog/index.php/2009/08/11/refactor_updatenamespace-v10-released/" target="_blank">Refactor_UpdateNamespace</a> and many others available at the <a href="http://dxcorecommunityplugins.googlecode.com/" target="_blank">DXCommunity Plug-Ins Google Code Site</a> and elsewhere on the Internet.&#160; Sadly , not everyone follows this naming convention either, and many plug-ins that turn out to only require a license for Refactor! Pro are needlessly prefixed with ‘CR_’, making many assume that they need a full license of the more expensive CodeRush tool in order to use the plug-in.</p>
<p>Interestingly, my own recently-released Refactor_UpdateNamespace plug-in was initially thought by myself to require at least the commercial Refactor! Pro only to have someone inform me that (luckily) it also seems to work just fine with the freeeware CodeRushXpress.&#160; Obviously, whatever (very limited) functionality of Refactor! Pro I am using in Refactor_UpdateNamespace turns out to also be present in the CodeRushXpress toolset.&#160; Who knew?&#160; And more importantly, <em>who could know???</em></p>
<p>This is the reason that the two blocks, ‘CodeRush-based Plugins’ and ‘Refactor! Pro-based Plugins’ sit atop not just the commercial CodeRush and Refactor! Pro components but also combine to straddle the freeware CodeRushXpress component in the above diagram.&#160; Sometimes, it appears, its possible for a plug-in requiring CodeRush to work just fine under CodeRushXpress, for example.&#160; This kind of thing (disappointingly) further muddies the water both for plug-in authors and for would-be plug-in adopters: if you cannot tell with any certainly what the prerequisites are for your being able to use a particular plug-in, you’re quite likely to just pass it up while assuming you don’t have the prerequisites to use it.</p>
<h3>What does this mean for CR_ClassCleaner?</h3>
<p>So what’s a plug-in author to do in this case where the underlying functionality of the CR_ClassCleaner plug-in requires only a dependency on DXCore but there is still value in wanting to expose the functionality using the ‘Refactor’ context menu (which introduces a dependency on either CodeRush, Refactor! Pro, or CodeRushXpress)?&#160; How can we safely expose the CR_ClassCleaner to people who only want to install the DXCore API library and at the same time provide for the richer UI experience of invoking CR_ClassCleaner via the ‘Refactor’ context menu for those that are adopters of either CodeRush, Refactor! Pro, or CodeRushXpress?</p>
<p>The answer I came up with is deceptively simple: separate the two functions into two <em>different</em> plug-ins.&#160; One plug-in, the original CR_ClassCleaner, will continue to depend only on DXCore and must still be invoked by whatever keyboard shortcut you should choose to assign to it.&#160; The second plug-in – let’s call it Refactor_ClassCleaner_Menu – will provide the menu choice for the Refactor context menu and internally delegate the actual work to the CR_ClassCleaner plug-in.</p>
<p><a href="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image6.png"><img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://unhandled-exceptions.com/blog/wp-content/uploads/2009/09/image-thumb6.png" width="140" height="92" /></a> </p>
<p>As depicted in the diagram at left, this results in a situation where the Refactor_ClassCleaner_Menu plug-in ‘wraps’ the functionality of the CR_ClassCleaner plug-in.</p>
<p>If you have either CodeRush, Refactor! Pro, or CodeRushXpress installed (and you want the integrated menu functionality for CR_ClassCleaner) then you want to grab both plug-ins and drop them into your plug-ins folder so that Visual Studio can find them.</p>
<p>But if you only want to install DXCore and none of the other mentioned DevExpress Visual Studio IDE productivity tools, then you drop only the lone CR_ClassCleaner plug-in into your plug-ins folder and interact with it just as always via only the keyboard shortcut(s) to which you assign its actions as always.</p>
<p>This approach gives CR_ClassCleaner adopters the best of both worlds – the ability to run it atop just DXCore if that’s your choice or the ability to get the Refactor context menu integration if you have one of the DevExpress add-in tools that supports that level of integration too.</p>
<h3>Downloads</h3>
<p>You can get the latest build of both of these plug-ins here:</p>
<p><a href="http://unhandled-exceptions.com/downloads/CR_ClassCleaner_1.5.1.0_DXCore_2009.2.6.zip" target="_blank">CR_ClassCleaner</a> (original functionality, compiled against the DevExpress 2009.2.6 release of their Visual Studio productivity tools suite); requires only that you install DXCore 2009.2.6</p>
<p><a href="http://unhandled-exceptions.com/downloads/Refactor_ClassCleaner_Menu_1.0.0.0_DXCore_2009.2.6.zip" target="_blank">Refactor_ClassCleaner_Menu</a> (provides the Refactor context menu integration); requires that you have the 2009.2.6 release of either CodeRush, Refactor! Pro, or CodeRushXpress installed; includes the ‘correct; build of CR_ClassCleaner in the download as well for convenience reasons</p>
<p>When I have a moment, look for me to post the source for Refactor_ClassCleaner_Menu to the DXCommunity Plugins Google Code site (which is really just the code that Brendan wrote in his patch mentioned in his blog post extracted into a stand-alone plugin project).&#160; This whole process should make it dirt-simple for users to adopt whichever of the two approaches to integrating CR_ClassCleaner into their Visual Studio environment best suits them.</p>
<p>As always, Happy coding~!</p>
<img src="http://feeds.feedburner.com/~r/unhandled-exceptions/~4/w75rwt5V2u0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unhandled-exceptions.com/blog/index.php/2009/09/26/cr_classcleaner-unintended-dependencies-whats-in-a-name/feed/</wfw:commentRss>
		<feedburner:origLink>http://unhandled-exceptions.com/blog/index.php/2009/09/26/cr_classcleaner-unintended-dependencies-whats-in-a-name/</feedburner:origLink></item>
		<item>
		<title>DevExpress IDE Tools Updated to 2009.2.6 (and CR_ClassCleaner rebuilt too)</title>
		<link>http://feedproxy.google.com/~r/unhandled-exceptions/~3/R2gqAlyLwgY/</link>
		<comments>http://unhandled-exceptions.com/blog/index.php/2009/09/24/devexpress-ide-tools-updated-to-200926-and-cr_classcleaner-rebuilt-too/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 11:10:30 +0000</pubDate>
		<dc:creator>sbohlen</dc:creator>
		
		<category><![CDATA[Software Development Resources]]></category>

		<category><![CDATA[CodeRush]]></category>

		<category><![CDATA[People]]></category>

		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2009/09/24/devexpress-ide-tools-updated-to-200926-and-cr_classcleaner-rebuilt-too/</guid>
		<description><![CDATA[Developer Express has just released the ‘2009.2.6’ version of their IDE Productivity Tools, CodeRush, Refactor! Pro, CodeRushXpress, and DXCore.
Just about every time this happens, there’s a need to recompile many (but, interestingly - for reasons I cannot entirely explain – not all!) DXCore-dependent plugins to expose themselves properly within the newly-released DXCore runtime.
CR_ClassCleaner
In the past, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.devexpress.com" target="_blank">Developer Express</a> has just released the ‘2009.2.6’ version of their IDE Productivity Tools, CodeRush, Refactor! Pro, CodeRushXpress, and DXCore.</p>
<p>Just about every time this happens, there’s a need to recompile many (but, interestingly - for reasons I cannot entirely explain – not all!) DXCore-dependent plugins to expose themselves properly within the newly-released DXCore runtime.</p>
<h3>CR_ClassCleaner</h3>
<p>In the past, I’ve done this for the <a href="http://www.codeplex.com/CRClassCleaner" target="_blank">CR_ClassCleaner plugin</a> out of a courtesy to the community.&#160; You will notice that the plugin is hosted on CodePlex, but you will also notice that its latest binary release is compiled again the DXCore 1.5 release from waaaay back in 2007.&#160; To make it easy for people to remain compatible at a binary level, I usually recompile the CR_ClassCleaner code against the newest DXCore binaries and post it here for anyone to download and so I’m doing this again now.&#160; You can download the latest ClassCleaner binary for DXCore 2009.2.6 <a href="http://unhandled-exceptions.com/downloads/CR_ClassCleaner_1.5.2.0_DXCore_2009.2.6.zip" target="_blank">here</a>.</p>
<p>In addition, I’ve taken the liberty of including the patch mentioned <a href="http://www.kowitz.net/archive/2009/08/19/cr_classcleaner-now-with-refactor-key.aspx" target="_blank">here</a> in this new binary and revved the version of ClassCleaner from 1.5.1 to 1.5.2 accordingly.</p>
<p>Happy coding~!</p>
<img src="http://feeds.feedburner.com/~r/unhandled-exceptions/~4/R2gqAlyLwgY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unhandled-exceptions.com/blog/index.php/2009/09/24/devexpress-ide-tools-updated-to-200926-and-cr_classcleaner-rebuilt-too/feed/</wfw:commentRss>
		<feedburner:origLink>http://unhandled-exceptions.com/blog/index.php/2009/09/24/devexpress-ide-tools-updated-to-200926-and-cr_classcleaner-rebuilt-too/</feedburner:origLink></item>
		<item>
		<title>CodeRush 2009.2.5 Released (and ClassCleaner updated)</title>
		<link>http://feedproxy.google.com/~r/unhandled-exceptions/~3/y58J52HMMUU/</link>
		<comments>http://unhandled-exceptions.com/blog/index.php/2009/09/20/coderush-200925-released-and-classcleaner-updated/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 20:19:00 +0000</pubDate>
		<dc:creator>sbohlen</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[CodeRush]]></category>

		<category><![CDATA[People]]></category>

		<guid isPermaLink="false">http://unhandled-exceptions.com/blog/index.php/2009/09/20/coderush-200925-released-and-classcleaner-updated/</guid>
		<description><![CDATA[Developer Express has just released the ‘2009.2.5’ version of their IDE Productivity Tools, CodeRush, Refactor! Pro, CodeRushXpress, and DXCore.
Just about every time this happens, there’s a need to recompile many (but, interestingly - for reasons I cannot entirely explain – not all!) DXCore-dependent plugins to expose themselves properly within the newly-released DXCore runtime.
CR_ClassCleaner
In the past, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.devexpress.com" target="_blank">Developer Express</a> has just released the ‘2009.2.5’ version of their IDE Productivity Tools, CodeRush, Refactor! Pro, CodeRushXpress, and DXCore.</p>
<p>Just about every time this happens, there’s a need to recompile many (but, interestingly - for reasons I cannot entirely explain – not all!) DXCore-dependent plugins to expose themselves properly within the newly-released DXCore runtime.</p>
<h3>CR_ClassCleaner</h3>
<p>In the past, I’ve done this for the <a href="http://www.codeplex.com/CRClassCleaner" target="_blank">CR_ClassCleaner plugin</a> out of a courtesy to the community.&#160; You will notice that the plugin is hosted on CodePlex, but you will also notice that its latest binary release is compiled again the DXCore 2.5 release from waaaay back in 2007.&#160; To make it easy for people to remain compatible at a binary level, I usually recompile the CR_ClassCleaner code against the newest DXCore binaries and post it here for anyone to download and so I’m doing this again now.&#160; You can download the latest ClassCleaner binary for DXCore 2009.2.5 <a href="http://unhandled-exceptions.com/downloads/CR_ClassCleaner_1.5.1.0_DXCore_2009.2.5.zip" target="_blank">here</a>.</p>
<p>Happy coding~!</p>
<img src="http://feeds.feedburner.com/~r/unhandled-exceptions/~4/y58J52HMMUU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://unhandled-exceptions.com/blog/index.php/2009/09/20/coderush-200925-released-and-classcleaner-updated/feed/</wfw:commentRss>
		<feedburner:origLink>http://unhandled-exceptions.com/blog/index.php/2009/09/20/coderush-200925-released-and-classcleaner-updated/</feedburner:origLink></item>
	</channel>
</rss>
