{"id":45,"date":"2009-03-20T17:25:59","date_gmt":"2009-03-20T23:25:59","guid":{"rendered":"http:\/\/jameskovacs.com\/2009\/03\/20\/MSDN+Magazine+Series+From+Web+Dev+To+RIA+Dev"},"modified":"2009-03-20T17:25:59","modified_gmt":"2009-03-20T23:25:59","slug":"msdn-magazine-series-from-web-dev-to-ria-dev","status":"publish","type":"post","link":"https:\/\/www.jameskovacs.com\/index.php\/2009\/03\/20\/msdn-magazine-series-from-web-dev-to-ria-dev\/","title":{"rendered":"MSDN Magazine Series: From Web Dev to RIA Dev"},"content":{"rendered":"<p><a href=\"http:\/\/www.flickr.com\/photos\/lou\/1352717149\/\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" title=\"Parthenon Under Construction\" style=\"border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px\" height=\"266\" alt=\"Parthenon Under Construction\" src=\"\/wp-content\/uploads\/WindowsLiveWriter\/FromWebDevtoRIADev_D9C1\/image_c6f73465-725c-4743-a182-d48b6a46f0cd.png\" width=\"400\" align=\"right\" border=\"0\"><\/a>I don\u2019t have to remind everyone that we\u2019re in the middle of a world-wide economic <strike>depression<\/strike> downturn. When the economy is good, it is hard enough to convince your boss to re-build an application from scratch. When the economy is bad, it is bloody near impossible. In the coming months (and potentially years), I expect that as developers we\u2019re going to be seeing more and more <a href=\"http:\/\/www.manning.com\/baley\/\">brownfield projects<\/a>, rather than greenfield ones. We\u2019re going to see more push for evolutionary development of applications rather than wholesale replacement. We will be called upon to improve existing codebases, implement new features, and take these projects in initially unforeseen directions. We will have to learn how to be <em><a href=\"http:\/\/www.amazon.com\/gp\/product\/0131177052?ie=UTF8&amp;tag=jamkovweb-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0131177052\">Working Effectively with Legacy Code<\/a><\/em>. (Took some effort to coerce the title of Michael Feathers\u2019 excellent book into that last sentence.) A lot of companies have tremendous investment in existing \u201cclassic\u201d ASP.NET websites, but there is a desire to evolve these sites rather than replace them, especially given these tough economic times. <a href=\"http:\/\/codebetter.com\/blogs\/howard.dierking\">Howard Dierking<\/a>, editor of MSDN Magazine, has asked me to write a 9-week series entitled <a href=\"http:\/\/blogs.msdn.com\/msdnmagazine\/archive\/2009\/03\/18\/9489211.aspx\"><em>From Web Dev to RIA Dev<\/em><\/a> where we will explore refactoring an existing \u201cclassic\u201d ASP.NET site. We want to improve an existing ASP.NET using new technologies, such as AJAX, jQuery, and ASP.NET MVC. We want to show that you can adopt better practices, such as continuous integration, web testing (e.g. WatiN, WatiR, Selenium), integration testing, separation of concerns, layering, and more.<\/p>\n<p>So I have two questions for you, Dear Reader\u2026<\/p>\n<ol>\n<li>Can you think of a representative \u201cclassic\u201d ASP.NET website (or websites) for the project?<\/li>\n<li>What topics would you like to see covered?<\/li>\n<\/ol>\n<p>I should clarify what I mean\u2026<\/p>\n<h5>\u201cClassic\u201d ASP.NET Applications<\/h5>\n<p>I\u2019m currently considering PetShop, IBuySpy, DasBlog, SubText, and ScrewTurn Wiki. I\u2019m not looking for one riff with bad practices. Just an ASP.NET project in need of some TLC \u2013 one that doesn\u2019t have a decent build script, isn\u2019t under CI, a bit shy on the testing, little to no AJAX, etc. The code should be typical of what you would see in a typical ASP.NET application. (For that reason, I am probably going to discount IBuySpy as it is built using a funky webpart-like framework, which is not typical of most ASP.NET applications.) Some of the ASP.NET applications that I just mentioned don\u2019t exactly qualify because they do have build scripts, tests, and other features that I would like to demonstrate. I will get permission from the project owner(s) before embarking on this quest and plan to contribute any code back to the project. Needless to say that the project must have source available to be considered for this article series. So please make some suggestions!<\/p>\n<h5>Topics<\/h5>\n<p>I have a lot of ideas of technologies and techniques to explore including proper XHTML\/CSS layout, jQuery, QUnit, AJAX, HTTP Modules\/Handlers, build scripts, continuous integration (CI), ASP.NET MVC, web testing (probably WatiN or Selenium), refactoring to separate domain logic from codebehind\/sprocs, \u2026 I will cover one major topic per week over the 9-week series. So I\u2019ve got lots of room for cool ideas. What would you like to see? What do you think is the biggest bang for your buck in terms of improving an existing ASP.NET application?<\/p>\n<p>Depending on the topics covered (based on your feedback here), I might use one site for the entire series or different sites to cover each topic. It would add some continuity to the series to use a single site over the 9 weeks, but after a brief inspection of the codebases mentioned above, I am having my doubts about finding a single representative site. We\u2019ll have to see. Please leave your suggestions in the comments below. Thanks in advance!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I don\u2019t have to remind everyone that we\u2019re in the middle of a world-wide economic depression downturn. When the economy is good, it is hard enough to convince your boss to re-build an application from scratch. When the economy is bad, it is bloody near impossible. In the coming months (and potentially years), I expect [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,6],"tags":[],"class_list":["post-45","post","type-post","status-publish","format-standard","hentry","category-dotnetgeneral","category-aspnet"],"_links":{"self":[{"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/comments?post=45"}],"version-history":[{"count":0,"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/posts\/45\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/media?parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/categories?post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jameskovacs.com\/index.php\/wp-json\/wp\/v2\/tags?post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}