Tuesday, August 20, 2019

Sitecore 8.2 Migration to sitecore 9.2 DLL Hell

While we migrate sitecore mvc .net solution, one need to be very careful with following set of dlls that might conflict with version and you end up spending time to do patching the version in web.config or in app.config files.



Here is the key:-


Sitecore 8.2 per say have .Net framework 4.5.2 and all the dependency dll must match otherwise you might end up seeing these kind of exception every time. Indeed you're deep down the rabbit hole.

Before you start, take note of all version of below dlls in your vanilla sitecore installation /bin folder sitecore 9.2 -.Net framework 4.7.1 / 4.7.2

Even sitecore documentation doesn't give you the summary for the version of dll it supports, the way  they have compatibility tables for all platform dependencies. Similarly it is good to have those dll version dependencies with which they have constructed the sitecore framework.

Go in this order and ensure your webapps and project library have consistent dll across:-

Sitecore Intrinsic Assembly Reference


  • Sitecore.Kernel
  • Sitecore.ContentSearch
  • Sitecore.ContentSearch.Linq
  • Sitecore.Mvc
  • Sitecore.Client
  • Sitecore.Analytics
  • Sitecore.Analytics.Model


.Net Framework Assembly Reference


  • System.Web.Mvc
  • System.Web.Http


The King's Newtonsoft.Json


  • Newtonsoft.Json (This one in specific would be challenge in terms of mvc vs Owin connectors). Slight version deviation would take much of your time.)


DI - Reference


  • Microsoft.Extensions.DependencyInjections.Abstractions

Identity Owin


  • Owin
  • Microsoft.Owin
Solr

  • SolrNet
If the version mismatch is handled correctly, the first hurdle of migration is through. Trust me most of the blogs out there talks about sitecore 9.2 installation and setup. They are good but no one has given the actual migration of .net solution that will haunt you when you get started. 

Once you are through with this DLL Hell! You then probably have to focus and deal with app_config patch that is specific to your application domain. There is a change which is more related to Xconnect vs XDB. 

In fact sitecore migration is really a painful task. Also the worst part is sitecore is going to end support for sitecore 8.2 soon. As an application architect one has to plan such migration meticulously otherwise your enterprise application which was developed with sitecore 8.x hoo haa! might become a legacy in no time.

Mainstream support for Sitecore 8.2 is going to end soon :disappointed: 

https://kb.sitecore.net/articles/641167

https://kb.sitecore.net/articles/087164

As an architect, it is no point to start any new project on .Net framework based cms as microsoft has put an end to .Net framework. They lately said .Net framework 4.8 is the last in its journey.

“The .NET Framework is on it’s last release — there will not be another one after 4.8”

https://devblogs.microsoft.com/dotnet/net-core-is-the-future-of-net/

https://betanews.com/2019/05/07/future-of-dotnet/

https://medium.com/@andy.watt83/the-net-framework-is-done-8aec3bbae12d



No comments :