<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A0cESH4-fSp7ImA9WxNUGE4.&quot;"><id>tag:blogger.com,1999:blog-36766850</id><updated>2009-11-10T02:43:29.055-05:00</updated><title>Joe Wirtley's Blog</title><subtitle type="html">Software architecture and development</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://joewirtley.blogspot.com/" /><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>143</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><geo:lat>39.557096</geo:lat><geo:long>-84.22688</geo:long><link rel="self" href="http://feeds.feedburner.com/JoeWirtley" type="application/atom+xml" /><feedburner:emailServiceId>JoeWirtley</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gd:etag="W/&quot;C0UGR3s4cCp7ImA9WxRRFkk.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-5774636587699622357</id><published>2008-09-28T18:30:00.001-04:00</published><updated>2008-09-28T18:33:46.538-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-28T18:33:46.538-04:00</app:edited><title>jQuery and Microsoft - ScottGu's Blog</title><content type="html">I just have to note this announcement from Scott Guthrie:  &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx"&gt;jQuery and Microsoft - ScottGu's Blog&lt;/a&gt;: "I'm excited today to announce that Microsoft will be shipping jQuery with Visual Studio going forward."  Microsoft shipping jQuery?  What's the world coming to?  I'm sure that &lt;a href="http://www.fallenrogue.com/"&gt;Leon&lt;/a&gt; will be happy, even if it's not &lt;a href="http://www.prototypejs.org/"&gt;Prototype&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-5774636587699622357?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=iT64fLMofqQ:9Tivgx20DJ0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=iT64fLMofqQ:9Tivgx20DJ0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=iT64fLMofqQ:9Tivgx20DJ0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=iT64fLMofqQ:9Tivgx20DJ0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=iT64fLMofqQ:9Tivgx20DJ0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=iT64fLMofqQ:9Tivgx20DJ0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=iT64fLMofqQ:9Tivgx20DJ0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/iT64fLMofqQ" height="1" width="1"/&gt;</content><link rel="related" href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx" title="jQuery and Microsoft - ScottGu's Blog" /><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/5774636587699622357/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=5774636587699622357" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/5774636587699622357?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/5774636587699622357?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/iT64fLMofqQ/jquery-and-microsoft-scottgus-blog.html" title="jQuery and Microsoft - ScottGu's Blog" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/09/jquery-and-microsoft-scottgus-blog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMFRXgzeip7ImA9WxRRFE4.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-8088656057658083563</id><published>2008-09-26T09:40:00.001-04:00</published><updated>2008-09-26T09:40:14.682-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-26T09:40:14.682-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="User Group" /><title>Chris Woodruff on Astoria</title><content type="html">&lt;p&gt;&lt;a href="http://blog.cloudsocket.com"&gt;Chris Woodruff&lt;/a&gt; was the speaker at this week's &lt;a href="http://daytondevgroup.net/"&gt;Dayton .NET Developers Group&lt;/a&gt;.&amp;#160; He talked to us about Astoria, or what is now known as ADO.NET Data Services.&amp;#160; ADO.NET Data Services is a way to easily expose data via services.&amp;#160; He gave us a good introduction to using it and did a demonstration of how simple it is to get a basic service up that exposes a read only view of your data.&amp;#160; &lt;/p&gt;  &lt;p&gt;My primary take away from the presentation is that the ADO.NET Data Services is a solution looking for a problem.&amp;#160; It's hard to imagine too many scenarios where it would be useful.&amp;#160; In its current state, it would be most useful in exposing a bunch of read-only data that you wanted to make publicly available.&amp;#160; I can also see how it might be useful within an enterprise to expose data in .NET to consumers in other languages. &lt;/p&gt;  &lt;p&gt;Sadly, this was also our last meeting at &lt;a href="http://maxtrain.com"&gt;Max Technical Training&lt;/a&gt; in Dayton since they are closing their Dayton facility.&amp;#160; Max has been a great supporter of the user group and we've really enjoyed meeting in their facility.&amp;#160; I want to publicly thank Max for their support and for their continued support of many user groups.&amp;#160; I truly appreciate it as both a contribute and attendee at many user groups.&lt;/p&gt;  &lt;p&gt;We are still looking for a new home for the user group, so if you have any ideas of potential locations, or opinions about where we should meet, please &lt;a href="http://www.wirtley.net/Contact.aspx"&gt;contact me&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-8088656057658083563?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=BtDwxRCx9Nc:DojuoDmz15Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=BtDwxRCx9Nc:DojuoDmz15Y:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=BtDwxRCx9Nc:DojuoDmz15Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=BtDwxRCx9Nc:DojuoDmz15Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=BtDwxRCx9Nc:DojuoDmz15Y:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=BtDwxRCx9Nc:DojuoDmz15Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=BtDwxRCx9Nc:DojuoDmz15Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/BtDwxRCx9Nc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/8088656057658083563/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=8088656057658083563" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/8088656057658083563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/8088656057658083563?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/BtDwxRCx9Nc/chris-woodruff-on-astoria.html" title="Chris Woodruff on Astoria" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/09/chris-woodruff-on-astoria.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ENSX89fSp7ImA9WxdaFkU.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-7196191719824404387</id><published>2008-08-25T13:34:00.001-04:00</published><updated>2008-08-25T13:34:58.165-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-25T13:34:58.165-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="User Group" /><title>Bill Vaughn in Dayton</title><content type="html">&lt;p&gt;&lt;a href="http://www.betav.com"&gt;Bill Vaughn&lt;/a&gt; will be visiting Dayton Wednesday.&amp;#160; If you don't recognize his name, it may help to know that he is the author of &lt;a href="http://www.amazon.com/gp/product/0321243625?ie=UTF8&amp;amp;tag=joewirsblo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321243625"&gt;Hitchhiker's Guide to Visual Studio and SQL Server: Best Practice Architectures and Examples, 7th Edition (Microsoft Windows Server System Series)&lt;/a&gt;.&amp;#160; In the evening, he will be speaking to the &lt;a href="http://daytondevgroup.net/"&gt;Dayton .NET Developers Group&lt;/a&gt; covering a topic yet to be determined.&amp;#160; He gave us four potential presentation topics and we are going to have a vote at the meeting to choose the winner.&amp;#160; The four potential topics are: Visual Studio Reporting, SQL Server CLR Executables, ADO.NET Connecting, and SQL Server Compact Edition.&amp;#160; For more description of each, check out the &lt;a href="http://daytondevgroup.net/forums/t/150.aspx"&gt;forum&lt;/a&gt; on the web site.&amp;#160; &lt;/p&gt;  &lt;p&gt;In the afternoon, Bill has agreed to meet with group members in a less formal setting, so we're having a &amp;quot;open space with Bill Vaughn&amp;quot; starting at 3:00 at the Dorothy Lane Market in Springboro, which is just down the street from our meeting location at &lt;a href="http://maxtrain.com"&gt;Max Technical Training&lt;/a&gt;.&amp;#160;&amp;#160;&amp;#160; For more details, you can also see the &lt;a href="http://daytondevgroup.net/forums/t/150.aspx"&gt;forum&lt;/a&gt; on the web site.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-7196191719824404387?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=IzSMluKd6Fg:moBjOYARy40:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=IzSMluKd6Fg:moBjOYARy40:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=IzSMluKd6Fg:moBjOYARy40:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=IzSMluKd6Fg:moBjOYARy40:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=IzSMluKd6Fg:moBjOYARy40:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=IzSMluKd6Fg:moBjOYARy40:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=IzSMluKd6Fg:moBjOYARy40:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/IzSMluKd6Fg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/7196191719824404387/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=7196191719824404387" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/7196191719824404387?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/7196191719824404387?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/IzSMluKd6Fg/bill-vaughn-in-dayton.html" title="Bill Vaughn in Dayton" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/08/bill-vaughn-in-dayton.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8DQno6eCp7ImA9WxdaFkw.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-6431935746439866868</id><published>2008-08-24T17:37:00.001-04:00</published><updated>2008-08-24T17:37:53.410-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-24T17:37:53.410-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>devLink Day 2</title><content type="html">&lt;p&gt;I started the second day of &lt;a href="http://www.devlink.net"&gt;devLink&lt;/a&gt; by doing my presentation on &lt;a href="http://www.wirtley.net/WPFforDevelopers"&gt;WPF for Developers&lt;/a&gt;.&amp;#160; It was a new experience for me speaking in a college lecture hall, and with a microphone, but I think it went well.&amp;#160; I had a good group of people for the first session in the morning.&amp;#160; I had some good feedback from several attendees and good questions.&amp;#160;&amp;#160; If anyone attending my session has any questions, or comments, please feel free to &lt;a href="http://www.wirtley.net/Contact.aspx"&gt;contact me&lt;/a&gt; here.&lt;/p&gt;  &lt;p&gt;I next went to an open space session on *DD, which covered &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;TDD&lt;/a&gt; (Test Driven Development), &lt;a href="http://en.wikipedia.org/wiki/Behavior_driven_development"&gt;BDD&lt;/a&gt; (Behavior Driven Development), and &lt;a href="http://en.wikipedia.org/wiki/Domain-driven_design"&gt;DDD&lt;/a&gt; ( Domain Driven Design).&amp;#160;&amp;#160; I've been thinking quite a bit about TDD since that session and talking about it with &lt;a href="http://www.fallenrogue.com/"&gt;Leon&lt;/a&gt;.&amp;#160; I see great potential value in TDD/BDD, but I haven't yet made the time investment to start using TDD.&amp;#160;&amp;#160; Stay tuned to this blog for future developments in this area.&lt;/p&gt;  &lt;p&gt;At the open space, someone suggested that they would like to see TDD in action which led to an impromptu lunch session.&amp;#160; The idea was to hook up to the projector and see someone doing TDD.&amp;#160; We expected five or ten people the room and we ended up with the entire room full.&amp;#160; It was a great idea, but with the larger crowd and spur of the moment execution, it didn't go smoothly.&amp;#160; But, it was great to see so many people interested in TDD.&lt;/p&gt;  &lt;p&gt;After lunch, I went to the &lt;em&gt;Essence of LINQ&lt;/em&gt; presentation by &lt;a href="http://blogs.msdn.com/charlie/"&gt;Charlie Calvert&lt;/a&gt;.&amp;#160; His presentation was similar to one I saw at the &lt;a href="http://cinnug.org"&gt;Cincinnati .NET User Group&lt;/a&gt; by Stefan Kyntchev in that it showed the underpinnings of LINQ.&amp;#160; In his demos, Charlie created a basic LINQ to objects implementation from scratch using Lambdas, IEnumerable&amp;lt;T&amp;gt;, Extension Methods, Expression Trees, and IQueryable&amp;lt;T&amp;gt;.&amp;#160; Along the way, he showed the part each language element&amp;#160; plays in supporting LINQ. &lt;/p&gt;  &lt;p&gt;I next attended the closing circle for the &lt;a href="http://en.wikipedia.org/wiki/Open_Space_Technology"&gt;open space&lt;/a&gt; event.&amp;#160; I enjoyed the open spaces I attended and as demonstrated by the number and energy of attendees at the closing circle, I think a lot of other people enjoyed the open spaces.&amp;#160; About half of the people at the closing circle had never before attended an open space event.&amp;#160; &lt;a href="http://netcave.org/"&gt;Alan Stevens&lt;/a&gt; did a great job organizing the open space event and I think as a group we've built momentum for more open spaces.&amp;#160; So expect to see more open space events around the region in the future.&amp;#160; And if you've never attended an open space, check one out at your earliest opportunity.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.misfitgeek.com/"&gt;Joe Stagner&lt;/a&gt; did the closing keynote and gave us some insight into what goes on at Microsoft, and his thoughts about the future of our industry.&amp;#160; Somehow, I did not win any &lt;a href="http://joewirtley.blogspot.com/2008/01/go-to-codemash-win-xbox-360.html"&gt;gaming&lt;/a&gt; &lt;a href="http://joewirtley.blogspot.com/2008/01/go-to-codemash-win-xbox-360.html"&gt;systems&lt;/a&gt; at the closing raffle.&amp;#160; But &lt;a href="http://jengriff.com/"&gt;Jennifer Griffin&lt;/a&gt; did pick up a nice monitor.&amp;#160; Congratulations Jennifer!&lt;/p&gt;  &lt;p&gt;I want to express my thanks to all of the organizers of devLink: &lt;a href="http://www.anvilsystems.com/Blog/tabid/114/Default.aspx"&gt;John Kellar&lt;/a&gt;, &lt;a href="http://crazedcodemonkey.blogspot.com/"&gt;Tommy Norman&lt;/a&gt;, Leanna Baker, &lt;a href="http://keithelder.net/blog/"&gt;Keith Elder&lt;/a&gt;, and &lt;a href="http://netcave.org/"&gt;Alan Stevens&lt;/a&gt; (sorry if I missed anyone).&amp;#160; It was a great event and I think I will add it to the short list of can't miss events along with &lt;a href="http://www.codemash.org/"&gt;CodeMash&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;   &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a24e9829-8c8f-4897-968f-cccdfcabf237" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/devLink" rel="tag"&gt;devLink&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-6431935746439866868?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=tE1s80IdNEI:oapzOtOnlj4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=tE1s80IdNEI:oapzOtOnlj4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=tE1s80IdNEI:oapzOtOnlj4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=tE1s80IdNEI:oapzOtOnlj4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=tE1s80IdNEI:oapzOtOnlj4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=tE1s80IdNEI:oapzOtOnlj4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=tE1s80IdNEI:oapzOtOnlj4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/tE1s80IdNEI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/6431935746439866868/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=6431935746439866868" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/6431935746439866868?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/6431935746439866868?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/tE1s80IdNEI/devlink-day-2.html" title="devLink Day 2" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/08/devlink-day-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EHRH8zeyp7ImA9WxdaFEs.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-3068734633461487965</id><published>2008-08-22T23:20:00.001-04:00</published><updated>2008-08-22T23:20:35.183-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-22T23:20:35.183-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>devLink Day 1</title><content type="html">&lt;p&gt;It's my first trip to &lt;a href="http://www.devlink.net"&gt;devLink&lt;/a&gt; and so far it's been well worth the drive.&amp;#160; The keynote was a disappointment, but everything after that was great; one important issue with the keynote is that we were a group of mostly developers, and I don't think that was the intended audience for the presentation.&amp;#160; I spent the first session after the keynote in the opening session&amp;#160; of the &lt;a href="http://en.wikipedia.org/wiki/Open_Space_Technology"&gt;open space&lt;/a&gt; event.&amp;#160; &lt;a href="http://netcave.org/"&gt;Alan Stevens&lt;/a&gt; is leading the open spaces at devLink and explained how open spaces worked and moderated as people contributed session topics.&amp;#160;&amp;#160; The theme of the open space event is &amp;quot;good enough&amp;quot;, as in determining when you've attained the right balance of quality, purity, and business value.&amp;#160; The opening session got the open space event off to a good start.&lt;/p&gt;  &lt;p&gt;Lunch was next and was unremarkable.&amp;#160; I took my normal route and got the vegetarian sandwich, which usually works well.&amp;#160; Didn't work so well this time.&amp;#160;&amp;#160;&amp;#160; The good part of lunch is that a group of us went to the open space area and ate lunch and got an early start on the discussion.&lt;/p&gt;  &lt;p&gt;The next official session I attended was the open space covering several closely related topics, including encouraging critical thinking and motivating developers.&amp;#160; In particular, we discussed how to share the passion that we have as devLink participants with our fellow developers who may not attend this kind of event, or user group meetings, or think about software development after they leave the office.&amp;#160;&amp;#160; It was a great session.&lt;/p&gt;  &lt;p&gt;The next session I attended was &lt;em&gt;Parallel Computing in .NET&lt;/em&gt; by Keith Rome of &lt;a href="http://www.wintellect.com/"&gt;Wintellect&lt;/a&gt;.&amp;#160; His presentation was directed toward using threads (or not) in today's .NET framework.&amp;#160; He began by taking about some basic thread information, including processor cores, and hyper-threading.&amp;#160; He then described the circumstances under which you should use threads and when you should not.&amp;#160; He did a great job of explaining a complex subject and I left with several things I'm going to take back to a couple of my current clients. &lt;/p&gt;  &lt;p&gt;The last session of the day I attended was &lt;a href="http://www.platinumbay.com/"&gt;Steve Andrews&lt;/a&gt; speaking about &lt;em&gt;Automation with MSBuild 3.5 and Team Build 2008&lt;/em&gt;.&amp;#160; Steve gave a great introduction to MSBuild and the various elements of MSBuild files, such as targets, tasks, properties and item groups.&amp;#160; He also gave us several tips for working with MSBuild.&amp;#160;&amp;#160; He then went on to show how to use Team Build to perform builds and schedule those builds.&amp;#160; There were a lot of questions/conversation in this session which I really enjoyed.&amp;#160; I left Steve's session with a good idea of how to proceed with builds and continuous integration in &lt;a href="http://msdn.microsoft.com/en-us/tfs2008/default.aspx"&gt;Team Foundation Server&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Somehow every time I went to the attendee party tonight there were very few people there.&amp;#160; The first time I dropped by, I think that most people were still at dinner.&amp;#160; And&amp;#160; by the second time I dropped by, they were giving away Xboxes and the crowd really thinned after that.&amp;#160; &lt;/p&gt;  &lt;p&gt;I'm looking forward to doing my presentation on &lt;em&gt;WPF for Developers&lt;/em&gt; Saturday morning and I hope I can live up to the great presentations I saw today.&amp;#160; Stay tuned for more after day 2.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-3068734633461487965?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=B4Syxv2OlMo:qudMRx78Wlo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=B4Syxv2OlMo:qudMRx78Wlo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=B4Syxv2OlMo:qudMRx78Wlo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=B4Syxv2OlMo:qudMRx78Wlo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=B4Syxv2OlMo:qudMRx78Wlo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=B4Syxv2OlMo:qudMRx78Wlo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=B4Syxv2OlMo:qudMRx78Wlo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/B4Syxv2OlMo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/3068734633461487965/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=3068734633461487965" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/3068734633461487965?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/3068734633461487965?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/B4Syxv2OlMo/devlink-day-1.html" title="devLink Day 1" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/08/devlink-day-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAFRHk9eSp7ImA9WxdSEUs.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-9175173118016194513</id><published>2008-05-18T21:31:00.001-04:00</published><updated>2008-05-18T21:31:55.761-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-18T21:31:55.761-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><category scheme="http://www.blogger.com/atom/ns#" term="User Group" /><title>Developer Events this Week</title><content type="html">&lt;p&gt;There are several developer events this week that you might want to attend.&amp;#160; On Monday, the &lt;a href="http://cinjug.org"&gt;Cincinnati Java User Group&lt;/a&gt; will have James Carman discussing &lt;em&gt;Advanced Wicket&lt;/em&gt;.&amp;#160; On Tuesday, the &lt;a href="http://cinnug.org"&gt;Cincinnati .NET User Group&lt;/a&gt; will be having a panel discussion from&amp;#160; &lt;a href="http://esumerfield.blogspot.com/"&gt;Ed Sumerfield&lt;/a&gt;, &lt;a href="http://www.timapke.com/blog/index.php"&gt;Tim Apke&lt;/a&gt;, and &lt;a href="http://frazzleddad.blogspot.com/"&gt;Jim Holmes&lt;/a&gt; on &lt;em&gt;Software Development: A Career&lt;/em&gt;.&amp;#160; Both of these meetings will be at &lt;a href="http://maxtrain.com"&gt;Max Technical Training&lt;/a&gt; in Mason.&lt;/p&gt;  &lt;p&gt;The latest &lt;a href="http://www.arcready.com/"&gt;ArcReady&lt;/a&gt; event will be Wednesday morning at the Microsoft office in Mason.&amp;#160; The topic presented will be &lt;em&gt;Architecting for Scalable and Usable Web Applications.&amp;#160; &lt;/em&gt;According to &lt;a href="http://www.danrigsby.com/blog/"&gt;Dan Rigsby&lt;/a&gt;, who saw the session in Indianapolis, it was a &lt;a href="http://www.danrigsby.com/blog/index.php/2008/05/13/arcready-architecting-for-scalable-and-usable-web-applications/"&gt;valuable session&lt;/a&gt;.&amp;#160; Register at the &lt;a href="http://www.arcready.com/"&gt;ArcReady&lt;/a&gt; site if you're interested.&lt;/p&gt;  &lt;p&gt;On Wednesday, I will be speaking at the &lt;a href="http://cincypg.org"&gt;Cincinnati Programmers' Guild&lt;/a&gt; and will be doing my presentation on &lt;a href="http://www.wirtley.net/Presentations/#pragmaticSoftwareArchitecture"&gt;Pragmatic Software Architecture and the Role of the Architect&lt;/a&gt;.&amp;#160; Like the other user groups, this meeting will be held at &lt;a href="http://maxtrain.com"&gt;Max Technical Training&lt;/a&gt; in Mason.&amp;#160; If you haven't seen this presentation and are interested, it is likely one of the last times I'll be doing it locally (or maybe at all).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-9175173118016194513?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=05edUckuypE:eMJAVGedFqo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=05edUckuypE:eMJAVGedFqo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=05edUckuypE:eMJAVGedFqo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=05edUckuypE:eMJAVGedFqo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=05edUckuypE:eMJAVGedFqo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=05edUckuypE:eMJAVGedFqo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=05edUckuypE:eMJAVGedFqo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/05edUckuypE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/9175173118016194513/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=9175173118016194513" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/9175173118016194513?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/9175173118016194513?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/05edUckuypE/developer-events-this-week.html" title="Developer Events this Week" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/05/developer-events-this-week.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIMQX0-fip7ImA9WxdTFkk.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-8582522452962764956</id><published>2008-05-12T21:36:00.001-04:00</published><updated>2008-05-12T21:36:20.356-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-12T21:36:20.356-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>West Michigan Day of .NET Wrap Up</title><content type="html">&lt;p&gt;Saturday's &lt;a href="http://www.wmdotnet.org/dodn08/"&gt;West Michigan Day of .NET&lt;/a&gt; was another great event.&amp;#160; I really enjoyed the facility at &lt;a href="http://www.davenport.edu/"&gt;Davenport University&lt;/a&gt;.&amp;#160; There were many places to sit and chat with people.&amp;#160; Not that I did much other than go from one room to the next.&amp;#160; But I'm getting ahead of myself.&amp;#160; The weekend started with&amp;#160; &lt;a href="http://danhounshell.com"&gt;Dan Hounshell&lt;/a&gt;, &lt;a href="http://bouncetadiss.blogspot.com/"&gt;Justin Kohnen&lt;/a&gt; and I heading up on Friday and picking up &lt;a href="http://www.michaeleatonconsulting.com/blog/"&gt;Mike Eaton&lt;/a&gt; along the way.&amp;#160; We stayed at the Crowne Plaza where many people traveling from out of town stayed.&amp;#160; After dinner with many of the speakers and organizers, I got a good night's sleep, unlike &lt;a href="http://www.michaeleatonconsulting.com/blog/archive/2008/05/11/west-michigan-day-of-.net-wrap-up.aspx"&gt;some&lt;/a&gt; of those traveling with me.&lt;/p&gt;  &lt;p&gt;One reason I needed to get to sleep early was that I was speaking during the first session of the day.&amp;#160; I gave my presentation on &lt;a href="http://www.wirtley.net/Presentations/#pragmaticSoftwareArchitecture"&gt;Pragmatic Software Architecture and the Role of the Architect&lt;/a&gt;.&amp;#160; The room was very quiet, but I had a few questions and lots of head nodding, which is always a good sign that attendees are with you.&amp;#160; And the room was almost full, which was great.&amp;#160; After having done my latest &lt;a href="http://www.wirtley.net/WPFforDevelopers"&gt;WPF for Developers&lt;/a&gt; presentation sans bullet points, it was a little different to go back to a presentation with tons of bullet points, but I'm not sure I'm going to recreate it at this point.&lt;/p&gt;  &lt;p&gt;After my presentation, I attended &lt;em&gt;An Introduction to Boo and DSL&lt;/em&gt; from &lt;a href="http://jrwren.wrenfam.com/blog/"&gt;Jay Wren&lt;/a&gt;.&amp;#160; As he said in his presentation, it seems like everyday we hear from someone else that we should be using &lt;a href="http://en.wikipedia.org/wiki/Domain-specific_programming_language"&gt;DSLs&lt;/a&gt;, but nobody ever shows us how.&amp;#160; He first talked a little about DSLs in general and a little about Boo.&amp;#160; The meat of his presentation was showing how to create a simple DSL leveraging Boo.&amp;#160; He used Rhino.DSL, which is available in source as part of the &lt;a href="http://sourceforge.net/projects/rhino-tools/"&gt;Rhino Tools project&lt;/a&gt;.&amp;#160;&amp;#160; I enjoyed the presentation and see a clear path to implementing a DSL if the need arises.&lt;/p&gt;  &lt;p&gt;For the last session of the morning, I attended &lt;a href="http://www.michaeleatonconsulting.com/blog/"&gt;Mike Eaton's&lt;/a&gt; session &lt;em&gt;LightReader - The Anatomy of a Silverlight Application&lt;/em&gt;.&amp;#160; &lt;a href="http://www.codeplex.com/LightReader"&gt;LightReader&lt;/a&gt; is a Silverlight 2&amp;#160; RSS reader that Mike started and put out on CodePlex, and his presentation described his development experience to date, including the current architecture and challenges he faced.&amp;#160; Some of the interesting tidbits were that there is apparently no easy way to render HTML in Silverlight.&amp;#160; And the TextBlock control does not allow you to copy text.&lt;/p&gt;  &lt;p&gt;After a few slices of pizza for lunch, I saw &lt;a href="http://mobilitymatters.wordpress.com/"&gt;Dan Hibbitts&lt;/a&gt; speak on &lt;em&gt;&lt;a href="http://mobilitymatters.wordpress.com/2008/05/11/slide-deck-from-western-michigan-day-of-net-2008/"&gt;Windows Mobile Tool-Chain Improvements for 2008&lt;/a&gt;&lt;/em&gt;.&amp;#160; Since I don't do mobile development, I just got a flavor for what is available for mobile development in 2008, and a lot of the specifics went right over my head.&lt;/p&gt;  &lt;p&gt;I next attended &lt;em&gt;A Trip Around the Block with Rhino.Mocks&lt;/em&gt; from &lt;a href="http://stevenharman.net/"&gt;Steve Harman&lt;/a&gt;.&amp;#160; He first talked about mock objects in general and discussed the various flavors of mocks, stubs, fakes, etc.&amp;#160; Most of his presentation was showing how mocks (Rhino.Mocks in particular) are used to support testing in various open source projects.&amp;#160;&amp;#160; There was also a lot of interaction from attendees and discussion of various mocking frameworks and experience using mocking.&amp;#160; He showed an interesting &lt;a href="http://code.google.com/p/codeincubator/source/browse/Tools/trunk/CodeInc.Tools/CodeInc.Commons/Testing/Specification.cs"&gt;Specification base class&lt;/a&gt; he uses for testing that encapsulates some of the mechanics required to use Rhino.Mocks and helps support &lt;a href="http://en.wikipedia.org/wiki/Behavior_driven_development"&gt;BDD&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;In the last session of the day, I saw &lt;a href="http://jamescbender.com/bendersblog/Default.aspx"&gt;James Bender&lt;/a&gt; talk about &lt;em&gt;&lt;a href="http://lppq1w.bay.livefilestore.com/y1ppMwd0AhGATZCBeYsMpl_mr5D7RikM_hpI7kZv6UYogTNs2YfaruI22qv7j3GktIKzTrip4lNtlZ5Twfcb_RUeA/Reliable%20Messaging%20with%20WCF%20-%20CODODN.zip?download"&gt;Reliable Messaging in WCF&lt;/a&gt;&lt;/em&gt;.&amp;#160; It was a great way to end the day.&amp;#160; I've been working with WCF quite a bit recently, but I haven't really paid much attention to reliable messaging, because I haven't needed it. So his presentation was good summary of why I might want to use reliable messaging, and how to go about it if I need to.&amp;#160;&amp;#160; He had a slide deck with lots of illustrations and great animations to help show messages going from clients to services.&amp;#160; I also picked up a couple WCF tips.&lt;/p&gt;  &lt;p&gt;To round off the day, I won a copy of &lt;a href="http://www.amazon.com/gp/product/1590599624?ie=UTF8&amp;amp;tag=joewirsblo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1590599624"&gt;Pro WPF with VB 2008: Windows Presentation Foundation with .NET 3.5 (Pro)&lt;/a&gt;, which was great since I enjoyed the previous version of the book and have been doing a WPF presentation where I talk about the book.&amp;#160;&amp;#160;&amp;#160; So now I can actually say something about it other than I haven't seen it.&lt;/p&gt;  &lt;p&gt;If it sounds like a great day, it was.&amp;#160; If you get a chance, I recommend that you attend a Day of .NET or Code Camp near you.&amp;#160; Or even if you have to drive a bit.&amp;#160; The &lt;a href="http://www.clevelanddodn.org/"&gt;Cleveland Day of .NET&lt;/a&gt; is coming up this Saturday May 17.&amp;#160; I'll be speaking on &lt;a href="http://www.wirtley.net/WPFforDevelopers"&gt;WPF for Developers&lt;/a&gt; and there will be a lot of great presentations.&amp;#160; I hope to see you there.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-8582522452962764956?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=bWOgIeE4jM0:BH5avAtaEJQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=bWOgIeE4jM0:BH5avAtaEJQ:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=bWOgIeE4jM0:BH5avAtaEJQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=bWOgIeE4jM0:BH5avAtaEJQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=bWOgIeE4jM0:BH5avAtaEJQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=bWOgIeE4jM0:BH5avAtaEJQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=bWOgIeE4jM0:BH5avAtaEJQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/bWOgIeE4jM0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/8582522452962764956/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=8582522452962764956" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/8582522452962764956?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/8582522452962764956?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/bWOgIeE4jM0/west-michigan-day-of-net-wrap-up.html" title="West Michigan Day of .NET Wrap Up" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/05/west-michigan-day-of-net-wrap-up.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UGQHcyfyp7ImA9WxZaF0g.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-7416810080626064602</id><published>2008-05-02T14:10:00.002-04:00</published><updated>2008-05-02T15:07:01.997-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-05-02T15:07:01.997-04:00</app:edited><title>Remote Desktop Crash and DirectX SDK on Vista</title><content type="html">&lt;p&gt;So I'm about to start development work today and I crank up remote desktop to access the virtual machine on my development server.&amp;#160; And it crashes.&amp;#160; So I try accessing other virtual and real machines.&amp;#160; And it keeps crashing.&amp;#160; So I disable anti-virus and close everything possible.&amp;#160; Keeps crashing.&amp;#160; If you're interested, this is the error:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Faulting application mstsc.exe, version 6.0.6000.16386, time stamp 0x4549b425, faulting module ntdll.dll, version 6.0.6000.16386, time stamp 0x4549bdc9, exception code 0x80000003, fault offset 0x00042ea8, process id 0xd28, application start time 0x01c8ac7a33dfff9c.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So I do some Google searches and don't find much of relevance.&amp;#160; But I do try disabling UAC (I'm running Vista Business).&amp;#160; Still crashes.&amp;#160;&amp;#160; Then I try to remember the last time it worked and what I've installed since then.&amp;#160; And I did install something interesting yesterday, namely the DirectX SDK (March 2008).&amp;#160; So I do a system restore to the point I saved before I installed the SDK.&amp;#160; Still crashes. So I undo the restore, which fails...&amp;#160; But I'm not ready to give up yet.&amp;#160; So I uninstall the SDK.&amp;#160; And remote desktop starts working again.&lt;/p&gt;  &lt;p&gt;So, it appears that installing the DirectX SDK hosed remote desktop on my Vista Business machine.&amp;#160; Don't understand why, but there you go. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-7416810080626064602?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=r-u7E0cV29Q:ZLMc7OTNOBc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=r-u7E0cV29Q:ZLMc7OTNOBc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=r-u7E0cV29Q:ZLMc7OTNOBc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=r-u7E0cV29Q:ZLMc7OTNOBc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=r-u7E0cV29Q:ZLMc7OTNOBc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=r-u7E0cV29Q:ZLMc7OTNOBc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=r-u7E0cV29Q:ZLMc7OTNOBc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/r-u7E0cV29Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/7416810080626064602/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=7416810080626064602" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/7416810080626064602?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/7416810080626064602?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/r-u7E0cV29Q/here-weird-one.html" title="Remote Desktop Crash and DirectX SDK on Vista" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/05/here-weird-one.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4ARXY6eip7ImA9WxZaFEU.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-2027635454312483438</id><published>2008-04-29T11:29:00.001-04:00</published><updated>2008-04-29T11:29:04.812-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-29T11:29:04.812-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>Indianapolis Code Camp Wrap Up</title><content type="html">&lt;p&gt;Saturday was the first&amp;#160; &lt;a href="http://www.indycodecamp.com/"&gt;Indy Code Camp&lt;/a&gt;.&amp;#160; &lt;a href="http://www.mvwood.com/blogs/blog/default.aspx"&gt;Mike Wood&lt;/a&gt;, &lt;a href="http://danhounshell.com"&gt;Dan Hounshell&lt;/a&gt; and I drove up together and each had the opportunity to speak.&amp;#160;&amp;#160; I did my presentation on &lt;a href="http://www.wirtley.net/WPFforDevelopers"&gt;WPF for Developers&lt;/a&gt; and I think it went pretty well.&amp;#160; I paced it a little better this time and actually had time to talk about all of the slides and not fly through the ones at the end.&amp;#160; The attendees represented a wide range of experience with WPF, from some who were brand new to WPF to those who had WPF applications in production.&amp;#160;&amp;#160; If you attended my session and have any suggestions on how I can improve it, please let me know.&amp;#160; You can use my &lt;a href="http://www.wirtley.net/Contact.aspx"&gt;contact form&lt;/a&gt; to send me a message.&amp;#160; And if you attended the code camp and have not filled out your evaluation, you can do that &lt;a href="http://www.codecampevals.com/Evaluation.aspx?CodeCampID=19"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;After speaking, I attended several sessions on Silverlight, applying&amp;#160; AOP (Aspect Oriented Programming) to business objects, TDD with ASP.NET MVC, and WCF.&amp;#160; I enjoyed all of the sessions and as usual, came away with a few ideas that I'll try out for myself.&amp;#160; There was a good mix of speakers from around Indianapolis and outside the area.&amp;#160;&amp;#160; It was good the chat with my &lt;a href="http://twictionary.pbwiki.com/"&gt;tweeps&lt;/a&gt; and meet some of them in person.&lt;/p&gt;  &lt;p&gt;I especially enjoyed speaking at this event because it was another step in breaking down the invisible barrier between Indiana and Ohio created by the Microsoft district boundary.&amp;#160;&amp;#160; We're in the &lt;a href="http://www.microsoft.com/about/companyinformation/usaoffices/Heartland/default.mspx"&gt;Heartland District&lt;/a&gt; here in Ohio, while Indiana is in the &lt;a href="http://www.microsoft.com/about/companyinformation/usaoffices/midwest/default.mspx"&gt;Midwest District&lt;/a&gt;.&amp;#160; Indianapolis is about the same distance from me as Columbus, but I know so many more people in Columbus than in Indianapolis.&amp;#160; I wrote about not recognizing many speakers or attendees in &lt;a href="http://joewirtley.blogspot.com/2007/10/indytechfest-wrap-up.html"&gt;my wrap up of IndyTechFest&lt;/a&gt; last year.&amp;#160;&amp;#160; It's great to have the opportunity to speak in Indianapolis and I hope to get some speakers from Indianapolis to speak at the &lt;a href="http://daytondevgroup.net/"&gt;Dayton .NET Developers Group&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;And speaking of &lt;a href="http://www.indytechfest.org/"&gt;IndyTechFest&lt;/a&gt;, this year's event will take place on Saturday October 4 and more details should be available soon.&amp;#160; I enjoyed last year's event and I will very likely attend again this year.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-2027635454312483438?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=-A9Hpo694oM:eQnq4su_q44:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=-A9Hpo694oM:eQnq4su_q44:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=-A9Hpo694oM:eQnq4su_q44:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=-A9Hpo694oM:eQnq4su_q44:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=-A9Hpo694oM:eQnq4su_q44:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=-A9Hpo694oM:eQnq4su_q44:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=-A9Hpo694oM:eQnq4su_q44:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/-A9Hpo694oM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/2027635454312483438/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=2027635454312483438" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/2027635454312483438?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/2027635454312483438?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/-A9Hpo694oM/indianapolis-code-camp-wrap-up.html" title="Indianapolis Code Camp Wrap Up" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/04/indianapolis-code-camp-wrap-up.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04NRn04eip7ImA9WxZaEU4.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-5536840874761159305</id><published>2008-04-25T09:59:00.001-04:00</published><updated>2008-04-25T09:59:57.332-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-25T09:59:57.332-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>Indianapolis Code Camp and other upcoming events</title><content type="html">&lt;p&gt;Tomorrow is the &lt;a href="http://www.indycodecamp.com/"&gt;Indy Code Camp&lt;/a&gt;.&amp;#160; I'll be doing my &lt;a href="http://www.wirtley.net/WPFforDevelopers"&gt;WPF for Developers&lt;/a&gt; presentation again that I first did at the &lt;a href="http://cinnug.org/cododn/"&gt;Central Ohio Day of .NET&lt;/a&gt;.&amp;#160; I've been tweaking the presentation this week based on the feedback I received from the first one (thanks to everyone who responded).&amp;#160; I'm looking forward to doing the updated version.&amp;#160; &lt;/p&gt;  &lt;p&gt;I'll also be doing my WPF presentation at the upcoming &lt;a href="http://www.clevelanddodn.org/"&gt;Cleveland Day of .NET&lt;/a&gt;&amp;#160; (May 17).&amp;#160; And at the &lt;a href="http://www.wmdotnet.org/dodn08/"&gt;West Michigan Day of .NET&lt;/a&gt; (May 10), I'll be doing my presentation on &lt;a href="http://www.wirtley.net/Presentations/#pragmaticSoftwareArchitecture"&gt;Pragmatic Software Architecture and the Role of the Architect&lt;/a&gt;.&amp;#160; I'll also be doing my software architecture presentation at the &lt;a href="http://cincypg.org"&gt;Cincinnati Programmers' Guild&lt;/a&gt; meeting on May 21.&amp;#160; If you'd like to see my architecture presentation, I'd recommend you come check out the guild.&amp;#160; I think it will be a great venue for this type of presentation, because it is normally a small group, and this presentation benefits from a lot of group discussion.&lt;/p&gt;  &lt;p&gt;I also got another piece of great news this week; I'll be speaking at &lt;a href="http://www.devlink.net"&gt;DevLink&lt;/a&gt; (August 22-23, Murfreesboro, TN)!&amp;#160;&amp;#160; Interestingly, I'm not sure what I'll be speaking about, since the email I received said I have been selected as a speaker, but not the session that was accepted.&amp;#160; Stay tuned for updates.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-5536840874761159305?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=fNgsy-y1jSw:euZ2tQgEkTM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=fNgsy-y1jSw:euZ2tQgEkTM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=fNgsy-y1jSw:euZ2tQgEkTM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=fNgsy-y1jSw:euZ2tQgEkTM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=fNgsy-y1jSw:euZ2tQgEkTM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=fNgsy-y1jSw:euZ2tQgEkTM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=fNgsy-y1jSw:euZ2tQgEkTM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/fNgsy-y1jSw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/5536840874761159305/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=5536840874761159305" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/5536840874761159305?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/5536840874761159305?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/fNgsy-y1jSw/indianapolis-code-camp-and-other.html" title="Indianapolis Code Camp and other upcoming events" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/04/indianapolis-code-camp-and-other.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIGQHwyeSp7ImA9WxZbF04.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-5279253599041663428</id><published>2008-04-20T19:18:00.001-04:00</published><updated>2008-04-20T19:18:41.291-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-20T19:18:41.291-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>Central Ohio Day of .NET Wrap Up</title><content type="html">&lt;p&gt;The &lt;a href="http://cinnug.org/cododn/"&gt;Central Ohio Day of .NET&lt;/a&gt; (CODODN) was another great community event.&amp;#160;&amp;#160; I started the day by &lt;a href="http://joewirtley.blogspot.com/2008/04/wpf-for-developers-at-cododn.html"&gt;giving my presentation&lt;/a&gt; on WPF for Developers.&amp;#160; I think it went pretty well and I definitely enjoyed it.&lt;/p&gt;  &lt;p&gt;I stuck around in that room to see &lt;a href="http://nino.net/blog/"&gt;Nino Benvenuti&lt;/a&gt; speaking about the &lt;a href="http://msdn2.microsoft.com/en-us/sync/default.aspx"&gt;Microsoft Sync Framework&lt;/a&gt;.&amp;#160; I enjoyed hearing about the current state and future potential of the sync framework.&amp;#160; I walked away knowing that there's a tremendous amount to learn about the sync framework.&lt;/p&gt;  &lt;p&gt;The next session I attended was &lt;a href="http://programwith.net/"&gt;Matt Casto&lt;/a&gt; talking about Silverlight 2.0.&amp;#160;&amp;#160; As much as I've looked at WPF, I've pretty much ignored Silverlight, which is why I thought it was about time I looked at what was going on, especially with Silverlight 2.0 adding a lot of features to support business applications.&amp;#160; One of the things I was looking for was the differences between Silverlight and WPF, and he did a good job of covering that.&amp;#160; And the best thing about his presentation was that it was written in Silverlight 2.0; the presentation was most interesting when he was showing the code for the presentation and you could see the code representing the elements on the screen.&lt;/p&gt;  &lt;p&gt;After lunch, I attended a couple open spaces.&amp;#160; The first was an open space on static and dynamic languages and when to use each.&amp;#160; The consensus from most everyone who was there and expressed an opinion was that you should always use dynamic languages, except in the rare cases when performance is critical.&amp;#160; Because of their greater expressiveness, it makes sense to me that using dynamic languages will result in fewer lines of code, which speeds development and aids maintenance.&amp;#160; It also makes sense that statically typed languages limit the performance of your best programmers, while not providing the safety that is commonly believed.&amp;#160; Because of inertia, I think most of my work in the near future will continue to be with statically typed languages (C#), but I'll continue to explore dynamic languages, such as Ruby.&lt;/p&gt;  &lt;p&gt;The second open space was titled Beyond Bullet Points, but was generally about how to do better presentations.&amp;#160; Many of us speaking at CODODN have been influenced by &lt;a href="http://www.amazon.com/gp/product/0735623872?ie=UTF8&amp;amp;tag=joewirsblo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0735623872"&gt;Beyond Bullet Points&lt;/a&gt; and &lt;a href="http://www.amazon.com/gp/product/0321525655?ie=UTF8&amp;amp;tag=joewirsblo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321525655"&gt;Presentation Zen&lt;/a&gt; in preparing our presentations and we wanted to share our experiences creating these presentations.&amp;#160;&amp;#160; I didn't count, but there were over ten people there.&amp;#160; It was great to see so many people interested in talking about improving presentations.&amp;#160; I got a few tips, but mostly walked away with more questions I need to ponder to better craft my presentations to meet the needs of the most attendees.&lt;/p&gt;  &lt;p&gt;In the&amp;#160; last session of the day, I saw &lt;a href="http://www.fallenrogue.com/"&gt;Leon Gersing&lt;/a&gt; (a.k.a. &lt;a href="http://www.fallenrogue.com/"&gt;fallenRogue&lt;/a&gt;) talk about Share Point, Sharepoint, or maybe it was SharePoint.&amp;#160; Leon is a passionate speaker with strong opinions and is quite entertaining.&amp;#160; Fortunately, he also knows SharePoint.&amp;#160; I started doing some SharePoint work a couple weeks ago and gave Leon a call for a crash course.&amp;#160; His presentation was that crash course and much more.&amp;#160; He showed how to leverage your ASP.NET skills to create application pages within SharePoint and talked about the ways to accomplish it and keep everyone happy, including your system administrators.&amp;#160; I'm looking forward to downloading the sample code and learning more about SharePoint.&amp;#160; If you have a chance to see Leon speak, I recommend you attend.&lt;/p&gt;  &lt;p&gt;At the end of the day, most of the speakers, organizers, and several others went to Max &amp;amp; Erma's for dinner and geek talk.&amp;#160; The geekiest moment was the extended talk about programming with Wii remotes, Rock Band pedals, and eventually DDR pads powering CodeRush.&amp;#160; Don't ask.&amp;#160; After Max &amp;amp; Erma's, a bunch of us went to a party hosted by &lt;a href="http://www.jeffblankenburg.com"&gt;Jeff Blankenburg&lt;/a&gt;, our Heartland District developer evangelist.&amp;#160; I had the opportunity to chat with a few people I hadn't seen during the day and to just relax.&lt;/p&gt;  &lt;p&gt;In case you can't tell, I had a great time and learned a lot.&amp;#160; If you were there this year, I hope you had a great experience too.&amp;#160; And if you weren't there, I hope to see you next year.&amp;#160; Or check out the &lt;a href="http://www.wmdotnet.org/dodn08/"&gt;West Michigan Day of .NET&lt;/a&gt; or &lt;a href="http://www.clevelanddodn.org/"&gt;Cleveland Day of .NET&lt;/a&gt; coming up later this spring (I'd tell you to check out the &lt;a href="http://www.indycodecamp.com/"&gt;Indy Code Camp&lt;/a&gt;, but it's sold out.)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-5279253599041663428?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=ia7sOfu4IQk:jwCiuQxQ_Ks:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=ia7sOfu4IQk:jwCiuQxQ_Ks:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=ia7sOfu4IQk:jwCiuQxQ_Ks:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=ia7sOfu4IQk:jwCiuQxQ_Ks:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=ia7sOfu4IQk:jwCiuQxQ_Ks:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=ia7sOfu4IQk:jwCiuQxQ_Ks:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=ia7sOfu4IQk:jwCiuQxQ_Ks:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/ia7sOfu4IQk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/5279253599041663428/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=5279253599041663428" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/5279253599041663428?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/5279253599041663428?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/ia7sOfu4IQk/central-ohio-day-of-net-wrap-up.html" title="Central Ohio Day of .NET Wrap Up" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/04/central-ohio-day-of-net-wrap-up.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEHQnY4fip7ImA9WxZbFkQ.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-9042052539556682524</id><published>2008-04-20T08:30:00.001-04:00</published><updated>2008-04-20T08:30:33.836-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-20T08:30:33.836-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>WPF for Developers at CODODN</title><content type="html">&lt;p&gt;I did my &lt;a href="http://www.wirtley.net/WPFforDevelopers"&gt;WPF for Developers&lt;/a&gt; presentation for the first time yesterday at the &lt;a href="http://cinnug.org/cododn/"&gt;Central Ohio Day of .NET&lt;/a&gt;.&amp;#160; The most surprising thing was how many people were interested.&amp;#160; There ended up being 55 attendees by the official count, but I heard several comments later in the day that there were more people in the hall trying to get in.&amp;#160; I'm pleasantly surprised that so many people are interested in WPF, and sorry there were not a few more chairs so more people could attend.&lt;/p&gt;  &lt;p&gt;It was the first time I've done that particular presentation, and the first presentation I've done inspired by &lt;a href="http://www.amazon.com/gp/product/0735623872?ie=UTF8&amp;amp;tag=joewirsblo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0735623872"&gt;Beyond Bullet Points&lt;/a&gt; and &lt;a href="http://www.amazon.com/gp/product/0321525655?ie=UTF8&amp;amp;tag=joewirsblo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321525655"&gt;Presentation Zen&lt;/a&gt;.&amp;#160; I did get a few questions, but overall it was a quiet crowd.&amp;#160; Of course, I did cover a lot of material at a fairly rapid pace, so I'm not sure I left a lot of room for questions.&amp;#160; &lt;/p&gt;  &lt;p&gt;I'm sure I made at least three mistakes.&amp;#160; First, I had too much material for the time.&amp;#160; I usually try to err on the side of having too much material, but I need to either cut some things or streamline my presentation.&amp;#160; The second mistake I made was to not know that I had an hour and ten minutes, not an hour, which exacerbated my first mistake.&amp;#160; And lastly, I didn't check the URL I put on my slide to make sure it actually worked.&amp;#160; So, if you're looking for the resources I referenced in my presentation, they're &lt;a href="http://www.wirtley.net/WPFforDevelopers"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;As for the mistakes I don't know about, that's where you come in.&amp;#160; If you attended my presentation at CODODN and have any suggestions to help me improve the presentation, I'd be happy to hear from you.&amp;#160; I plan to give this presentation several more times, so you'll be doing lots of people a favor by helping me out with some honest feedback.&amp;#160; You can use the &lt;a href="http://www.wirtley.net/Contact.aspx"&gt;contact form&lt;/a&gt; on my web site to send me a message, and you can remain completely anonymous if you like.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-9042052539556682524?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=RdkVGF3g0l8:E5fRt4ub2J8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=RdkVGF3g0l8:E5fRt4ub2J8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=RdkVGF3g0l8:E5fRt4ub2J8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=RdkVGF3g0l8:E5fRt4ub2J8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=RdkVGF3g0l8:E5fRt4ub2J8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=RdkVGF3g0l8:E5fRt4ub2J8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=RdkVGF3g0l8:E5fRt4ub2J8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/RdkVGF3g0l8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/9042052539556682524/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=9042052539556682524" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/9042052539556682524?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/9042052539556682524?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/RdkVGF3g0l8/wpf-for-developers-at-cododn.html" title="WPF for Developers at CODODN" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/04/wpf-for-developers-at-cododn.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEGQXc7eyp7ImA9WxZbFUs.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-1924840895842879200</id><published>2008-04-18T20:23:00.001-04:00</published><updated>2008-04-18T20:23:40.903-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-18T20:23:40.903-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WPF" /><title>Application Class and Main method in WPF</title><content type="html">&lt;p&gt;I recently ran into an interesting aspect of WPF applications that I had not previously seen.&amp;#160; It started with this error:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Program 'DemoCorp.UI.exe' does not contain a static 'Main' method suitable for an entry point&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I had copied an App.xaml file from an existing application into a new application I was creating, because I wanted the resource definitions and thought that would be an easy way to do it.&amp;#160; I then deleted the App.xaml that was automatically generated in the new application, which created the compiler error above.&lt;/p&gt;  &lt;p&gt;As it turns out, there's a special output type for the App.xaml file to make it generate the Main method.&amp;#160; Here's an App.xaml in the solution explorer:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/JoeWirtley/SAk7hxHTzJI/AAAAAAAAACY/l-M6yGfAEG4/s1600-h/SolutionExplorerApp2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="241" alt="Solution Explorer App" src="http://lh6.ggpht.com/JoeWirtley/SAk7iRHTzKI/AAAAAAAAACg/TBYy2BTgL2c/SolutionExplorerApp_thumb.png?imgmax=800" width="218" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you click on the properties tab to get the file properties for the App.xaml, you'll see something like the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/JoeWirtley/SAk7ihHTzLI/AAAAAAAAACo/ek2kV5t7Hd0/s1600-h/ApplicationDefinitionBuildAction3.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="253" alt="ApplicationDefinition Build Action" src="http://lh5.ggpht.com/JoeWirtley/SAk7jBHTzMI/AAAAAAAAACw/k2QOv5kYDJ0/ApplicationDefinitionBuildAction_thu.png?imgmax=800" width="351" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To generate a suitable Main method, the Build Action must be set to ApplicationDefinition as shown in this image.&amp;#160; As soon as I figured this out, everything worked great.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-1924840895842879200?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=Aa1m2ZBpMRw:db36AjXu5XM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=Aa1m2ZBpMRw:db36AjXu5XM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=Aa1m2ZBpMRw:db36AjXu5XM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=Aa1m2ZBpMRw:db36AjXu5XM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=Aa1m2ZBpMRw:db36AjXu5XM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=Aa1m2ZBpMRw:db36AjXu5XM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=Aa1m2ZBpMRw:db36AjXu5XM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/Aa1m2ZBpMRw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/1924840895842879200/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=1924840895842879200" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/1924840895842879200?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/1924840895842879200?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/Aa1m2ZBpMRw/application-class-and-main-method-in.html" title="Application Class and Main method in WPF" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">13</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/04/application-class-and-main-method-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYBRH09eCp7ImA9WxZbEkQ.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-8690066644584884634</id><published>2008-04-15T16:09:00.001-04:00</published><updated>2008-04-15T16:09:15.360-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-15T16:09:15.360-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>Upcoming Regional Developer Events</title><content type="html">&lt;p&gt;There are number of upcoming developer events in the region.&amp;#160; All are full day &lt;strong&gt;free&lt;/strong&gt; events on Saturdays.&amp;#160; Some are full, but are accepting stand by registrations.&amp;#160;&amp;#160; If you haven't been to one of these events, I highly recommend them as a good way to spend some time away from your job with people who are enthusiastic about software development.&amp;#160; It's a good opportunity to learn about something you may not be using in your day to day work, such as F#, Boo, LINQ, WPF, WCF,&amp;#160; Sliverlight, Astoria, or Wiimote and some topics that may help your everyday work including SEO, MOSS, ASP.NET, or TFS.&lt;/p&gt;  &lt;table cellspacing="10" cellpadding="3" width="769" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="258"&gt;&lt;a href="http://www.cinnug.org/cododn/"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" alt="Central Ohio Day of .NET" src="http://www.cinnug.org/images/CentralOhioDoDNBadge.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td width="476"&gt;The &lt;a href="http://cinnug.org/cododn/"&gt;Central Ohio Day of .NET&lt;/a&gt; (CODODN) is the first upcoming event, happening this Saturday April 19. Registration is full, so register early next year!           &lt;br /&gt;          &lt;br /&gt;I'll be doing a WPF presentation first thing in the morning, so check it out if you're there.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="258"&gt;&lt;a href="http://www.indycodecamp.com/"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="88" alt="image" src="http://lh3.ggpht.com/JoeWirtley/SAULahHTzII/AAAAAAAAACQ/--j6Y1hEbVQ/image%5B4%5D.png?imgmax=800" width="240" border="0" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td width="476"&gt;The next event is the &lt;a href="http://www.indycodecamp.com/"&gt;Indianapolis Code Camp&lt;/a&gt; on the following Saturday, April 26, which is also sold out but accepting standby registration.           &lt;br /&gt;          &lt;br /&gt;I'll be doing my WPF presentation here also.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="258"&gt;&lt;a href="http://www.wmdotnet.org/dodn08/"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" alt="WM Day of .Net May 10, 2008 - I&amp;#39;ll be there!" src="http://www.wmdotnet.org/DODN08/images/Site-Badge-I.gif" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td width="476"&gt;The next event is a little further afield.&amp;#160; On May 10, the &lt;a href="http://www.wmdotnet.org/dodn08/"&gt;West Michigan Day of .NET&lt;/a&gt; will be held.&amp;#160; As I write this, registration is still open.          &lt;br /&gt;          &lt;br /&gt;I'll also be speaking at this event but will be doing my Pragmatic Software Architecture and the Role of the Architect presentation.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="258"&gt;&lt;a href="http://www.clevelanddodn.org"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" alt="Cleveland Day of .NET" src="http://www.clevelanddodn.org/images/badge.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td width="476"&gt;The &lt;a href="http://www.clevelanddodn.org/"&gt;Cleveland Day of .NET&lt;/a&gt; will be the last regional developer event of the spring on May 17.&amp;#160; Registration is open on the site, but does require that you have an &lt;a href="http://openid.net/"&gt;OpenID&lt;/a&gt;.          &lt;br /&gt;          &lt;br /&gt;Sessions and speakers have not yet been announced for this event.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="258"&gt;&lt;a title="PodCamp Ohio, June 28, 2008" href="http://www.podcampohio.com"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" alt="PodCamp Ohio, June 28, 2008" src="http://www.podcampohio.com/banners/125x125.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td width="476"&gt;&lt;a href="http://www.podcampohio.com/"&gt;PodCamp Ohio&lt;/a&gt; on June 28 in Columbus is a little later in the year and not a developer event, but I thought I'd mention it here.&amp;#160; &lt;a href="http://www.podcampohio.com/"&gt;PodCamp Ohio&lt;/a&gt; is a FREE &lt;a href="http://en.wikipedia.org/wiki/Unconference"&gt;UnConference&lt;/a&gt; focused on podcasting, blogging, new media and social networking. I'm not podcasting and don't have any plans to start in the near future, but I plan to attend to learn more about podcasting and talk about the social web.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-8690066644584884634?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=xpQ0FRAZXe0:hpKmc8B3_Qw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=xpQ0FRAZXe0:hpKmc8B3_Qw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=xpQ0FRAZXe0:hpKmc8B3_Qw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=xpQ0FRAZXe0:hpKmc8B3_Qw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=xpQ0FRAZXe0:hpKmc8B3_Qw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=xpQ0FRAZXe0:hpKmc8B3_Qw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=xpQ0FRAZXe0:hpKmc8B3_Qw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/xpQ0FRAZXe0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/8690066644584884634/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=8690066644584884634" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/8690066644584884634?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/8690066644584884634?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/xpQ0FRAZXe0/upcoming-regional-developer-events.html" title="Upcoming Regional Developer Events" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/04/upcoming-regional-developer-events.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QBRnc6eip7ImA9WxZbEk8.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-7400165396787552098</id><published>2008-04-14T21:02:00.001-04:00</published><updated>2008-04-14T21:02:37.912-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-14T21:02:37.912-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><category scheme="http://www.blogger.com/atom/ns#" term="User Group" /><title>Community Launch Event</title><content type="html">&lt;p&gt;Since Microsoft is not doing an official HEROES happen {here} launch event in Cincinnati, several local user groups and &lt;a href="http://maxtrain.com"&gt;Max Technical Training&lt;/a&gt; are sponsoring a community launch event over &lt;a href="http://www.maxtrain.com/pages.aspx?pagename=2008LaunchEvents"&gt;three separate meetings&lt;/a&gt;.&amp;#160; The first meeting is Tuesday April 15 sponsored by the &lt;a href="http://cinnug.org"&gt;Cincinnati .NET User Group&lt;/a&gt;.&amp;#160; There will be an overview of new features in Visual Studio 2008 by Max, &lt;a href="http://www.linkedin.com/ppl/webprofile?action=vmi&amp;amp;id=2575410&amp;amp;authToken=PyWH&amp;amp;authType=name&amp;amp;trk=ppro_viewmore&amp;amp;lnk=vw_pprofile"&gt;Stefan Kyntchev&lt;/a&gt; will be speaking about LINQ, and &lt;a href="http://danhounshell.com"&gt;Dan Hounshell&lt;/a&gt; will be talking about the new features in ASP.NET 3.5.&amp;#160; Unlike typical user groups meeting, they request that you &lt;a href="https://www.clicktoattend.com/invitation.aspx?code=126598"&gt;register&lt;/a&gt; if you plan to attend.&amp;#160; In addition to the presentations there will also be Hands on Labs and access to the MAX Instructors if you have any questions regarding the new features and technologies.&lt;/p&gt;  &lt;p&gt;On May 7, &lt;a href="http://cinpaweb.googlepages.com/"&gt;CINPA&lt;/a&gt; will host the second portion of the community launch which will be about Windows Server 2008.&amp;#160; You can register for the meeting &lt;a href="http://www.clicktoattend.com/invitation.aspx?code=125942"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The final launch meeting will be May 27, hosted by the &lt;a href="http://cincysql.org/"&gt;Cincinnati SQL User Group&lt;/a&gt; and will address SQL 2008.&amp;#160; Click &lt;a href="http://www.clicktoattend.com/invitation.aspx?code=126602"&gt;here&lt;/a&gt; to register for this meeting.&amp;#160; I hope to see you at one or all of these events.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-7400165396787552098?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=oZbpy34wAuM:GDAyTUz_cjQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=oZbpy34wAuM:GDAyTUz_cjQ:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=oZbpy34wAuM:GDAyTUz_cjQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=oZbpy34wAuM:GDAyTUz_cjQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=oZbpy34wAuM:GDAyTUz_cjQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=oZbpy34wAuM:GDAyTUz_cjQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=oZbpy34wAuM:GDAyTUz_cjQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/oZbpy34wAuM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/7400165396787552098/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=7400165396787552098" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/7400165396787552098?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/7400165396787552098?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/oZbpy34wAuM/community-launch-event.html" title="Community Launch Event" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/04/community-launch-event.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQGQXk5cCp7ImA9WxZUEUo.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-1745541368616365383</id><published>2008-04-02T19:02:00.001-04:00</published><updated>2008-04-02T19:02:00.728-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-02T19:02:00.728-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="User Group" /><title>Decisions, Decisions</title><content type="html">&lt;p&gt;Thursday evening there are two user group meetings: &lt;a href="http://www.gcvmug.org"&gt;Greater Cincinnati VMware User Group&lt;/a&gt; and a special meeting of the &lt;a href="http://cinnug.org"&gt;Cincinnati .NET User Group&lt;/a&gt;.&amp;#160; This will be the second meeting of the VMware group.&amp;#160; I enjoyed the first meeting and met a number of people I don't typically meet at developer user group meetings.&amp;#160; The main presentation is going to be &amp;quot;MY VM SPACE....&amp;quot; whatever that means.&amp;#160; The .NET user group is having a special event at the Microsoft office in Mason.&amp;#160; Randy Pagels from Microsoft will be doing two hour long sessions on Visual Studio Team Systems.&amp;#160; I'm going to one meeting or the other, but I'm not sure which one.&amp;#160; Any thoughts?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-1745541368616365383?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=md_jB8znM6Y:a-enj9lIj-M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=md_jB8znM6Y:a-enj9lIj-M:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=md_jB8znM6Y:a-enj9lIj-M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=md_jB8znM6Y:a-enj9lIj-M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=md_jB8znM6Y:a-enj9lIj-M:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=md_jB8znM6Y:a-enj9lIj-M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=md_jB8znM6Y:a-enj9lIj-M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/md_jB8znM6Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/1745541368616365383/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=1745541368616365383" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/1745541368616365383?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/1745541368616365383?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/md_jB8znM6Y/decisions-decisions.html" title="Decisions, Decisions" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/04/decisions-decisions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4AQ3gzfSp7ImA9WxZVEEo.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-8022142297292288635</id><published>2008-03-20T23:51:00.000-04:00</published><updated>2008-03-21T00:49:02.685-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-21T00:49:02.685-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="User Group" /><title>Michigan Tour - Day 2</title><content type="html">&lt;p&gt;After starting the day with a little relaxation and watching some of the tournament games, I headed out toward Lansing for the &lt;a href="http://portal.artemis-solutions.com/glugnet/"&gt;Greater Lansing User Group .NET (GLUG.NET)&lt;/a&gt; meeting.&amp;#160; But before the meeting, I was able to stop by and visit &lt;a href="http://www.techsmith.com"&gt;TechSmith&lt;/a&gt; along with &lt;a href="http://www.mcwherter.net/blog/"&gt;Jeff McWherter&lt;/a&gt;.&amp;#160; &lt;a href="http://www.techsmith.com"&gt;TechSmith&lt;/a&gt; creates screen capture and recording tools including SnagIt, Camtasia Studio, Morae, UserVue, and Screencast.com and is located in Okemos, which is a suburb of Lansing.&amp;#160; (I've used SnagIt for several years now and it's a&amp;#160; great product.)&amp;#160; Courtesy of our host, &lt;a href="http://visuallounge.techsmith.com/"&gt;Betsy Weber&lt;/a&gt;, Jeff and I were able to talk with one one the lead developers of their Screencast.com product about their development process which has a lot of elements from Scrum.&amp;#160; It's always good to hear from groups using agile development and hear about what works for them and the challenges they face.&amp;#160; And I walked away with some swag, which was great because as the speaker, I couldn't get any at the user group meeting.&lt;/p&gt;  &lt;p&gt;After our visit to &lt;a href="http://www.techsmith.com"&gt;TechSmith&lt;/a&gt;, Jeff took me over to the Michigan State campus for the &lt;a href="http://portal.artemis-solutions.com/glugnet/"&gt;Greater Lansing User Group .NET (GLUG.NET)&lt;/a&gt; meeting, where I gave my software architecture presentation.&amp;#160; Once again, I had a lot of good questions and conversation, but I think the presentation ran a little shorter than at &lt;a href="http://www.migang.org/"&gt;Great Lakes .NET User Group (GANG)&lt;/a&gt;.&amp;#160;&amp;#160; Pizza was available and consumed.&amp;#160; After the meeting, a bunch of us continued our discussion at Bennigan's over a few beverages, which Jeff tells me has been a tradition since the group began. &lt;/p&gt;  &lt;p&gt;It was a great way to end my Michigan tour.&amp;#160; Tomorrow I head home, hopefully before the snow gets here.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-8022142297292288635?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=ZBjF7AQandA:MD4l1M9W7uw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=ZBjF7AQandA:MD4l1M9W7uw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=ZBjF7AQandA:MD4l1M9W7uw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=ZBjF7AQandA:MD4l1M9W7uw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=ZBjF7AQandA:MD4l1M9W7uw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=ZBjF7AQandA:MD4l1M9W7uw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=ZBjF7AQandA:MD4l1M9W7uw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/ZBjF7AQandA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/8022142297292288635/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=8022142297292288635" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/8022142297292288635?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/8022142297292288635?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/ZBjF7AQandA/michigan-tour-day-2.html" title="Michigan Tour - Day 2" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/03/michigan-tour-day-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQCQH4zeyp7ImA9WxZWGUU.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-5677943539167355518</id><published>2008-03-19T23:22:00.001-04:00</published><updated>2008-03-19T23:22:41.083-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-19T23:22:41.083-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="User Group" /><title>Michigan Tour - Day One</title><content type="html">&lt;p&gt;Today I did my software architecture presentation for a group at &lt;a href="http://www.dominos.com/"&gt;Domino's&lt;/a&gt; and for the &lt;a href="http://www.migang.org/"&gt;Great Lakes .NET User Group (GANG)&lt;/a&gt;.&amp;#160; The presentation at Domino's was a &amp;quot;lunch and learn&amp;quot; meeting.&amp;#160; We all gathered in a conference room, with Domino's pizza, or course.&amp;#160; I had previously done this presentation only at user groups, so it was a change to be talking to people all from one company.&amp;#160; There were several questions and discussion about how what I was talking about applied to their situation, and I got to learn a little about what they are doing at Domino's.&lt;/p&gt;  &lt;p&gt;This evening, I did the same presentation at &lt;a href="http://www.migang.org/"&gt;Great Lakes .NET User Group (GANG)&lt;/a&gt; at the Microsoft office in Southfield.&amp;#160;&amp;#160; I think it was well received and there was a lot of interaction from the attendees, both questions and comments.&amp;#160;&amp;#160; And the food wasn't pizza!&amp;#160; It was wraps and chips, and was quite good.&amp;#160; I had several conversations after the meeting about the presentation and other topics, including a Delphi programmer considering switching to .NET.&amp;#160; Having made that transition a while ago, I assured him it was a fairly painless transition from Delphi to C# language wise, but learning all the class libraries is another thing.&lt;/p&gt;  &lt;p&gt;This was the first developer group I've attended outside of the Cincinnati-Dayton area.&amp;#160;&amp;#160; And I have to say that it was pretty much the same as the meetings I've attended in Cincinnati and Dayton.&amp;#160; As someone said, geeks are geeks.&lt;/p&gt;  &lt;p&gt;If you're in Michigan, reading my blog, and have somehow avoided seeing this presentation, you should know that I'll be doing it again on Thursday at the &lt;a href="http://portal.artemis-solutions.com/glugnet/"&gt;Greater Lansing User Group .NET (GLUG.NET)&lt;/a&gt;.&amp;#160;&amp;#160; I hope to see you there.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-5677943539167355518?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=oghgxam9W2U:uJjK4lefzD8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=oghgxam9W2U:uJjK4lefzD8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=oghgxam9W2U:uJjK4lefzD8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=oghgxam9W2U:uJjK4lefzD8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=oghgxam9W2U:uJjK4lefzD8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=oghgxam9W2U:uJjK4lefzD8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=oghgxam9W2U:uJjK4lefzD8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/oghgxam9W2U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/5677943539167355518/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=5677943539167355518" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/5677943539167355518?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/5677943539167355518?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/oghgxam9W2U/michigan-tour-day-one.html" title="Michigan Tour - Day One" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/03/michigan-tour-day-one.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4DRng-fCp7ImA9WxZWGEQ.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-8146603396498665591</id><published>2008-03-18T22:49:00.001-04:00</published><updated>2008-03-18T22:49:37.654-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-18T22:49:37.654-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Events" /><title>Detroit Launch Event</title><content type="html">&lt;p&gt;Since I'm in Michigan speaking at user groups this week, I had the opportunity to attend the Detroit launch event today.&amp;#160;&amp;#160; The drive to downtown Detroit wasn't much fun, but also could have been worse.&amp;#160; I got through registration just minutes before the keynote session began.&amp;#160; I don't know how many people were there, but it was packed.&amp;#160; &lt;/p&gt;  &lt;p&gt;The opening keynote was a preview of the upcoming day and touched on the three products being launched: Visual Studio 2008, Windows Server 2008, and SQL Server 2008.&amp;#160; &lt;a href="http://www.joshholmes.com/"&gt;Josh Holmes&lt;/a&gt; did part of the key note and was the liveliest speaker of the group.&amp;#160; I missed the first developer session because I wandered into the partner expo area and met up with quite a number of people I've met at previous events, including &lt;a href="http://www.michaeleatonconsulting.com/blog/"&gt;Micheal Eaton&lt;/a&gt;, who I hung out with for a lot of the day (along with his friend Jeremy).&amp;#160; By the time we wandered up to catch part of the developer session, the room was completely full, so we stood in the hallway talking about Twitter.&amp;#160; After abandoning the idea of actually getting into the developer session, we went back down to the partner expo area to chat and to eat lunch, which was provided in a nice Microsoft lunch carrier, that I'm fairly certain my wife will snag when she sees it.&lt;/p&gt;  &lt;p&gt;After lunch I went to a session on web applications from &lt;a href="http://brianhprince.blogspot.com/"&gt;Brian Prince&lt;/a&gt; and &lt;a href="http://www.jeffblankenburg.com"&gt;Jeff Blankenburg&lt;/a&gt;.&amp;#160; It was a good session, but I'd already seen most of what they presented.&amp;#160; JavaScript debugging and IntelliSense is pretty cool, but after you've seen it several times, it loses some of its impact.&amp;#160; I next switched to the data platform track on BI (Business Intelligence).&amp;#160; It's been a long time since I've looked at BI tools, so I thought a high level overview would be good.&amp;#160; Unfortunately, much of the presentation was spent on demos that didn't work, so I didn't get much out of it.&amp;#160; I then took a quick peek in a Windows Server track session on web and application technologies, but the outline looked like material I already knew.&lt;/p&gt;  &lt;p&gt;So I went back to the last half of the developer track session by &lt;a href="http://keithelder.net/blog/"&gt;Keith Elder&lt;/a&gt; on smart client applications.&amp;#160; I came in at the tail end of a section on something about MFC applications, which was a little strange and disorienting.&amp;#160; But he returned to WPF, WCF and WF and in the end combined them all in one demo.&amp;#160; &lt;/p&gt;  &lt;p&gt;And of course I left the event with copies of Windows Vista Ultimate (with Service Pack 1!), Visual Studio 2008 Standard,&amp;#160; Windows Server 2008 Enterprise (32 and 64 bit, one year evaluation license), a community technology preview of SQL Server 2008 (32 and 64 bit), and an &amp;quot;appreciation voucher&amp;quot; for an evaluation-only license of SQL server 2008 Standard Edition.&lt;/p&gt;  &lt;p&gt;After the event, a bunch of us&amp;#160; took a short ride on the People Mover to Greektown for a geek dinner at &lt;a href="http://www.pizzapapalis.com/Home.aspx"&gt;Pizza Papalis&lt;/a&gt; courtesy of Microsoft, in particular the Visual Studio Team Systems group.&amp;#160; Thanks!&amp;#160;&amp;#160; The pizza and conversation was great.&amp;#160; I left before at least some of the group moved to the &lt;a href="http://www.mgmgranddetroit.com/"&gt;MGM Grand&lt;/a&gt;.&amp;#160; They're probably still there now.&lt;/p&gt;  &lt;p&gt;Tomorrow I'm going to be doing my presentation on &lt;em&gt;Pragmatic Software Architecture and the Role of the Architect&lt;/em&gt; for the internal user group at &lt;a href="http://www.dominos.com/"&gt;Domino's&lt;/a&gt; and later in the day at the &lt;a href="http://www.migang.org/"&gt;Great Lakes .NET User Group (GANG)&lt;/a&gt;.&amp;#160;&amp;#160; I'm looking forward to the opportunity to present to both groups.&amp;#160;&amp;#160; If you see me there, let me know that you read my blog.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-8146603396498665591?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=CA_ojvkPT1A:KVv-6U8jiSU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=CA_ojvkPT1A:KVv-6U8jiSU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=CA_ojvkPT1A:KVv-6U8jiSU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=CA_ojvkPT1A:KVv-6U8jiSU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=CA_ojvkPT1A:KVv-6U8jiSU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=CA_ojvkPT1A:KVv-6U8jiSU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=CA_ojvkPT1A:KVv-6U8jiSU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/CA_ojvkPT1A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/8146603396498665591/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=8146603396498665591" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/8146603396498665591?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/8146603396498665591?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/CA_ojvkPT1A/detroit-launch-event.html" title="Detroit Launch Event" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/03/detroit-launch-event.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EMR3Y_eyp7ImA9WxZWFUg.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-3142696026864602559</id><published>2008-03-15T01:41:00.001-04:00</published><updated>2008-03-15T01:41:26.843-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-15T01:41:26.843-04:00</app:edited><title>TFS Error Deleting a File</title><content type="html">&lt;p&gt;I've recently had the dubious pleasure of beginning to work with Microsoft &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/aa718934.aspx"&gt;TFS&lt;/a&gt; (Team Foundation Server).&amp;#160; At this point, I'm only using the version control.&amp;#160; It's quite a change from &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;, which I have been working with for several years now.&amp;#160; One of the first annoying things I found in TFS is when I tried to delete a file and got this message:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.google.com/JoeWirtley/R9thhdcZFnI/AAAAAAAAACA/Awx5-4xt78M/TFS%20Deletion%20Error%5B11%5D"&gt;&lt;img height="141" alt="TFS Deletion Error" src="http://lh3.google.com/JoeWirtley/R9thhtcZFoI/AAAAAAAAACI/Jlyl3oW0H3M/TFS%20Deletion%20Error_thumb%5B7%5D" width="881" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And so you can find it in the text of the blog post, I'll repeat it:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Error&lt;/p&gt;    &lt;p&gt;A database error occurred (SQL error 18054) ---&amp;gt; Error 500032, severity 16, state 1 was raised, but no message with that error number was found in sys.messages.&amp;#160; If error is larger than 50000, make sure the user-defined message is added using sp_addmessage.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I'm sure it's obvious to you what the problem was, but it did elude me.&amp;#160; All I knew was that when I tried to delete something from TFS, I got a SQL error.&amp;#160; As it turns out, this error was caused by my trying to delete a file I had checked out.&amp;#160; Not that I had made any local changes, mind you, just that I had it checked out (and the whole idea of actually checking out a file to modify it seems odd to me after working with Subversion for so long).&amp;#160; I guess I should have known that error 500032 means I can't delete a file I have checked out.&amp;#160; After checking in the unchanged files, I was able to successfully remove them from source control.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-3142696026864602559?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=gNDYWFkrQA4:A9W-BUIyMtE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=gNDYWFkrQA4:A9W-BUIyMtE:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=gNDYWFkrQA4:A9W-BUIyMtE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=gNDYWFkrQA4:A9W-BUIyMtE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=gNDYWFkrQA4:A9W-BUIyMtE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=gNDYWFkrQA4:A9W-BUIyMtE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=gNDYWFkrQA4:A9W-BUIyMtE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/gNDYWFkrQA4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/3142696026864602559/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=3142696026864602559" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/3142696026864602559?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/3142696026864602559?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/gNDYWFkrQA4/tfs-error-deleting-file.html" title="TFS Error Deleting a File" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/03/tfs-error-deleting-file.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUBRHs6eyp7ImA9WxZWFEs.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-2414221223509058218</id><published>2008-03-13T22:04:00.001-04:00</published><updated>2008-03-13T22:04:15.513-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-13T22:04:15.513-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="User Group" /><title>Miguel Castro at the Cincinnati .NET User Group</title><content type="html">&lt;p&gt;&lt;a href="http://www.dotnetdude.com/"&gt;Miguel Castro&lt;/a&gt; spoke Wednesday night at the &lt;a href="http://cinnug.org"&gt;Cincinnati .NET User Group&lt;/a&gt; on &lt;em&gt;Sexy Extensibility Patterns&lt;/em&gt;.&amp;#160; Not just extensibility patterns, &lt;em&gt;sexy&lt;/em&gt; extensibility patterns.&amp;#160; Miguel was in town courtesy of &lt;a href="http://www.ineta.org/DesktopDefault.aspx?tabindex=0&amp;amp;tabid=1"&gt;INETA&lt;/a&gt;, and was on his first visit to Ohio.&amp;#160; &lt;/p&gt;  &lt;p&gt;He started the presentation talking about the reasons to consider extensibility.&amp;#160; As a consultant, he leverages extensibility to allow his clients to change and add to applications without needing to touch the main code; using a well designed extensibility mechanism, you can just drop an assembly in a folder and&amp;#160; the new function will be included as part of the application.&amp;#160; To design for extensibility, you need to think about where things may change and create abstractions (interfaces).&amp;#160; So instead of writing code to open a file, read lines from the file, and write those lines to a log file, you should think about an interface to determine the data source, get the data, and write data to the destination.&amp;#160; It's a subtle, but important shift.&lt;/p&gt;  &lt;p&gt;Most of his presentation was centered around a greatly simplified version of a scenario he had with an actual client.&amp;#160; The first version of code he showed was hard coded to open a file, read the lines, then write the lines to a log file.&amp;#160; He then proposed the scenario that the client wanted to read the data from a database rather than a file, so he introduced an interface&amp;#160; that he first implemented using code that was copied and pasted from his hard-coded version.&amp;#160; So it did the same thing, it was just in a separate assembly, and the host program was written so that you could just change an entry in the app.config file and replace the execution logic.&amp;#160; After that, he implemented a version that read from a database rather than a text file.&amp;#160; And he was able to change the function of the host program by just changing the app.config.&amp;#160; He termed this first version of extensibility the provider model and compared it to the many built-in providers for .NET, such as the ASP.NET membership provider and the ADO.NET provider model.&lt;/p&gt;  &lt;p&gt;He called the next extensibility mechanism plug-ins.&amp;#160; Plug-ins allow you to add multiple functions to be performed as opposed to the providers, which allow only one.&amp;#160; For the plug-ins example, he proposed a scenario where after the data was read, but before it was logged, the client wanted to email the data to people and archive the data.&amp;#160; Both operations do something with the data and can be grouped under one interface.&amp;#160; So he implemented two version of the interface and added both to a section in the app.config.&amp;#160; Using this scheme, he could add another action to execute with the data without changing the main processing code. &lt;/p&gt;  &lt;p&gt;The last extensibility mechanism he described was modules, named for its similarity to the ASP.NET &lt;a href="http://msdn2.microsoft.com/en-us/library/zec9k340(VS.71).aspx"&gt;HttpModule&lt;/a&gt;.&amp;#160; Modules provide multiple points of logically related extension points in one class by leveraging events.&amp;#160; Just like &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.ihttpmodule(VS.71).aspx"&gt;IHttpModule&lt;/a&gt;, he created an interface with an Init method that receives a class with several events.&amp;#160; The module simply attaches handlers to the events of interest.&amp;#160;&amp;#160; Then the host code fires the events and lets every module do whatever processing is necessary.&amp;#160;&amp;#160; Using the HttpModule as a model seems like a good idea and I'm going to keep my eye out for opportunities to use it.&lt;/p&gt;  &lt;p&gt;If these techniques sound interesting, I would strongly recommend that you look at the code.&amp;#160; He spent much of the presentation talking about the code, and without repeating it here, I can't do it justice.&amp;#160; You can download the slides and sample code (C# and VB.NET) for the presentation on the &lt;a href="http://www.steelbluesolutions.com/"&gt;Steel Blue Solutions&lt;/a&gt; site (you will need to register, and wait for the email to confirm before you try to log in.)&lt;/p&gt;  &lt;p&gt;The idea of extensibility has definitely been on the mind of the .NET framework developers as evidenced by the addition of the &lt;a href="http://msdn2.microsoft.com/en-us/library/bb384241.aspx"&gt;Add-Ins and Extensibility&lt;/a&gt; features in the .NET 3.5 framework.&amp;#160; I've been working with some of these features in WPF, and once you get past the amount of plumbing code that needs to be written, it seems to work well.&amp;#160; It's great to see a mechanism in the framework itself to accommodate extensibility.&lt;/p&gt;  &lt;p&gt;Back in 2003, I actually did several presentations using similar techniques for both Delphi and .NET 1.0.&amp;#160; You can download a Word doc and code for the .NET portion &lt;a href="http://www.wirtley.net/Presentations/Files/CreatingExtensibleApps-CincyPG-11-2003.zip"&gt;here&lt;/a&gt;.&amp;#160; You can check out the &lt;a href="http://www.wirtley.net/Presentations/"&gt;presentations page&lt;/a&gt; on my site to see the other related presentations if you're interested in the Delphi code.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-2414221223509058218?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=NrSoZz98pdA:prth0cmiF3A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=NrSoZz98pdA:prth0cmiF3A:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=NrSoZz98pdA:prth0cmiF3A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=NrSoZz98pdA:prth0cmiF3A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=NrSoZz98pdA:prth0cmiF3A:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=NrSoZz98pdA:prth0cmiF3A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=NrSoZz98pdA:prth0cmiF3A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/NrSoZz98pdA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/2414221223509058218/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=2414221223509058218" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/2414221223509058218?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/2414221223509058218?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/NrSoZz98pdA/miguel-castro-at-cincinnati-net-user.html" title="Miguel Castro at the Cincinnati .NET User Group" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/03/miguel-castro-at-cincinnati-net-user.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEBQHw4eSp7ImA9WxZWEkU.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-6261347201485403159</id><published>2008-03-11T22:24:00.001-04:00</published><updated>2008-03-11T22:24:11.231-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-11T22:24:11.231-04:00</app:edited><title>LinkedDayton Meeting</title><content type="html">&lt;p&gt;I recently ran across someone on &lt;a href="http://linkedin.com"&gt;LinkedIn&lt;/a&gt; belonging to a &lt;a href="http://www.linkedin.com/groupInvitation?groupID=41134&amp;amp;sharedKey=1AD2C8243AE3"&gt;LinkedCincinnati&lt;/a&gt; group and after a little searching also found a &lt;a href="http://www.linkedin.com/groupInvitation?groupID=45573&amp;amp;sharedKey=0E470F7A8907"&gt;LinkedDayton&lt;/a&gt; group.&amp;#160; Each has an associated Yahoo group for messages: &lt;a href="http://groups.yahoo.com/group/LinkedDayton/"&gt;Dayton&lt;/a&gt; and &lt;a href="http://groups.yahoo.com/group/LinkedCincinnati/"&gt;Cincinnati&lt;/a&gt;.&amp;#160; The Yahoo groups have been a mixed bag, some messages are people introducing themselves or their businesses while many are people seeking or offering opportunities.&lt;/p&gt;  &lt;p&gt;Tonight I attended a networking event organized by the LinkedDayton group, which was held in the community room at the Panera Bread near the University of Dayton.&amp;#160; It was a little different than the typical technical user group meeting I attend.&amp;#160; First of all, there was no free food.&amp;#160; And when they announced that it was time to eat, nobody ate, they just kept talking.&amp;#160; Very different than developer groups.&lt;/p&gt;  &lt;p&gt;Other than the culture shock, it was a good event.&amp;#160; They didn't say how many people were there, but it it seemed like about thirty; this was the second group meeting, and they had nine people at the first one. As you might expect, the crowd was full of sales people and recruiters, but also had a number of &amp;quot;regular people&amp;quot; too.&amp;#160; If you're looking for a new opportunity, it's probably a good place to be.&amp;#160; I chatted with a variety of people, including a few technical types.&amp;#160; Most of the meeting was devoted to people talking amongst themselves, but there was a little presentation from the group leaders, including input from a couple attendees on changing careers.&amp;#160; There was also a number of questions and discussion from group attendees.&lt;/p&gt;  &lt;p&gt;The next event will be April 22 at a location to be determined.&amp;#160; You can join the &lt;a href="http://www.linkedin.com/groupInvitation?groupID=45573&amp;amp;sharedKey=0E470F7A8907"&gt;LinkedDayton&lt;/a&gt; group to be notified when the location is finalized.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-6261347201485403159?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=qJg3PbchBjk:XKSSXetKRL4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=qJg3PbchBjk:XKSSXetKRL4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=qJg3PbchBjk:XKSSXetKRL4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=qJg3PbchBjk:XKSSXetKRL4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=qJg3PbchBjk:XKSSXetKRL4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=qJg3PbchBjk:XKSSXetKRL4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=qJg3PbchBjk:XKSSXetKRL4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/qJg3PbchBjk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/6261347201485403159/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=6261347201485403159" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/6261347201485403159?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/6261347201485403159?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/qJg3PbchBjk/linkeddayton-meeting.html" title="LinkedDayton Meeting" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/03/linkeddayton-meeting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEICRXsyfyp7ImA9WxZWEkg.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-3210261385789999907</id><published>2008-03-11T13:29:00.001-04:00</published><updated>2008-03-11T13:29:24.597-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-11T13:29:24.597-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="User Group" /><title>Upcoming Cincinnati User Group Meetings</title><content type="html">&lt;p&gt;There are a couple out of town speakers visiting our Cincinnati user groups in the next couple of days.&amp;#160; Tonight (Tuesday March 11), &lt;a href="http://www.ciobriefings.com/DesktopDefault.aspx"&gt;Craig Utley&lt;/a&gt; will be speaking at the &lt;a href="http://cincysql.org/"&gt;BI (Business Intelligence) SIG&lt;/a&gt; of the &lt;a href="http://cincysql.org/"&gt;Cincinnati SQL User Group&lt;/a&gt;.&amp;#160;&amp;#160; He will speaking about Performance Point Server 2008.&lt;/p&gt;  &lt;p&gt;On Wednesday March 12, the &lt;a href="http://cinnug.org"&gt;Cincinnati .NET User Group&lt;/a&gt; will host &lt;a href="http://www.ineta.org/DesktopDefault.aspx?tabindex=0&amp;amp;tabid=1"&gt;INETA&lt;/a&gt; speaker&amp;#160; &lt;a href="http://www.dotnetdude.com/"&gt;Miguel Castro&lt;/a&gt; whose topic will be&amp;#160; &lt;em&gt;Sexy Extensibility Patterns&lt;/em&gt;.&amp;#160; If you're thinking that it's not the &amp;quot;normal&amp;quot; time for a .NET user group meeting, you're right.&amp;#160; This is a special meeting date.&amp;#160; Should be a good meeting.&amp;#160; I hope to see you there.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-3210261385789999907?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=265x9WuUDFo:ztLT-W3k2nM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=265x9WuUDFo:ztLT-W3k2nM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=265x9WuUDFo:ztLT-W3k2nM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=265x9WuUDFo:ztLT-W3k2nM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=265x9WuUDFo:ztLT-W3k2nM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=265x9WuUDFo:ztLT-W3k2nM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=265x9WuUDFo:ztLT-W3k2nM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/265x9WuUDFo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/3210261385789999907/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=3210261385789999907" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/3210261385789999907?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/3210261385789999907?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/265x9WuUDFo/upcoming-cincinnati-user-group-meetings.html" title="Upcoming Cincinnati User Group Meetings" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/03/upcoming-cincinnati-user-group-meetings.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04AQXY8eip7ImA9WxZXF08.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-7070572941649435614</id><published>2008-03-05T07:59:00.001-05:00</published><updated>2008-03-05T07:59:00.872-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-03-05T07:59:00.872-05:00</app:edited><title>Always makes me chuckle</title><content type="html">&lt;p&gt;It always makes me chuckle when I see something like this from a Microsoft site:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Active Server Pages error 'ASP 0131'&lt;/p&gt;    &lt;p&gt;Disallowed Parent Path&lt;/p&gt;    &lt;p&gt;/downloads/Default.asp, line 15&lt;/p&gt;    &lt;p&gt;The Include file '../downloads.html' cannot contain '..' to indicate the parent directory. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;which is what just happened when I clicked on the &lt;a href="http://www.arcready.com/downloads/"&gt;downloads&lt;/a&gt; link on the &lt;a href="http://www.arcready.com/"&gt;ArcReady&lt;/a&gt; site. ( I was looking for the slides after reading &lt;a href="http://www.linkedin.com/in/andyerickson"&gt;Andy Erickson's&lt;/a&gt; excellent &lt;a href="http://cincinnatirecruiter.wordpress.com/2008/03/05/february-arcready-the-microsoft-services-engine/"&gt;summary&lt;/a&gt;.)&amp;#160; Now who knows if someone at Microsoft maintains this site, but after about a million recent security presentations on how you shouldn't leak this kind of error information, it's amusing when it arises.&amp;#160; I guess the good news is that they have disallowed parent paths.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-7070572941649435614?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=996xMd6QgHA:V1NOXZaSOVQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=996xMd6QgHA:V1NOXZaSOVQ:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=996xMd6QgHA:V1NOXZaSOVQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=996xMd6QgHA:V1NOXZaSOVQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=996xMd6QgHA:V1NOXZaSOVQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=996xMd6QgHA:V1NOXZaSOVQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=996xMd6QgHA:V1NOXZaSOVQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/996xMd6QgHA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/7070572941649435614/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=7070572941649435614" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/7070572941649435614?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/7070572941649435614?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/996xMd6QgHA/always-makes-me-chuckle.html" title="Always makes me chuckle" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/03/always-makes-me-chuckle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMESXYycSp7ImA9WxZXEEU.&quot;"><id>tag:blogger.com,1999:blog-36766850.post-7248217333896745391</id><published>2008-02-26T21:46:00.001-05:00</published><updated>2008-02-26T21:46:48.899-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-26T21:46:48.899-05:00</app:edited><title>SQL User Group Wrap Up</title><content type="html">&lt;p&gt;At Tuesday's &lt;a href="http://cincysql.org/"&gt;Cincinnati SQL User Group&lt;/a&gt; meeting, Maria Stone of &lt;a href="http://www.sds-consulting.com/"&gt;Strategic Data Systems (SDS)&lt;/a&gt; gave a presentation titled &lt;em&gt;Advanced Transact-SQL Programming in SQL Server 2005&lt;/em&gt;.&amp;#160; As you might guess from the title, it was a detailed, low-level presentation.&amp;#160; She covered five topics that she described as most useful in day-to-day work: Try-Catch, recursive queries, temporal data, ranking and pivots.&lt;/p&gt;  &lt;p&gt;Structured error handling, or Try-Catch has been sorely needed in T-SQL for quite some time and is a capability we software developers just assume will be in the language we're using.&amp;#160; Prior to SQL 2005, to ensure that stored procedures ran successfully, you needed to check after every statement for failure.&amp;#160; Beginning with 2005, you can just use the Try-Catch statement.&lt;/p&gt;  &lt;p&gt;She also discussed using the XACT_STATE function to determine if there is a current transaction and whether it can be committed. Using XACT_STATE you can more specifically control what happens when a failure occurs.&lt;/p&gt;  &lt;p&gt;Maria next discussed recursive queries or Common Table Expressions.&amp;#160; She gave several examples but the most illuminating was writing a query to determine the number of rivets necessary to build a car.&amp;#160; The sample table she used had three columns: part, subpart, and quantity.&amp;#160; Using a Common Table Expression, she wrote one query to recursively join the table to itself and total the number of each item necessary to construct the car.&lt;/p&gt;  &lt;p&gt;She then addressed potential logic and performance issues with temporal data, or date-time columns.&amp;#160; She identified a common mistake that developers make, which is converting a date-time to a string in a where clause.&amp;#160; The primary issue with this is performance because it will likely prevent SQL from using an index.&amp;#160; Rather than converting date-time value to strings, she recommends using the binary comparisons provided by the BETWEEN, less than and greater than operators.&amp;#160; She also talked about the common logic error of assuming a date-time value stores only a date and not a time.&amp;#160; Every date-time value in SQL has an associated time, whether you specify one or not.&amp;#160;&amp;#160; So if you're trying to select all of the rows for a particular date, you need to do something like:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;SELECT * FROM foo WHERE SomeDate BETWEEN '2/13/2008' AND '2/14/2008' &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;to select all rows with SomeDate values falling on 2/13.&lt;/p&gt;  &lt;p&gt;Maria next discussed the ranking functions: RANK, DENSE_RANK, NTILE, and ROW_NUMBER.&amp;#160; RANK and DENSE_RANK are similar and assign a rank to a row.&amp;#160; Both allow ties.&amp;#160; The difference between them is that DENSE_RANK guarantees consecutive ranks (without gaps), and RANK does not.&amp;#160; NTILE can be used to group rows in percentiles.&amp;#160; And ROW_NUMBER does what you would think, which is to number rows consecutively (which means there are no ties.)&lt;/p&gt;  &lt;p&gt;The last item Maria covered was the PIVOT and UNPIVOT commands, both of which are used to translate columns to rows and rows to columns.&amp;#160; The PIVOT command converts normalized data to denormalized data and UNPIVOT converts denormalized data to normalized data.&amp;#160; PIVOT does what has ben made (in)famous by Excel Pivot Tables, in a more static way.&amp;#160; You can use UNPIVOT to normalize data from a table that has months for columns and return one row for each month.&lt;/p&gt;  &lt;p&gt;The presentation and supporting sample SQL files should soon be available on the &lt;a href="http://cincysql.org/"&gt;Cincinnati SQL User Group&lt;/a&gt; site.&amp;#160; They also announced that&amp;#160; &lt;a href="http://www.ciobriefings.com"&gt;Craig Utley&lt;/a&gt; will be speaking at the Business Intelligence (BI) SIG on March 14.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36766850-7248217333896745391?l=joewirtley.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=EWTgF3MtSdM:r2bWdqKSOqI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=EWTgF3MtSdM:r2bWdqKSOqI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=EWTgF3MtSdM:r2bWdqKSOqI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=EWTgF3MtSdM:r2bWdqKSOqI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=EWTgF3MtSdM:r2bWdqKSOqI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/JoeWirtley?a=EWTgF3MtSdM:r2bWdqKSOqI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/JoeWirtley?i=EWTgF3MtSdM:r2bWdqKSOqI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoeWirtley/~4/EWTgF3MtSdM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://joewirtley.blogspot.com/feeds/7248217333896745391/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=36766850&amp;postID=7248217333896745391" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/7248217333896745391?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/36766850/posts/default/7248217333896745391?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/JoeWirtley/~3/EWTgF3MtSdM/sql-user-group-wrap-up.html" title="SQL User Group Wrap Up" /><author><name>Joe Wirtley</name><uri>http://www.blogger.com/profile/11883071348754875431</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="03166978429645140362" /></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://joewirtley.blogspot.com/2008/02/sql-user-group-wrap-up.html</feedburner:origLink></entry></feed>
