FoundationsofProgrammingBuildingBetterSoftwareByKarlSeguinWWW.CODEBETTER.COMFoundationsofProgrammingCopyright©KarlSeguinwww.codebetter.com2FoundationsofProgrammingThispagewasintentionallyleftblankFoundationsofProgrammingCopyright©KarlSeguinwww.codebetter.com3FoundationsofProgrammingLicenseTheFoundationsofProgrammingbookislicensedundertheAttribution-NonCommercial-Share-Alike3.0Unportedlicense.Youarebasicallyfreetocopy,distributeanddisplaythebook.However,Iaskthatyoualwaysattributethebooktome,KarlSeguin,donotuseitforcommercialpurposesandshareanyalterationsyoumakeunderthesamelicense.Youcanseethefulltextofthelicenseat:http://creativecommons.org/licenses/by-nc-sa/3.0/legalcodeDownloadableLearningApplicationReadingaboutcodeisagoodwaytolearn,butifyou'reanythinglikeme,nothingbeatsarealapplication.That'swhyIcreatedtheCanvasLearningApplication-asimple(yetcomplete)ASP.NETMVCwebsitewhichleveragesmanyoftheideasandtoolscoveredinthisbook.TheapplicationisaVisualStudio2008solutionwithhelpfulinlinedocumentationmeanttohelpyoubridgethegapbetweentheoryandpractice.TheCanvasApplicationandthisbookareprettyindependent,soyoucanapproachthisjourneyhoweveryouprefer.http://codebetter.com/blogs/karlseguin/archive/2009/05/25/revisiting-codebetter-canvas.aspxAcknowledgementTherearecountlessofpeoplewhodeservethanks.Thisbookisbutasmallcontributiontotheincalculabletimedonatedandknowledgesharedbythesoftwarecommunityatlarge.Withoutthequalitybooks,forums,newsgroupposts,blogs,librariesandopensourceprojects,IwouldstillbetryingtofigureoutwhymyASPscriptwastiming-outwhileloopingthrougharecordset(stupidMoveNext).It'snosurprisethatthesoftwarecommunityhasleveragedtheopennessoftheinternetmorethananyotherprofessioninordertoadvanceourcause.Whatissurprisingishowthephenomenonappearstohavegoneunnoticed.Good!Ofcourse,thereisonespecialpersonwithoutwhomthiscouldn'thavehappened.ToWendy,Peoplecallmeluckyforbeingwithsomeoneasbeautifulandintelligentasyou.Theydon'tknowthehalfofit.Youarenotonlybeautifulandintelligent,butyo...