<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://codebetter.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Rod Paddock - All Comments</title><link>http://codebetter.com/blogs/rodpaddock/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>A Train of Thought: January 2010 Edition</title><link>http://codebetter.com/blogs/rodpaddock/archive/2009/11/28/can-a-fish-use-a-bicycle.aspx#605552</link><pubDate>Mon, 25 Jan 2010 00:20:12 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:605552</guid><dc:creator>Jeremy D. Miller -- The Shade Tree Developer</dc:creator><description>&lt;p&gt;One of my New Year&amp;rsquo;s resolutions was to resuscitate my blog. It&amp;rsquo;s very obvious that the &amp;ldquo;conversation&amp;rdquo;&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=605552" width="1" height="1"&gt;</description></item><item><title>Can a Fish Use a Bicycle?</title><link>http://codebetter.com/blogs/rodpaddock/archive/2009/11/28/can-a-fish-use-a-bicycle.aspx#454068</link><pubDate>Sat, 28 Nov 2009 15:54:50 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:454068</guid><dc:creator>PimpThisBlog.com</dc:creator><description>&lt;p&gt;Thank you for submitting this cool story - Trackback from PimpThisBlog.com&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=454068" width="1" height="1"&gt;</description></item><item><title>re: The Reality of Stored Procedures</title><link>http://codebetter.com/blogs/rodpaddock/archive/2006/06/21/146654.aspx#361950</link><pubDate>Thu, 24 Sep 2009 19:17:21 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:361950</guid><dc:creator>Allen Berezovsky</dc:creator><description>&lt;p&gt;Ok,&lt;/p&gt;
&lt;p&gt;I have almost a daily argument about this topic at work, and I have a pretty passionate opinion on the subject. &lt;/p&gt;
&lt;p&gt;Before I share, a little bit about me. I&amp;#39;ve been working on multi-tier enterprise applications, both big and small, for over eleven years now. I am both a front/end and a back/end guy. I&amp;#39;ve built web-based, data driven applications from Server Side Java Script on Netscape platform, to classic ASP, and all versions of .NET. I&amp;#39;ve worked with SQL Server 6.5 - 2008, and have done some Oracle.&lt;/p&gt;
&lt;p&gt;First of all, THERE IS NO ONE WAY TO DO THINGS THAT IS &amp;quot;RIGHT&amp;quot;! Each project presents a set of it&amp;#39;s own constraints, whether it&amp;#39;s development resources, technologies, or simply small budgets.&lt;/p&gt;
&lt;p&gt;As programmers, we some times get carried away with being adiment about doing thigs the &amp;quot;right&amp;quot; way at the expense of delivering working code quickly. A lot of times, the &amp;quot;right&amp;quot; way is code that WORKS, and is delivered QUCKLY, and is fixed QUICKLY if there is a bug. The business customer usually could care less if you have one or 4 tiers in your application. With that said, if I&amp;#39;m building a small to medium application, where my team is 1-5 people, and quick and working is the key, I&amp;#39;m using two tiers....the front end, and stored procedures, with most of my business rules in the stored procedures, and some UI type rules in the code behind. I might utilize Microsoft Application Blocks to talk to the DB, but that&amp;#39;s about as far as I would go.&lt;/p&gt;
&lt;p&gt;If I&amp;#39;m building a big system like and ERP or something like that, and I have a big budget and a big development team where I can abstract objects, tiers, and DB roles to different development groups, and I have a strong process for unit, and integration testing, I&amp;#39;m putting business rules into int&amp;#39;s own layer, entities into it&amp;#39;s own layer, my sprocs are doing minimum complex work, etc.&lt;/p&gt;
&lt;p&gt;Also, we have to consider what kind of an application we are building. &amp;nbsp;If our application is simply for reporting, then just use sprocs for delivering your data. It&amp;#39;s a lot easier to do a complex join in a stored procedure than it is joining objects in code, even with LINQ. On the other hand if you are doing a lot of inserts, updates, single object manupulations, then it&amp;#39;s probably better to do it in the business layer.&lt;/p&gt;
&lt;p&gt;To continue my point, if I&amp;#39;m doing batch data processes that need to be scheduled, data migrations, extractions, transformations, I&amp;#39;m using SQL Server for that, whether it&amp;#39;s sprocs and jobs, or SSIS and jobs, etc. I don&amp;#39;t want to be writing my own services to do this when Microsoft has already done those for me, and they are already running. &lt;/p&gt;
&lt;p&gt;Here is my pet peve.....developers that create 4 tiers just for the sake of creating 4 tiers. Usually their code looks like this: &amp;nbsp;The database has just the tables, streight insert, update, select and delete stored procedures. A Data Access Layer that just calls the sprocs, A Data Layer that just calls the Data Access Layer, and a business layer that just calls the Data layer, and 99 % of all real business logic is done in the code behind of an aspx page! WHY!!!!!????? Now every time you need to add a column to the database, you have to regenerate 4 layers, and still change your code behind! What a waste of time!&lt;/p&gt;
&lt;p&gt;So as a rule of thumb, there is no rule of thumb! Every situation has to be analysed for what it is, and procede accordingly.&lt;/p&gt;
&lt;p&gt;Allen Berezovsky&lt;/p&gt;
&lt;p&gt;MCITP Database Developer&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=361950" width="1" height="1"&gt;</description></item><item><title>re: Scraping Secure HTTPS Sites (Updates for .NET 2.0 Framework)</title><link>http://codebetter.com/blogs/rodpaddock/archive/2006/05/06/144181.aspx#352345</link><pubDate>Thu, 17 Sep 2009 13:38:50 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:352345</guid><dc:creator>Anthony (abev)</dc:creator><description>&lt;p&gt;Thanks Rod! This code bailed me out big time. I needed to post variables to the page so I added the following before oResp was defined: (example)&lt;/p&gt;
&lt;p&gt;Dim data As String = &amp;quot;action=updateAll&amp;amp;maxPrice=590&amp;amp;sPrice=0&amp;amp;startingPos=0&amp;amp;nbrRecs=60&amp;quot;&lt;/p&gt;
&lt;p&gt;Dim writer As New StreamWriter(oReq.GetRequestStream)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;writer.Write(data)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;writer.Close()&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=352345" width="1" height="1"&gt;</description></item><item><title>VB Syntax Highlighting with JQuery and Chili</title><link>http://codebetter.com/blogs/rodpaddock/archive/2009/04/07/jquery-101-ug-samples-and-slides.aspx#249935</link><pubDate>Fri, 10 Jul 2009 17:51:52 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:249935</guid><dc:creator>ThinqLinq</dc:creator><description>&lt;p&gt;At CodeStock, I attended Rod Paddock&amp;#39;s intro to JQuery session since I hadn&amp;#39;t played with JQuery yet. As often happens when I go to conferences, being in the different environment starts to get the mi&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=249935" width="1" height="1"&gt;</description></item><item><title>re: Move The Chair</title><link>http://codebetter.com/blogs/rodpaddock/archive/2009/07/03/move-the-chair.aspx#249848</link><pubDate>Wed, 08 Jul 2009 18:23:35 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:249848</guid><dc:creator>mylifeincode@gmail.com</dc:creator><description>&lt;p&gt;Maybe the passersby were just too polite to move a chair positioned at someone else&amp;#39;s table? :-D&lt;/p&gt;
&lt;p&gt;But seriously, excellent insight!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=249848" width="1" height="1"&gt;</description></item><item><title>re: Move The Chair</title><link>http://codebetter.com/blogs/rodpaddock/archive/2009/07/03/move-the-chair.aspx#249788</link><pubDate>Mon, 06 Jul 2009 15:35:30 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:249788</guid><dc:creator>Rob</dc:creator><description>&lt;p&gt;Sorry, Chair Relocation has not been factored into the project budget, nor do we have any furniture relocation specialists on the team. Furethermore, there are simply too many other tasks for the existing resources to accomplish before even considering said chair. Therefore, management has decided that the best course of action for the forseeable future is to work around the chair :-)&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=249788" width="1" height="1"&gt;</description></item><item><title>Weekly Web Nuggets #70</title><link>http://codebetter.com/blogs/rodpaddock/archive/2009/07/03/move-the-chair.aspx#249754</link><pubDate>Mon, 06 Jul 2009 03:02:48 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:249754</guid><dc:creator>Code Monkey Labs</dc:creator><description>&lt;p&gt;Pick of the week: All Abstractions Are Failed Abstractions General Understanding Expression Trees : Marcin Kasprzykowski takes a look at expression trees, which were introduced in C# 3.0. One Public Type Per File : Chris Eargle examines a few of the many&lt;/p&gt;
&lt;img src="http://codebetter.com/aggbug.aspx?PostID=249754" width="1" height="1"&gt;</description></item><item><title>re: Move The Chair</title><link>http://codebetter.com/blogs/rodpaddock/archive/2009/07/03/move-the-chair.aspx#249726</link><pubDate>Sun, 05 Jul 2009 02:24:29 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:249726</guid><dc:creator>Christopher Bennage</dc:creator><description>&lt;p&gt;Trying to take my family (3 kids) to lunch after church is nothing but friction. Of course, I tend to forget this every other week or so and try it again. Ugh.&lt;/p&gt;
&lt;p&gt;So maybe we just forget about the friction too quickly? :-)&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=249726" width="1" height="1"&gt;</description></item><item><title>re: Move The Chair</title><link>http://codebetter.com/blogs/rodpaddock/archive/2009/07/03/move-the-chair.aspx#249717</link><pubDate>Sat, 04 Jul 2009 15:53:13 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:249717</guid><dc:creator>Rafael Noronha</dc:creator><description>&lt;p&gt;Great analogy.&lt;/p&gt;
&lt;p&gt;Makes full sense!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=249717" width="1" height="1"&gt;</description></item><item><title>re: Move The Chair</title><link>http://codebetter.com/blogs/rodpaddock/archive/2009/07/03/move-the-chair.aspx#249671</link><pubDate>Fri, 03 Jul 2009 22:07:57 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:249671</guid><dc:creator>Jeremy D. Miller</dc:creator><description>&lt;p&gt;Nice post Rod.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=249671" width="1" height="1"&gt;</description></item><item><title>re: Move The Chair</title><link>http://codebetter.com/blogs/rodpaddock/archive/2009/07/03/move-the-chair.aspx#249666</link><pubDate>Fri, 03 Jul 2009 18:17:21 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:249666</guid><dc:creator>Sla</dc:creator><description>&lt;p&gt;I wold say its more like myths/believes &amp;nbsp;which are protected by peoples. In a moment you try to debunk one you would be blamed for N amount of sins and evil doings. The situations when you can freely &amp;quot;move chair away&amp;quot; per say is really rare.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=249666" width="1" height="1"&gt;</description></item><item><title>re: Move The Chair</title><link>http://codebetter.com/blogs/rodpaddock/archive/2009/07/03/move-the-chair.aspx#249663</link><pubDate>Fri, 03 Jul 2009 18:00:32 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:249663</guid><dc:creator>Kyle Baley</dc:creator><description>&lt;p&gt;I like the analogy. Gonna try to see if I can work it into my vernacular. &amp;quot;Any chairs in your way today?&amp;quot; &amp;quot;Had something came up but I moved the chair so it&amp;#39;s all good now.&amp;quot;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=249663" width="1" height="1"&gt;</description></item><item><title>re: Move The Chair</title><link>http://codebetter.com/blogs/rodpaddock/archive/2009/07/03/move-the-chair.aspx#249651</link><pubDate>Fri, 03 Jul 2009 14:55:49 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:249651</guid><dc:creator>Johan Jonasson</dc:creator><description>&lt;p&gt;Fascinating post! &lt;/p&gt;
&lt;p&gt;Makes me think about all the chairs testers run into repeatedly, since the developers don&amp;#39;t even see them anymore.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=249651" width="1" height="1"&gt;</description></item><item><title>re: 10,000 Hours to Graceland</title><link>http://codebetter.com/blogs/rodpaddock/archive/2009/04/26/10-000-hours-to-graceland.aspx#249265</link><pubDate>Wed, 24 Jun 2009 15:51:32 GMT</pubDate><guid isPermaLink="false">d21fbbc9-c112-4f32-ad14-95939a2c53d4:249265</guid><dc:creator>Bkjswnlq</dc:creator><description>&lt;p&gt;Ymg7Sy comment3 , &lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=249265" width="1" height="1"&gt;</description></item></channel></rss>