affiliates. All rights reserved. Agenda Why bother updating? Update using the Project Manager Migrating to NuGet Packages War Story - 3.7 to 9.1 Migration Q&A
affiliates. All rights reserved. 53% of users abandon sites that take longer than 3 seconds to load 22% will never return to the slow site Page load time is factored into search engine results The average page size ~ 3MB Infographic
affiliates. All rights reserved. With the Sitefinity Project Manager we can… Create a New Project Import a Project Delete a Project Update a Project And many more…
affiliates. All rights reserved. What happens during an update? Update assemblies and the references to them. Update the configuration files, templates and front-end assets Merge settings from the new version’s web.config file to your existing web.config. Execute the database migrations.
affiliates. All rights reserved. Keep in mind Before update - back up everything! Clean all the error logs. You must not manually change the Sitefinity version numbers stored in your configuration files. Information about the Sitefinity version is stored both in the database and in the configuration files. At any time, the configuration files must match your database scheme.
affiliates. All rights reserved. The Problem By default Sitefinity assemblies are located in /bin We need to include /bin into source control Project -> Clean breaks our application
affiliates. All rights reserved. The Solution 1. Backup! 2. Edit the .csproj file to remove all the references to assemblies in bin\ 3. Delete the assemblies in bin\ 4. Add the Sitefinity Nuget Server as a package source 5. Install Telerik.Sitefinity.All – the version should match with the local Sitefinity version 6. When there’s a file conflict – Overwrite 7. Reload and Rebuild 8. Resolve the assembly binding errors (hope there won’t be any)
affiliates. All rights reserved. Keep in mind Reduce the risk of introducing breaking changes by updating often. Do not customize existing widget templates. Create your own instead. Upgrade with NuGet
affiliates. All rights reserved. The Problem 10+ year old website Over 300 pages Unusable on mobile devices Lots of custom code using legacy APIs No unit tests & documentation Needs to be merged with another 3.7 website with 2500+ pages The content of a Wordpress blog needs to be imported into the new site Needs to be updated to the latest version (9.1 at the time)
affiliates. All rights reserved. The Foundations Implement Front-End build system with Gulp Create Bootstrap-based common page layout templates Identify similar pages and represent them as content items Use MVC only rendering mode Integrate OpenGraph and TwitterCard
affiliates. All rights reserved. Migrate Wordpress Blog to the new site Blog post: https://www.newventuresoftware.com/blog/migrating-blog-content- from-wordpress-to-sitefinity Wordpress XML Sitefinity
affiliates. All rights reserved. URL Rewrites The 3.7 websites’ page URLs were not semantic and didn’t follow the page structure. Most of them were manually set thus impossible to map to the URLs in the new site. The old URLs must lead to the same page on the new site. ~3000 URLs in total
affiliates. All rights reserved. Removing the Noise BaconIpsumCowkevinsalamiporkloinspareribsmeatloafkielbasastrips teak.Andouilleporchettadrumstickcapicola.
affiliates. All rights reserved. The URL Mapping Procedure Pick a page from the old website and scrape its HTML Clean the data by removing HTML, CSS and JS code Calculate Minimum Edit Distance with every page from the new site Pick the one with the lowest score Generate a rewrite rule