This week Microsoft is holding their annual BUILD conference and as with every other build event, we are greeted with major announcements regarding the future of the Microsoft Technology Stack. This year is no different. There are two announcements that are most compelling to the DNN Community; Introducing.NET 5 and .NET Core is the Future of .NET. I have already thrown my $0.02 on this topic with a post on my personal blog .NET 5: The Future is Now, however, I wanted to take a moment to dive into more specifics around what the DNN Technology Advisory Group is doing for DNN as it relates to these recent announcements that seem to set a clear future.
Goals Already Set
Back in November, I published a blog titled DNN, .NET Core, and the Road Ahead this was the first collaborative announcement from the Technology Advisory Group outlining our plans to help get DNN Platform ready for a transition to .NET Core.
Progress is Being Made
Working from the goals set in November the DNN Community has worked to make great strides forward in cleaning the technical debt and obtaining a deeper understanding of exactly what the path forward looks like. A few major accomplishments since November.
- The PersonaBar Project has been extensively restructured and cleaned up. The reductions in processing power, deployment footprint, and ease of management have had made a dramatic improvement in the ability for the Community to support the PersonaBar, additionally, users will notice much better performance with 9.4.0.
- All projects included within the DNN Platform have been updated to leverage .NET 4.7.2 which opens doors for future architecture improvements. Although a simple change on the surface, this was one of the most critical elements necessary.
- An audit was completed of all “legacy code” that should have been removed from the platform years ago. I recently blogged about the plans for version 10.0 to remove many of these really, really old items. By reducing the footprint of the project we can work to improve the future.
- Multiple other submissions have been entered that remove buggy code, non-supported items from the past, and other legacy items.
As a community, we have tackled a number of very large initiatives in the past 6 months, and we should be proud of our progress.
Is Migration Critical?
I addressed this question back in November and touched on it slightly in the above-linked article, but it is worth resting here. At this point in time .NET Framework, and by association WebForms and all other supporting technology for the current DNN Platform is supported by Microsoft until at least 2029, this far exceeds the support lifespan of any .NET Core solution. This isn’t a reason to say “don’t go” but it is a reason to confirm that this is NOT a situation where we will die if we don’t do it.
The information announced this week isn’t exactly “new” information, the writing has been on the wall with the recent progressions in .NET Core releases. It is important for DNN to get to .NET Core, however, as discussed in the posting from November we need to be methodical in the transition.
We have identified a number of key initiatives that are being reviewed at this time. These are some of the high-level tasks/goals that we are looking to accomplish. A few have owners assigned, others are open for assistance. If you have experience/desire to help on any of these, please reach out.
- Implementation of Dependency Injection Support - In Progress - Goal to introduce support for the aspnetcore DI container to the existing versions of DNN to allow developers an ability to start using new technology.
- Removal of legacy/unused Items from DNN Platform - In Progress - Removing clutter or items that have simply been “Forgotten” as part of the transition of the platform.
- The architecture of a new API structure - During work for various tasks many anti-patterns have been uncovered, including circular dependencies which require substantial efforts to unravel. Work will soon be starting to propose a new API structure, including assembly layout and otherwise, as well as a migration plan to get there.
- Razor Pages Support - In Progress - This is being worked on by a community member, Andrew Hoefling, it was slated for inclusion in 9.4.0 as experimental, however, might be delayed slightly due to the above.
- Telerik Removal - Needs Help - The DNN Platform has a dependency on the Telerik components for the File Manager. We need to get these removed before we can truly think of a .NET Core play.
There will be more things to do as we continue down this road. However, these are the key items. of immediate concern.
During the TAG meeting this past week the upcoming release schedule has been discussed. At this time the upcoming releases will still be going out as planned, with 9.4 coming in June and 10.x planned for Q4 2019. Discussions within the group have indicated support for a possible more aggressive versioning process if needed, as we work to remove some of the legacy code that is limiting the ability to implement the new standard.
Within the TAG group, it was discussed that a more aggressive release strategy may be needed to obtain the change needed quickly. If this becomes a reality the community is still committed to managing stable releases to allow time for breaking changes.
Exciting times are ahead of us. DNN Platform is making great strides to rise from the historical technical debt and will become a better product as we progress. Community involvement and engagement are still key. We are safe, stable, and secure where we are today, so we need to be meticulous in implementation to ensure the next version retains those attributes.