Developing for the Episerver platform has changed a lot over the years, thanks to innovative new tools and techniques. This Halloween, we revive the plagues of the past - for one last time!
1. The old naming convention for CMS versions
Some seasoned Episerver developers still wake up in the middle of the night with a scream, the nightmares of the old naming convention still fresh in their minds like the silence of the lambs.
It is no wonder why this one was a Top 5 Fear, with releases and service packs and hotfixes all in a hot steaming mess.
After Episerver adopted semantic versioning and continuous delivery through Nuget, the need for specific release names is gone. (Although Episerver still have "seasonal launches" to promote new features.)
2. Manual deployment to server environments
If you think the world used to be a better place, you must be psycho. Or you are "too young" to remember manual deployments.
Believe it or not, we used to manually gather the files on disk that we needed for our site, ZIP them up, FTP them to another server, unZIP them and hope we had everything in order. Needless to say, this was time-consuming, prone to human error and customer misery.
3. Global Assembly Cache and DLL hell
This one's a double hellraiser: Remember Episerver's Deployment Center? Yeah, the thing where you downloaded installation files, crossed your fingers that your machine's IIS version was supported, and prayed that installation completed. (It put the "hell" in "Powershell".)
Anyway, after installation through Deployment Center, Episerver's core DLLs were placed in your machine's Global Assembly Cache (GAC), a special Windows folder that hosted DLLs shared by all .NET applications on that machine. If an Episerver site referenced a particular DLL, it would expect to find it in the GAC. However, if a developer mistakenly included an alien DLL with identical name but different build among the site's files, you were in for long hours of debugging, like a night of the living dead.
Today, DLLs and their interdependencies for Episerver sites (including Episerver core files) are easily managed through Nuget packages, making developers' lives far more peaceful.
4. Building forms functionality with XForms
For years, XForms was the only way to work with user-facing web forms in Episerver. However, it seemed like less time spent working, and more time spent wrestling a poltergeist.
From a clunky user interface that only a goblin could love, to its paranormal tendency to produce non-semantic HTML - the omens were many. For developers, tweaking XForms even the slightest (say, post-process form data after submit, or add field validation), you should expect to retreat to a cabin in the woords and curse at your monitor from dusk till dawn.
Needless to say, new Episerver Forms was welcomed like a vampire slayer, with its HTML5 support, fully responsive user interface, and intuitive form building using the Blocks concept.
5. Massive upgrades and breaking changes
In the old days, developers welcomed Episerver upgrades like we welcomed 75 lashes with a soggy CAT5 cable.
For an upgrade didn't just mean "whoo hoo, new features!" - it rather meant weeks spent fixing breaking changes, rewriting deprecated code, trying to revive modules that mysteriously gave up on life, and regression testing EVERYTHING. With Episerver releases as infrequently as 6 months to 2 years, a lot of stuff was bound to break.
Today, Episerver releases new stuff EVERY WEEK, which allows developers and site owners to upgrade to a shining new version as often as they see fit. And upgrading is as easy as letting Visual Studio retrieve the updated Nuget packages. Child's play!
It's dangerous to go alone, take this!
Whether you enjoyed or suffered through this Halloween flashback to horrors past, I wish you the best of luck with your future Episerver development. You'll find a treasure chest of useful information over at Episerver World, so be sure to check out the forums, blogs, and official docs there.
Side quest: There are at least 15 classic horror movie titles scattered in this blog post. Leave a comment if you find some of them!