<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://blog.awesam.net/rss/xslt"?>
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>AweSam.Net Blog</title>
    <link>https://blog.awesam.net/</link>
    <description>AweSam.Net blog for all things AweSam.  Here you will find collections of posts revolving around technology, the tech industry, and everything in between.</description>
    <generator>Articulate, blogging built on Umbraco</generator>
    <item>
      <guid isPermaLink="false">1102</guid>
      <link>https://blog.awesam.net/archive/when-upgrading-goes-terribly-wrong-a-tale-of-two-or-more-umbraco-versions/</link>
      <category>60 Days to Win it</category>
      <category>Technical</category>
      <category>AweSam.Net</category>
      <category>The Lost Days</category>
      <title>When Upgrading Goes Terribly Wrong: A Tale of Two (or more) Umbraco Versions</title>
      <description>&lt;p&gt;I wish I could just not write this blog. The reality is that this was such a significant endeavor that virtually side railed my entire 60-day plan.  Who knows, maybe it only forced me to realize just how optimistic my goal for this time was, but the fact remains; I just can't even...  &lt;/p&gt;

&lt;p&gt;&lt;a href="#tldr"&gt;tl;dr&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Way back when...&lt;/h3&gt;

&lt;p&gt;... I first conceived of AweSam.Net, I set myself to the tricky task of selecting a CMS.  It seemed simple enough, though I had some requirements.  It had to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;be open-source&lt;/li&gt;
&lt;li&gt;be built on/support a .NET stack (so that I could have the odd page where I could tinker with back-end code)&lt;/li&gt;
&lt;li&gt;support multiple sites on one instance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I had been looking for an opportunity to use Umbraco since the first time I dabbled with the Azure Umbraco install, and it seemed to fit all my requirements.  The install method I chose was via NuGet using Visual Studio. Each time I had to do a little work on the site over the years, I would upgrade to the most recent version and usually dedicate a reasonable amount of time to properly (or so I thought) migrate to the new version.  It's true that I found this quite tedious, but I was ok with putting in the effort.  &lt;/p&gt;

&lt;p&gt;After some years, my updates to my site stopped, and so did my updates to the Umbraco NuGet package.  The final resting version was Umbraco 7.5.7, and my site was more or less stable.&lt;/p&gt;

&lt;h3&gt;Upgrade or Fresh Install?&lt;/h3&gt;

&lt;p&gt;Once I got a little free time on my hands, it was time to start my blog and make use of the Umbraco platform to find a suitable and popular blog package. The first step was to update my Umbraco version so that I could get the most current package.  The goal was to upgrade from Umbraco 7.5.7 to Umbraco 8.7, which was apparently quite the leap.  I was working locally, with a pretty solid fallback plan: Git was my first line of defense, while Hyper-V Checkpoints was reserved for any irreparable damage (overkill?)&lt;/p&gt;

&lt;p&gt;The obvious question was: do I attempt an upgrade on a mostly working installation, or should I scrap it and start from scratch on the latest version.  After all, my site is pretty small.  I settled on an upgrade since a re-write would be what I thought was a significantly larger project...  (&lt;a href="https://www.youtube.com/watch?v=vbb9MPYT23Y"&gt;2000 years later...&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;I really shouldn't even mention the first pass at updating, which involved a cowboy-updated to my NuGet packages, hitting the build button, and bracing myself as the compiler took a deep breath before entering full-on dad-lecture mode on me.  Only a couple of hours wasted, not so bad. Shortly after that, I licked my wounds and loaded up the Umbraco official &lt;a href="https://our.umbraco.com/documentation/getting-started/setup/upgrading/version-specific"&gt;upgrade notes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I settled on a strategy that involved updating my version of Umbraco to the nearest officially &lt;a href="https://our.umbraco.com/documentation/getting-started/setup/upgrading/version-specific"&gt;documented&lt;/a&gt; breaking change, completing the corrections to be made, testing, and then moving on to the next breaking change.  All this so that I could arrive at the coveted version 7.14.   The version that introduced the data migration tool from Umbraco 7 to Umbraco 8 (as documented &lt;a href="https://our.umbraco.com/documentation/getting-started/setup/upgrading/migrating-to-v8#versions-supported"&gt;here&lt;/a&gt;).  No matter what I tried though, somewhere along the line from 2017 to 2020, a change was introduced which broke a/some packages, effectively rendering my backoffice mostly useless.  I kept hoping the next version of Umbraco would fix it, but I guess it just wasn't in the cards.  I got close though... man, I got close.&lt;/p&gt;

&lt;p&gt;I had planned to keep track of all the issues I ran into, the StackOverflow and our.Umbraco.com answers.  All the failed solutions, and the successes, the git reverts, and the Checkpoints rollbacks.  I wanted to list them all, but there were so so many.  I just... I just can't even.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a name="tldr"&gt;&lt;/a&gt;TL;DR&lt;/strong&gt;: Ultimately, I rage-deleted the entire project and completely started over from scratch in Umbraco 8.x.  Worked like a charm.&lt;/p&gt;

&lt;h3&gt;Lessons Learned:&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;update often&lt;/li&gt;
&lt;li&gt;read update notes&lt;/li&gt;
&lt;li&gt;synchronize package updates with Umbraco updates&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Silver lining&lt;/h3&gt;

&lt;p&gt;While this upgrade was a complete waste of time, one of the exceptions I ran into was with a specific package that I make heavy use of.  It turns out that one of Umbraco's updates changed the expectations of how packages render content. Notably, the handling of empty content.  As such, the package was not compatible with the latest version of Umbraco.  That is, until &lt;a href="https://github.com/skttl/umbraco-doc-type-grid-editor/pull/213"&gt;this pull request&lt;/a&gt;.  I am always happy to contribute to a project that has been so useful to so many people.&lt;/p&gt;</description>
      <pubDate>Mon, 28 Sep 2020 21:29:22 Z</pubDate>
      <a10:updated>2020-09-28T21:29:22Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1097</guid>
      <link>https://blog.awesam.net/archive/60-days-to-win-it/</link>
      <category>60 Days to Win it</category>
      <title>60 Days to Win it</title>
      <description>&lt;p&gt;What if you had 60 days to accomplish whatever you wanted?  How would you spend it?  Would you reinvest the time into yourself, your business, or your career?  Would you take some much-needed R&amp;amp;R?  The gift of "free-time" seems like such a pipe dream to so many of us, but what happens when you have no choice but to accept it?&lt;/p&gt;

&lt;p&gt;That was pretty much where I found myself not that long ago when my contract ended right smack in the middle of the COVID-19 lockdown.  In my case, it wasn't that tough a pill to swallow: my contract of 3 years had been incredibly grueling and emotionally draining, and while I am grateful for the experience, I had been looking forward to the end of the contract for a very long time.  With the date quickly approaching, I started thinking less about that end date and more about all opportunities that lay ahead.  It was almost too good to be true!&lt;/p&gt;

&lt;p&gt;Of course, some priorities had to be taken care of before I could focus on the fun stuff. Still, the idea was to avoid transitioning from 3 years of soul-sucking drudgery to having my entire day filled with mindless tasks neglected.  First step, make a list of tasks; everything I hope to do, regardless of how realistic it was:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Find the next paying project/contract

&lt;ul&gt;
&lt;li&gt;Freshen up on newer technologies to make up for the early 2000's technology vortex that I had finally crawled out of&lt;/li&gt;
&lt;li&gt;Take daily practice exams to overcome my ridiculous mental block of timed interview exams&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Start a blog to document the whole process

&lt;ul&gt;
&lt;li&gt;Update my site so that I could install the blog plugin&lt;/li&gt;
&lt;li&gt;Create a test (beta) site to iron out the kinks of the upgrade before the live upgrade&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Manage my new vacation rental property amid high-season &lt;/li&gt;
&lt;li&gt;Figure out a solution to help me manage my rental property by automating the crap out of it, then maybe monetize it&lt;/li&gt;
&lt;li&gt;Get back on track with my health

&lt;ul&gt;
&lt;li&gt;Sort out my circadian rhythm&lt;/li&gt;
&lt;li&gt;Exercise&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Two months huh? Well, by this point, you must have realized that I've already started on my list and have knocked a few items off.  I wish I could have documented them along the way, but for now, I'll settle for the occasional catch-up post to cover the "lost days."  I'll be trying to keep posts focussed on one or two areas, but with a list like this, there is bound to be the occasional overlap.  &lt;/p&gt;

&lt;p&gt;Who knows... by the end of this, I may only walk away with a few failed projects and a ton more experience, but then again, it could lead to so much more.  I, for one, am pretty excited to find out one way or the other.&lt;/p&gt;</description>
      <pubDate>Thu, 17 Sep 2020 15:49:00 Z</pubDate>
      <a10:updated>2020-09-17T15:49:00Z</a10:updated>
    </item>
  </channel>
</rss>