<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/style/rss/rss_feed.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="/style/rss/rss_feed.css" type="text/css" media="screen" ?><rss version="2.0"><channel><title>Clipmarks | travislaborde's 'programming' clips</title><link>http://clipmarks.com/clipper/travislaborde/tag/programming/</link><feedUrl>http://rss.clipmarks.com/clipper/travislaborde/tag/programming/</feedUrl><ttl>15</ttl><description>Clip, tag and save information that's important to you. Bookmarks save entire pages...Clipmarks save the specific content that matters to you!</description><language>en-us</language><item><title>Debug an EXE without "Attach To Process"</title><link>http://clipmarks.com/clipmark/C87DA5E2-610C-4543-8CFD-E9055AC1B095/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  nice! &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://blogs.msdn.com/saraford/archive/2008/08/21/did-you-know-you-can-debug-an-executable-that-isn-t-a-part-of-a-visual-studio-project-without-using-tools-attach-to-process-296.aspx" title="http://blogs.msdn.com/saraford/archive/2008/08/21/did-you-know-you-can-debug-an-executable-that-isn-t-a-part-of-a-visual-studio-project-without-using-tools-attach-to-process-296.aspx"&gt;blogs.msdn.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H5 class="posthead pageTitle"&gt;Did you know… You can debug an executable that isn’t a part of a Visual Studio project without using Tools – Attach to Process? - #296 &lt;/H5&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;Go to &lt;STRONG&gt;File – Open Project &lt;/STRONG&gt;and give it the name of the executable. Yes, even thought it isn’t a “project” per se, like a .proj or .sln, the dialog will accept an executable.&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;img src="http://clipmarks.com/image_cache/travislaborde/512/B1D754C2-E7FD-4C13-8079-0C6C0A2DC55A.png" alt="Opening notepad.exe as a VS project" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;Now you’ll see the executable opened in Solution Explorer as a project.&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;img src="http://clipmarks.com/image_cache/travislaborde/512/33B63604-A969-4517-8BE5-912CFAF8F111.png" alt="notepad in solution explorer as a project" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;Just hit F5 as usual to start the executable.&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/.net/" rel="tag"&gt;.net&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://blogs.msdn.com/saraford/archive/2008/08/21/did-you-know-you-can-debug-an-executable-that-isn-t-a-part-of-a-visual-studio-project-without-using-tools-attach-to-process-296.aspx</clipSource><pubDate>Fri, 22 Aug 2008 13:00:05 GMT</pubDate></item><item><title>Hidden Surprises in .NET 3.5 Service Pack 1</title><link>http://clipmarks.com/clipmark/19C98FFD-1BC3-42B9-B5FF-DC01396E757E/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://geekswithblogs.net/LessonsLearned/archive/2008/08/21/hidden-surprises-in-.net-3.5-service-pack-1.aspx" title="http://geekswithblogs.net/LessonsLearned/archive/2008/08/21/hidden-surprises-in-.net-3.5-service-pack-1.aspx"&gt;geekswithblogs.net&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;DIV class="postTitle"&gt;
		&lt;A href="http://geekswithblogs.net/LessonsLearned/archive/2008/08/21/hidden-surprises-in-.net-3.5-service-pack-1.aspx" title="Title of this entry." id="viewpost_ascx_TitleUrl"&gt;Hidden Surprises in .NET 3.5 Service Pack 1&lt;/A&gt;
	&lt;/DIV&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;PRE&gt;Could not load type 'System.Web.UI.ScriptReferenceBase' from assembly &lt;BR /&gt;'System.Web.Extensions, Version=3.5.0.0, Culture=neutral, &lt;BR /&gt;PublicKeyToken=31bf3856ad364e35'.&lt;/PRE&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;DIV&gt;
You are stymied. You've never heard of the class; you certainly don't use it in your code. You use &lt;A target="_blank" href="http://msdn.microsoft.com/en-us/library/system.web.ui.scriptreference.aspx"&gt;ScriptReference&lt;/A&gt;, of course; who doesn't? But what's &lt;A target="_blank" href="http://msdn.microsoft.com/en-us/library/system.web.ui.scriptreferencebase.aspx"&gt;ScriptReferenceBase&lt;/A&gt;? Going to the documentation for ScriptReferenceBase, you learn that it is the parent class of ScriptReference and &lt;A target="_blank" href="http://msdn.microsoft.com/en-us/library/system.web.ui.compositescriptreference.aspx" id="ctl00_rs1_mainContentContainer_ctl29"&gt;&lt;SPAN class="nu"&gt;&lt;/SPAN&gt;CompositeScriptReference&lt;/A&gt;. What? No it isn't! The documentation for ScriptReference clearly indicates that it's parent is &lt;A target="_blank" id="ctl00_rs1_mainContentContainer_ctl108" href="http://msdn.microsoft.com/en-us/library/system.object.aspx"&gt;System&lt;SPAN class="cs"&gt;&lt;/SPAN&gt;&lt;SPAN class="vb"&gt;&lt;/SPAN&gt;&lt;SPAN class="cpp"&gt;&lt;/SPAN&gt;&lt;SPAN class="nu"&gt;.&lt;/SPAN&gt;Object&lt;/A&gt;! What's going on here?&lt;/DIV&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;DIV&gt;
Then you notice the Version Information for ScriptReferenceBase: "Supported in: 3.5 SP1". It's a new class for Service Pack 1. It doesn't exist in .NET 3.5 and the documentation for ScriptReference is clearly stale. &lt;/DIV&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/asp.net/" rel="tag"&gt;asp.net&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/2008/" rel="tag"&gt;2008&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://geekswithblogs.net/LessonsLearned/archive/2008/08/21/hidden-surprises-in-.net-3.5-service-pack-1.aspx</clipSource><pubDate>Fri, 22 Aug 2008 12:14:21 GMT</pubDate></item><item><title> Favorite Programming Quotes</title><link>http://clipmarks.com/clipmark/6FDD3731-FED1-4206-ACD0-3F9588233D0F/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://www.juixe.com/techknow/index.php/2008/08/17/favorite-programming-quotes/" title="http://www.juixe.com/techknow/index.php/2008/08/17/favorite-programming-quotes/"&gt;www.juixe.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H3 id="post-415" class="entrytitle"&gt; &lt;A title="Favorite Programming Quotes" rel="bookmark" href="http://www.juixe.com/techknow/index.php/2008/08/17/favorite-programming-quotes/"&gt;
      Favorite Programming Quotes      &lt;/A&gt; &lt;/H3&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.&lt;BR /&gt;
&lt;A href="http://en.wikiquote.org/wiki/Brian_W._Kernighan"&gt;Brian W. Kernighan&lt;/A&gt;
&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;
The goal of Computer Science is to build something that will last at least until we’ve finished building it.&lt;BR /&gt;
Anonymous Consultant
&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/humor/" rel="tag"&gt;humor&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://www.juixe.com/techknow/index.php/2008/08/17/favorite-programming-quotes/</clipSource><pubDate>Wed, 20 Aug 2008 13:02:13 GMT</pubDate></item><item><title>Singletons are Pathological Liars</title><link>http://clipmarks.com/clipmark/43FBC791-C332-4085-9F35-536A0C862517/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://googletesting.blogspot.com/2008/08/by-miko-hevery-so-you-join-new-project.html" title="http://googletesting.blogspot.com/2008/08/by-miko-hevery-so-you-join-new-project.html"&gt;googletesting.blogspot.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H3 class="post-title"&gt;Singletons are Pathological Liars&lt;/H3&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;So you join a new project, which has an extensive mature code base. Your new lead asks you to implement a new feature, and, as a good developer, you start by writing a test. But since you are new to the project, you do a lot of exploratory "What happens if I execute this method" tests. You start by writing this:&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;PRE&gt;testCreditCardCharge() {&lt;BR /&gt;CreditCard c =  new CreditCard(&lt;BR /&gt;  "1234 5678 9012 3456", 5, 2008);&lt;BR /&gt;c.charge(100);&lt;BR /&gt;}&lt;/PRE&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;This code:&lt;/P&gt; &lt;UL&gt;&lt;LI&gt;Only works when you run as part of the suite.&lt;/LI&gt;&lt;LI&gt;When run in isolation, throws NullPointerException.&lt;/LI&gt;&lt;LI&gt;When you get your credit card bill, you are out $100 for every time the test runs.&lt;/LI&gt;&lt;/UL&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://googletesting.blogspot.com/2008/08/by-miko-hevery-so-you-join-new-project.html</clipSource><pubDate>Wed, 20 Aug 2008 12:54:15 GMT</pubDate></item><item><title>Checking Request is Synchronous or Asynchronous in ASP.NET</title><link>http://clipmarks.com/clipmark/C5D3A32A-2E25-4AB0-B8BD-1A5EC3A27D8C/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://www.codeproject.com/script/Articles/Article.aspx?aid=28486" title="http://www.codeproject.com/script/Articles/Article.aspx?aid=28486"&gt;www.codeproject.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;SPAN class="ArticleTopTitle" id="ctl00_ArticleTopHeader_ArticleTitle"&gt;Checking Request is Synchronous or Asynchronous in ASP.NET&lt;/SPAN&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;In case Asp.Net 2.0 and AJAX, when any exception thrown while execution of asynchronous request, it is catched in "&lt;CODE&gt;ScriptManager1_AsyncPostBackError&lt;/CODE&gt;" event, then AJAX framework handles that exception and shows java script alert box to user. No event (&lt;CODE&gt;Application_Error&lt;/CODE&gt;) from Global.asax file gets fired.&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;But, in Asp.Net 3.5 AJAX they changed exception handling mechanism and now both events "&lt;CODE&gt;ScriptManager1_AsyncPostBackError&lt;/CODE&gt;" and &lt;CODE&gt;Application_Error &lt;/CODE&gt;from Global.asax gets fired.&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;&lt;EM&gt;Issue&lt;/EM&gt;: Now, if exception occurs in case of asynchronous request, application tries to redirect user to generic error page instead of showing JavaScript alert and ends up in another exception as &lt;CODE&gt;Redirect &lt;/CODE&gt;is not allowed in asynchronous request. &lt;EM&gt;Ha.... exception within Application_Error method&lt;/EM&gt; ;).&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;img src="http://clipmarks.com/image_cache/travislaborde/512/2D90D022-81E1-42D0-95B8-F113DAB23CA9.jpg" alt="image" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/asp.net/" rel="tag"&gt;asp.net&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/2008/" rel="tag"&gt;2008&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://www.codeproject.com/script/Articles/Article.aspx?aid=28486</clipSource><pubDate>Tue, 12 Aug 2008 18:05:44 GMT</pubDate></item><item><title>.NET Framework 3.5 SP1 and Visual Studio 2008 SP1 download and troubleshooting links</title><link>http://clipmarks.com/clipmark/CD5108F0-FFA6-41E5-9BF9-58711E3F1157/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://blogs.msdn.com/astebner/archive/2008/08/11/8849574.aspx" title="http://blogs.msdn.com/astebner/archive/2008/08/11/8849574.aspx"&gt;blogs.msdn.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H2&gt;.NET Framework 3.5 SP1 and Visual Studio 2008 SP1 download and troubleshooting links&lt;/H2&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;&lt;STRONG&gt;SP1 download links&lt;/STRONG&gt;&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;UL&gt; &lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7"&gt;.NET Framework 3.5 SP1 web download bootstrapper&lt;/A&gt;&lt;/LI&gt; &lt;LI&gt;&lt;A href="http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe"&gt;.NET Framework 3.5 SP1 full install package&lt;/A&gt;&lt;/LI&gt; &lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E"&gt;Visual Studio 2008 SP1&lt;/A&gt;&lt;/LI&gt; &lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F3FBB04E-92C2-4701-B4BA-92E26E408569"&gt;Visual Studio 2008 Express Editions with SP1 web download bootstrappers&lt;/A&gt;&lt;/LI&gt; &lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9E40A5B6-DA41-43A2-A06D-3CEE196BFE3D"&gt;Visual Studio Team System 2008 Team Foundation Server SP1&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/.net/" rel="tag"&gt;.net&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/2008/" rel="tag"&gt;2008&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://blogs.msdn.com/astebner/archive/2008/08/11/8849574.aspx</clipSource><pubDate>Tue, 12 Aug 2008 12:03:29 GMT</pubDate></item><item><title>NHibernate Worst Practice - SQL</title><link>http://clipmarks.com/clipmark/1BAE74F6-36BA-474F-8AAD-9F2BE0DF6776/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  exactly why I'm not an NHibernate kind of guy &lt;img src="http://clipmarks.com/images/icons/smilies/happy.gif?r=2" style="margin-bottom: -4px;" alt="" /&gt;&lt;br/&gt; &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://ayende.com/Blog/archive/2008/08/07/NHibernate-Worst-Practice--SQL.aspx" title="http://ayende.com/Blog/archive/2008/08/07/NHibernate-Worst-Practice--SQL.aspx"&gt;ayende.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;
			&lt;A href="http://ayende.com/Blog/archive/2008/08/07/NHibernate-Worst-Practice--SQL.aspx" title="Title of this entry." class="TitleLinkStyle" id="viewpost_ascx_TitleUrl"&gt;NHibernate Worst Practice - SQL&lt;/A&gt;
		&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;The question just came up in the NHibernate dev list, and I wanted to be as clear about this as possible.&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;If you can at all avoid it, do so. The use of SQL in NHibernate should be strongly discouraged. It is there to give you the ability to use the proprietary features of your database, and as a way to avoid the abstraction if you &lt;EM&gt;really&lt;/EM&gt; need that.&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://ayende.com/Blog/archive/2008/08/07/NHibernate-Worst-Practice--SQL.aspx</clipSource><pubDate>Thu, 07 Aug 2008 13:02:04 GMT</pubDate></item><item><title>Writing Testable Code</title><link>http://clipmarks.com/clipmark/8602877C-712A-47FE-9E5C-76392CB91EB9/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  Great article.  I can't emphasize enough how true I think the clipped lines are &lt;img src="http://clipmarks.com/images/icons/smilies/happy.gif?r=2" style="margin-bottom: -4px;" alt="" /&gt;  Very well put!&lt;br/&gt; &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://googletesting.blogspot.com/2008/08/by-miko-hevery-so-you-decided-to.html" title="http://googletesting.blogspot.com/2008/08/by-miko-hevery-so-you-decided-to.html"&gt;googletesting.blogspot.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H3 class="post-title"&gt;Writing Testable Code&lt;/H3&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;there are no tricks to writing tests, there are only tricks to writing testable code.&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;If I gave you testable code you would have no problems writing a test for it. But, somehow you look at your code and you say, "I understand how to write tests for your code, but my code is different &lt;EM&gt;&lt;INSERT _moz-userdefined=""&gt;&lt;/INSERT&gt;&lt;/EM&gt;".&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;Well your code is different because you violated one or more of the following things.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/testing/" rel="tag"&gt;testing&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://googletesting.blogspot.com/2008/08/by-miko-hevery-so-you-decided-to.html</clipSource><pubDate>Thu, 07 Aug 2008 12:48:06 GMT</pubDate></item><item><title>Speaking at Connecticut Code Camp 8/16/2008</title><link>http://clipmarks.com/clipmark/5A89FCA4-00F7-4DD6-90D7-6ACD35AC65F4/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  Wish me luck!  This will be my first time speaking away from "the home crowd!"  &lt;br/&gt;&lt;br/&gt; &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://www.datadeluxe.com/News.aspx" title="http://www.datadeluxe.com/News.aspx"&gt;www.datadeluxe.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H4&gt;
						&lt;A href="http://www.datadeluxe.com/16/section.aspx/7" id="p_ctl01_rptArticles_ctl00_hplTitle"&gt;Speaking at Connecticut Code Camp 8/16/2008&lt;/A&gt;&lt;/H4&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;DIV id="p_ctl01_rptArticles_ctl00_pnlContent"&gt;&lt;DIV&gt;
		
							I will be at the &lt;A href="http://www.ctdotnet.com/"&gt;Connecticut Code Camp&lt;/A&gt; on 8/16/2008 presenting the same talk that went so well at the last &lt;A href="http://www.phillydotnet.org"&gt;Philly.net&lt;/A&gt; Code Camp: SRP / DI / IOC : Don't Leave Sub Main Without Them!&lt;/DIV&gt;
&lt;BR /&gt;&lt;DIV&gt;
This talk is a very gentle introduction to:&lt;/DIV&gt;
&lt;BR /&gt;
The Single Responsibility Principle&lt;BR /&gt;
Dependency Injection&lt;BR /&gt;&lt;DIV&gt;
Inversion of Control&lt;/DIV&gt;
&lt;BR /&gt;&lt;DIV&gt;
These great tastes taste GREAT together, and I'm very passionate about "spreading th word!"&lt;/DIV&gt;
&lt;BR /&gt;
In this talk we will go over what these things ARE, and WHY you should be using them.  Rather than dive into one of the existing "frameworks" such as Spring.NET, Castle, or Unity, we will build our own right there during the talk and demonstrate how it can improve your code.
					
	&lt;/DIV&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://www.datadeluxe.com/News.aspx</clipSource><pubDate>Tue, 05 Aug 2008 11:52:11 GMT</pubDate></item><item><title>Logging, Auditing and Alerts</title><link>http://clipmarks.com/clipmark/4777F30F-EE44-49B9-B74B-C9D46DB9BA25/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  I couldn't agree more.  Short, but good article.&lt;br/&gt; &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://ayende.com/Blog/archive/2008/08/02/Logging-Auditing-and-Alerts.aspx" title="http://ayende.com/Blog/archive/2008/08/02/Logging-Auditing-and-Alerts.aspx"&gt;ayende.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;
			&lt;A href="http://ayende.com/Blog/archive/2008/08/02/Logging-Auditing-and-Alerts.aspx" title="Title of this entry." class="TitleLinkStyle" id="viewpost_ascx_TitleUrl"&gt;Logging, Auditing and Alerts&lt;/A&gt;
		&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;Logging is for troubleshooting, nothing else.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://ayende.com/Blog/archive/2008/08/02/Logging-Auditing-and-Alerts.aspx</clipSource><pubDate>Mon, 04 Aug 2008 13:19:18 GMT</pubDate></item><item><title>Unit Test Boundaries</title><link>http://clipmarks.com/clipmark/77FCF1B5-EF8E-494A-A746-9C09119450FA/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  Very well written article, with great comments too. &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://haacked.com/archive/2008/07/22/unit-test-boundaries.aspx" title="http://haacked.com/archive/2008/07/22/unit-test-boundaries.aspx"&gt;haacked.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H1&gt;&lt;A href="http://haacked.com/archive/2008/07/22/unit-test-boundaries.aspx" title="Title of this entry." id="viewpost_ascx_TitleUrl"&gt;Unit Test Boundaries&lt;/A&gt;&lt;/H1&gt;&lt;/div&gt;&lt;/div&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://haacked.com/archive/2008/07/22/unit-test-boundaries.aspx" title="http://haacked.com/archive/2008/07/22/unit-test-boundaries.aspx"&gt;haacked.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;One principle to follow when writing a unit test is that a unit test should ideally &lt;A href="http://www.williamcaputo.com/archives/000019.html" title="TDD Pattern: Do not Cross Boundaries"&gt;not cross boundaries&lt;/A&gt;.&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;img src="http://clipmarks.com/image_cache/travislaborde/512/49DAABF3-DFC7-4C5A-B9DD-067307A7B187.jpg" alt="965948_51171615" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;BLOCKQUOTE&gt;   &lt;P&gt;A test is not a unit test if: &lt;/P&gt;    &lt;UL&gt;     &lt;LI&gt;It talks to the database &lt;/LI&gt;      &lt;LI&gt;It communicates across the network &lt;/LI&gt;      &lt;LI&gt;It touches the file system &lt;/LI&gt;      &lt;LI&gt;It can’t run at the same time as any of your other unit tests &lt;/LI&gt;      &lt;LI&gt;You have to do special things to your environment (such as editing config files) to run it &lt;/LI&gt;   &lt;/UL&gt;    &lt;P&gt;Tests that do these things aren’t bad. Often they are worth writing, and they can be written in a unit test harness. However, it is important to be able to separate them from true unit tests so that we can keep a set of tests that we can run fast whenever we make our changes.&lt;/P&gt; &lt;/BLOCKQUOTE&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;having the discipline to focus on the unit being tested can help shape your code so that it follows the &lt;A href="http://en.wikipedia.org/wiki/Single_responsibility_principle" title="Single Responsibility Principle"&gt;single responsibility principle&lt;/A&gt; (SRP for short).&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://haacked.com/archive/2008/07/22/unit-test-boundaries.aspx</clipSource><pubDate>Wed, 23 Jul 2008 12:30:25 GMT</pubDate></item><item><title>Does object orientation really work?</title><link>http://clipmarks.com/clipmark/380EBCF6-139E-41E2-9185-F867EA2AB60C/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  not sure I agree with all of this but...   &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://www.ckwop.me.uk/Is-Object-Orientation-Working.html" title="http://www.ckwop.me.uk/Is-Object-Orientation-Working.html"&gt;www.ckwop.me.uk&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H1&gt;Does object orientation really work?&lt;/H1&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;	
		The vast majority of software that people write inside a business talks to a database. Yet object orientated 
		programming does not gel well with databases. The code that looks clean and simple in a modern object 
		orientated program looks positively terrible when you look at the traffic that code causes at the database.
	&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;
		It's called the &lt;A href="http://en.wikipedia.org/wiki/Object-Relational_impedance_mismatch"&gt;object-relational impedence mismatch&lt;/A&gt;. The often aired solution is to use some sort of persistence framework to map your classes 
		to a collection of database tables. There are a variety of packages that do this: NHibenate, Gentle.Net, 
		JPersist etc.
	&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;
		The problem is that none of them work too well.&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;
		Solving the impedance mismatch problem is the computer science equivalent of the perpetual motion machine. 
		You can't get it to work because it's impossible; they are simply incompatible ways of working.
	&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://www.ckwop.me.uk/Is-Object-Orientation-Working.html</clipSource><pubDate>Mon, 14 Jul 2008 12:13:02 GMT</pubDate></item><item><title>Speeding Up FireFox When Using the ASP.NET Development Server from Localhost</title><link>http://clipmarks.com/clipmark/FA7D7AF3-83A2-44C2-813A-B0FE5BD2AA94/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://scottonwriting.net/sowblog/posts/13367.aspx#13368" title="http://scottonwriting.net/sowblog/posts/13367.aspx#13368"&gt;scottonwriting.net&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H2&gt;
			&lt;A href="http://scottonwriting.net/sowblog/posts/13367.aspx" id="_ctl0__ctl4_TitleUrl"&gt;Speeding Up FireFox When Using the ASP.NET Development Server from Localhost&lt;/A&gt;
		&lt;/H2&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;The problem was I noticed that Firefox was loading pages &lt;EM&gt;very slowly&lt;/EM&gt;. I'd visit a site through localhost (via the &lt;A href="http://msdn.microsoft.com/en-us/library/58wxa9w5.aspx"&gt;ASP.NET Development Web Server&lt;/A&gt;) and pages would take several seconds to load.&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;Firebug will show you the total number of network resources downloaded when visiting a page, along with the time it took to download each.&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;img src="http://clipmarks.com/image_cache/travislaborde/512/507B31E8-0355-4863-B66A-CD5C87CC0922.gif" alt="Firebug" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;Each resource - from the 4KB HTML fiel to the 7KB JPG file, was taking close to a FULL second to retrieve!&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;I next opened Internet Explorer - the same pages loaded instantaneously.&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;Turns out that there is a known issue with Firefox's IPv6 support and the ASP.NET Web Development Server that introduces these lengthy delays.&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;Consequently, to fix this problem of slow response times when visiting localhost using Firefox, either set the network.dns.diableIPv6 configuration property to true &lt;EM&gt;or&lt;/EM&gt; set the &lt;STRONG&gt;network.dns.ipv4OnlyDomains&lt;/STRONG&gt; configuration property to “localhost”.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/asp.net/" rel="tag"&gt;asp.net&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/firefox/" rel="tag"&gt;firefox&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://scottonwriting.net/sowblog/posts/13367.aspx#13368</clipSource><pubDate>Thu, 10 Jul 2008 12:26:05 GMT</pubDate></item><item><title>Declare Active Conventions inside C# or VB.NET Source Code</title><link>http://clipmarks.com/clipmark/AD60D22A-D2AB-4DF2-A70C-2FA7AA1DB88C/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  NDepend is awesome &lt;img src="http://clipmarks.com/images/icons/smilies/happy.gif?r=2" style="margin-bottom: -4px;" alt="" /&gt;&lt;br/&gt; &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://codebetter.com/blogs/patricksmacchia/archive/2008/06/25/declare-active-conventions-inside-c-or-vb-net-source-code.aspx" title="http://codebetter.com/blogs/patricksmacchia/archive/2008/06/25/declare-active-conventions-inside-c-or-vb-net-source-code.aspx"&gt;codebetter.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H4 class="BlogPostHeader"&gt;Declare Active Conventions inside C# or VB.NET Source Code &lt;/H4&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;With the last version of &lt;A target="_blank" href="http://www.NDepend.com"&gt;NDepend&lt;/A&gt;, we polished one particular scenario that I would like to describe properly: The possibility to store &lt;A target="_blank" href="http://www.ndepend.com/Features.aspx#CQL"&gt;CQL&lt;/A&gt; rules inside source code.&lt;BR /&gt;&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;Consider this piece of code:&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;img src="http://clipmarks.com/image_cache/travislaborde/512/FB166EC3-716D-49F8-BBA6-25A6960A2720.jpg" alt="" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;let's write a custom convention that checks that:&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt; When a method is calling the method &lt;I&gt;Foo1()&lt;/I&gt;, it &lt;B&gt;must &lt;/B&gt;also call the method &lt;I&gt;Foo2(int)&lt;/I&gt;.&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;img src="http://clipmarks.com/image_cache/travislaborde/512/3B492E1E-B9B8-4088-9D11-3847359BF734.jpg" alt="" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;Right click the editor and select: &lt;I&gt;Copy to clipboard to insert this query in C# source code&lt;/I&gt; ...&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;img src="http://clipmarks.com/image_cache/travislaborde/512/1B27049B-44AB-4B20-8097-C5A242B0DDF4.jpg" alt="" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;... and paste the clipboard content just before the &lt;I&gt;Fct1()&lt;/I&gt; method definition. An attribute is now tagging the &lt;I&gt;Fct1() &lt;/I&gt;method definition.&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;img src="http://clipmarks.com/image_cache/travislaborde/512/9900789D-2CB3-4808-BFBE-459284007557.jpg" alt="" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;It makes sense to declare such constraint near the &lt;I&gt;Foo1() / Foo2(int)&lt;/I&gt; methods definitions. This way, during code review or refactoring developers cannot miss it. This is active documentation. &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/.net/" rel="tag"&gt;.net&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://codebetter.com/blogs/patricksmacchia/archive/2008/06/25/declare-active-conventions-inside-c-or-vb-net-source-code.aspx</clipSource><pubDate>Thu, 26 Jun 2008 12:43:34 GMT</pubDate></item><item><title>PhillyNJ.NET tomorrow night!</title><link>http://clipmarks.com/clipmark/3CF2F9FC-134B-40CB-A906-06C2B2AC14BE/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/travislaborde/"&gt;travislaborde&lt;/a&gt;&lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://www.phillynj.net/home/meetings/2008-06-26.aspx" title="http://www.phillynj.net/home/meetings/2008-06-26.aspx"&gt;www.phillynj.net&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H3&gt;Vince Napoli - Tips and Tricks with SSIS&lt;/H3&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;img src="http://clipmarks.com/image_cache/travislaborde/512/0EFEA8BD-47C5-4105-B214-857353D6AFCF.jpg" alt="" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;This presentation will show you how to create a SSIS package with package variables and database connections, and demonstrate multiple techniques on how to modify your configuration at runtime.&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H3&gt;Vlad Bezden - WPF Databinding&lt;/H3&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;img src="http://clipmarks.com/image_cache/travislaborde/512/4ADA498A-C048-4945-ABBE-D4057E3DF823.jpg" alt="" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;Data binding is a mechanism to link user controls with data in their applications.  Data binding has always been a very powerful mechanism, but with introducing of WPF it became one of the top features. &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/.net/" rel="tag"&gt;.net&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://www.phillynj.net/home/meetings/2008-06-26.aspx</clipSource><pubDate>Wed, 25 Jun 2008 13:01:15 GMT</pubDate></item></channel></rss>