[{"data":1,"prerenderedAt":338},["ShallowReactive",2],{"blog:2007:dissecting-a-c-application-inside-sharpdevelop":3,"blogMore-Development":144,"comments-dissecting-a-c-application-inside-sharpdevelop":157},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"category":11,"tags":12,"excerpt":15,"body":52,"_type":132,"_id":133,"_source":134,"_file":135,"_stem":136,"_extension":137,"url":138,"wordCount":139,"minutes":140,"commentCount":141,"image":142},"/blog/2007/dissecting-a-c-application-inside-sharpdevelop","2007",false,"en","Dissecting a C# Application: Inside SharpDevelop","This great book shows you the process, thinking and code behind the open-source .NET IDE SharpDevelop that went on to branch into MonoDevelop.","2007-11-08T23:54:15+00:00","Development",[13,14],".NET","C#",{"type":16,"children":17},"root",[18,43],{"type":19,"tag":20,"props":21,"children":22},"element","p",{},[23,32,35,37,39,41],{"type":19,"tag":24,"props":25,"children":31},"img",{"src":26,"className":27,"alt":30},"https://img.damieng.com/blog/DissectingCover.png",[28,29],"photo","right","Cover of Dissecting a C# Application",[],{"type":33,"value":34},"text","This great book shows you the process, thinking and code behind the open-source .NET IDE ",{"type":33,"value":36},"SharpDevelop",{"type":33,"value":38}," that went on to branch into ",{"type":33,"value":40},"MonoDevelop",{"type":33,"value":42},".",{"type":19,"tag":20,"props":44,"children":45},{},[46,48,50],{"type":33,"value":47},"It was not in print for very long but Apress bought Wrox when they closed down and ",{"type":33,"value":49},"made the book freely available",{"type":33,"value":51}," on its site for download in PDF format.",{"type":16,"children":53,"toc":128},[54,78,89,102,119],{"type":19,"tag":20,"props":55,"children":56},{},[57,61,62,70,71,77],{"type":19,"tag":24,"props":58,"children":60},{"src":26,"className":59,"alt":30},[28,29],[],{"type":33,"value":34},{"type":19,"tag":63,"props":64,"children":68},"a",{"href":65,"rel":66},"https://www.iCSharpcode.net/OpenSource/SD/",[67],"nofollow",[69],{"type":33,"value":36},{"type":33,"value":38},{"type":19,"tag":63,"props":72,"children":75},{"href":73,"rel":74},"https://www.monodevelop.com",[67],[76],{"type":33,"value":40},{"type":33,"value":42},{"type":19,"tag":20,"props":79,"children":80},{},[81,82,88],{"type":33,"value":47},{"type":19,"tag":63,"props":83,"children":86},{"href":84,"rel":85},"https://web.archive.org/web/20070120124048/www.apress.com/free/",[67],[87],{"type":33,"value":49},{"type":33,"value":51},{"type":19,"tag":20,"props":90,"children":91},{},[92,94,101],{"type":33,"value":93},"Unfortunately, with their most recent web redesign their free e-books section has disappeared so I am temporarily hosting it here after recommending it to somebody interested in ",{"type":19,"tag":63,"props":95,"children":98},{"href":96,"rel":97},"https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2386010&SiteID=1&mode=1",[67],[99],{"type":33,"value":100},"writing their own syntax highlighting editor on the MSDN forums",{"type":33,"value":42},{"type":19,"tag":103,"props":104,"children":105},"blockquote",{},[106],{"type":19,"tag":20,"props":107,"children":108},{},[109,111,117],{"type":33,"value":110},"Download ",{"type":19,"tag":63,"props":112,"children":114},{"href":113},"https://everobotics.org/pdf/Dissecting_A_CSharp_Application.pdf",[115],{"type":33,"value":116},"Dissecting a C# Application: Inside SharpDevelop (Adobe PDF)",{"type":33,"value":118}," (3.8MB)",{"type":19,"tag":20,"props":120,"children":121},{},[122],{"type":19,"tag":123,"props":124,"children":125},"em",{},[126],{"type":33,"value":127},"[)amien",{"title":129,"searchDepth":130,"depth":130,"links":131},"",2,[],"markdown","content:blog:2007:dissecting-a-c-application-inside-sharpdevelop.md","content","blog/2007/dissecting-a-c-application-inside-sharpdevelop.md","blog/2007/dissecting-a-c-application-inside-sharpdevelop","md","/blog/2007/dissecting-a-c-application-inside-sharpdevelop/",103,1,6,{"src":26,"className":143,"alt":30},[28,29],[145,149,153],{"title":146,"date":147,"url":148},"HTML5 Video Cheatsheet: Optimizing videos for the web","2025-12-05T00:00:00Z","/blog/2025/html5-video-cheatsheet/",{"title":150,"date":151,"url":152},"Transactions in the MongoDB EF Core Provider","2025-10-25","/blog/2025/mongodb-explicit-transactions/",{"title":154,"date":155,"url":156},"Queryable Encryption with the MongoDB EF Core Provider","2025-09-22","/blog/2025/mongodb-queryable-encryption/",[158,197,224,254,284,305],{"_path":159,"_dir":160,"_draft":6,"_partial":6,"_locale":7,"title":161,"description":162,"id":163,"name":164,"email":165,"avatar":166,"date":167,"body":168,"_type":132,"_id":194,"_source":134,"_file":195,"_stem":196,"_extension":137},"/comments/dissecting-a-c-application-inside-sharpdevelop/63391","dissecting-a-c-application-inside-sharpdevelop","63391","When you come to the Internet Archive website, you will have to click 'previous' in the \"Would you like to try the previous or next date?\" sentence.\nHere is the ful link:\nhttp://web.archive.org/web/20061209150448/http://support.apress.com/1861008171/sharpdevelop_wroxedition.zip",63391,"Daniel","aerozg@gmail.com","https://www.gravatar.com/avatar/f7918809001b9da9428d21fa6a8e8125?r=pg&d=retro","2012-12-30T02:41:33",{"type":16,"children":169,"toc":192},[170,181],{"type":19,"tag":20,"props":171,"children":172},{},[173,175],{"type":33,"value":174},"When you come to the Internet Archive website, you will have to click 'previous' in the \"Would you like to try the previous or next date?\" sentence.\nHere is the ful link:\n",{"type":19,"tag":63,"props":176,"children":179},{"href":177,"rel":178},"http://web.archive.org/web/20061209150448/http://support.apress.com/1861008171/sharpdevelop_wroxedition.zip",[67],[180],{"type":33,"value":177},{"type":19,"tag":20,"props":182,"children":183},{},[184,186],{"type":33,"value":185},"Here is a Rapidshare mirror:\n",{"type":19,"tag":63,"props":187,"children":190},{"href":188,"rel":189},"http://rapidshare.com/files/168129346/sharpdevelop_wroxedition.zip",[67],[191],{"type":33,"value":188},{"title":129,"searchDepth":130,"depth":130,"links":193},[],"content:comments:dissecting-a-c-application-inside-sharpdevelop:63391.md","comments/dissecting-a-c-application-inside-sharpdevelop/63391.md","comments/dissecting-a-c-application-inside-sharpdevelop/63391",{"_path":198,"_dir":160,"_draft":6,"_partial":6,"_locale":7,"title":199,"description":200,"id":201,"name":202,"email":203,"avatar":204,"date":205,"body":206,"_type":132,"_id":221,"_source":134,"_file":222,"_stem":223,"_extension":137},"/comments/dissecting-a-c-application-inside-sharpdevelop/46486","46486","Thanks for providing the book PDF. The vintage source code as provided with the book is available via the Internet Archive\nhttp://web.archive.org/web/20071014005232/http://developers.apress.com/free/download.html",46486,"Lex","lexein-301@yahoo.com","https://www.gravatar.com/avatar/35f670e5203ddd56a712c4fd16be13a6?r=pg&d=retro","2011-10-02T10:09:48",{"type":16,"children":207,"toc":219},[208],{"type":19,"tag":20,"props":209,"children":210},{},[211,213],{"type":33,"value":212},"Thanks for providing the book PDF. The vintage source code as provided with the book is available via the Internet Archive\n",{"type":19,"tag":63,"props":214,"children":217},{"href":215,"rel":216},"http://web.archive.org/web/20071014005232/http://developers.apress.com/free/download.html",[67],[218],{"type":33,"value":215},{"title":129,"searchDepth":130,"depth":130,"links":220},[],"content:comments:dissecting-a-c-application-inside-sharpdevelop:46486.md","comments/dissecting-a-c-application-inside-sharpdevelop/46486.md","comments/dissecting-a-c-application-inside-sharpdevelop/46486",{"_path":225,"_dir":160,"_draft":6,"_partial":6,"_locale":7,"title":226,"description":227,"id":228,"name":229,"email":230,"avatar":231,"date":232,"body":233,"_type":132,"_id":251,"_source":134,"_file":252,"_stem":253,"_extension":137},"/comments/dissecting-a-c-application-inside-sharpdevelop/42465","42465","Way old response here but, hot linking to anything requires that you had better have some serious bandwidth and a nice array of blades cause if not your stuff is getting cooked. Anything with the word free within ten minutes of it is going to get major hits and hot linking downloadable free stuff that was once commercial will get nailed hard.",42465,"RDRush","the.raven.of.oden@gmail.com","https://www.gravatar.com/avatar/39c72569abace3705cfaab61cf594d0b?r=pg&d=retro","2010-10-09T00:20:13",{"type":16,"children":234,"toc":249},[235,239,244],{"type":19,"tag":20,"props":236,"children":237},{},[238],{"type":33,"value":227},{"type":19,"tag":20,"props":240,"children":241},{},[242],{"type":33,"value":243},"Download junkies and Google hot linking will decimate your server like vultures on road kill.",{"type":19,"tag":20,"props":245,"children":246},{},[247],{"type":33,"value":248},"No hot-linking was an excellent idea. It will keep the product around for awhile without killing the locals here. Thankyou for your time keeping the book around and accessible.",{"title":129,"searchDepth":130,"depth":130,"links":250},[],"content:comments:dissecting-a-c-application-inside-sharpdevelop:42465.md","comments/dissecting-a-c-application-inside-sharpdevelop/42465.md","comments/dissecting-a-c-application-inside-sharpdevelop/42465",{"_path":255,"_dir":160,"_draft":6,"_partial":6,"_locale":7,"title":256,"description":257,"id":258,"name":259,"email":260,"avatar":261,"date":262,"body":263,"_type":132,"_id":281,"_source":134,"_file":282,"_stem":283,"_extension":137},"/comments/dissecting-a-c-application-inside-sharpdevelop/11093","11093","Thanks for hosting this!\nFYI google links directly to the pdf, but since youve disallowed hotlinking it resolves to a 403 page.  It would be really helpful if you could make an exception and put either a redirect rule for this one document, or add a link to this page from your 403 page that renders conditionally (based on referrer or whatever).",11093,"Mike Waters","mike@mikewaters.net","https://www.gravatar.com/avatar/830524bcb82278fa2a964d32e2ae1b3c?r=pg&d=retro","2009-02-06T20:58:13",{"type":16,"children":264,"toc":279},[265,269,274],{"type":19,"tag":20,"props":266,"children":267},{},[268],{"type":33,"value":257},{"type":19,"tag":20,"props":270,"children":271},{},[272],{"type":33,"value":273},"The only reason I would ever ask is that you seem to be the only currently available source of this excellent resource.  It's one thing to learn how to program in a given language, but it's quite another to know how to construct a large application using it.\nMaybe one well-placed ad would make up for the bandwidth charge..... ;)",{"type":19,"tag":20,"props":275,"children":276},{},[277],{"type":33,"value":278},"Thanks, and Good Luck!\n-Mike Waters",{"title":129,"searchDepth":130,"depth":130,"links":280},[],"content:comments:dissecting-a-c-application-inside-sharpdevelop:11093.md","comments/dissecting-a-c-application-inside-sharpdevelop/11093.md","comments/dissecting-a-c-application-inside-sharpdevelop/11093",{"_path":285,"_dir":160,"_draft":6,"_partial":6,"_locale":7,"title":286,"description":287,"id":288,"name":289,"email":290,"avatar":291,"url":292,"date":293,"body":294,"_type":132,"_id":302,"_source":134,"_file":303,"_stem":304,"_extension":137},"/comments/dissecting-a-c-application-inside-sharpdevelop/5064","5064","The think that put my off initially was the Codon's they introduce right at the start which is basically their name for their plug-in architecture.  If you skip that stuff you will probably find yourself referring back but some of the information on designers, syntax highlighting, parsers etc. is well worth persevering with.",5064,"Damien Guard","damien@envytech.co.uk","https://www.gravatar.com/avatar/dc72963e7279d34c85ed4c0b731ce5a9?r=pg&d=retro","https://damieng.com/","2007-11-12T09:01:22",{"type":16,"children":295,"toc":300},[296],{"type":19,"tag":20,"props":297,"children":298},{},[299],{"type":33,"value":287},{"title":129,"searchDepth":130,"depth":130,"links":301},[],"content:comments:dissecting-a-c-application-inside-sharpdevelop:5064.md","comments/dissecting-a-c-application-inside-sharpdevelop/5064.md","comments/dissecting-a-c-application-inside-sharpdevelop/5064",{"_path":306,"_dir":160,"_draft":6,"_partial":6,"_locale":7,"title":307,"description":308,"id":309,"name":310,"email":311,"avatar":312,"url":313,"date":314,"body":315,"_type":132,"_id":335,"_source":134,"_file":336,"_stem":337,"_extension":137},"/comments/dissecting-a-c-application-inside-sharpdevelop/5040","5040","Im in two minds about the book, I have the dead tree version somewhere and when .net came out intially this book was interesting but something just didnt sit right with me and I quickly lost interest. I could never put my finger on why, but I tend not to reccomend this to people anymore.",5040,"Stu","yakumo9275@gmail.com","https://www.gravatar.com/avatar/a75904fde646d1b9111eb32ea8f40ef3?r=pg&d=retro","https://mega-tokyo.com/blog","2007-11-09T13:17:27",{"type":16,"children":316,"toc":333},[317,321],{"type":19,"tag":20,"props":318,"children":319},{},[320],{"type":33,"value":308},{"type":19,"tag":20,"props":322,"children":323},{},[324,326,331],{"type":33,"value":325},"I looked at the linked msdn thread and it seems like the OP doesnt really understand how hard it is to do what he ",{"type":19,"tag":123,"props":327,"children":328},{},[329],{"type":33,"value":330},"really",{"type":33,"value":332}," wants (parse to AST with highlighting) that he is talking about RTF boxes and html pages means he wont grok the books lessons on editing   behind the scenes data structure.",{"title":129,"searchDepth":130,"depth":130,"links":334},[],"content:comments:dissecting-a-c-application-inside-sharpdevelop:5040.md","comments/dissecting-a-c-application-inside-sharpdevelop/5040.md","comments/dissecting-a-c-application-inside-sharpdevelop/5040",1779264590001]