From time to time every platform faces a choice – continue supporting old technology or make a break with the past so that you can better take advantage of current technology and position your platform for the future. We have been very fortunate over the past several years that we have not been faced with this choice very often. In 2004 we officially ended support for ASP.Net 1.0. In 2006, with the sun setting of DotNetNuke 3.x, we officially ended support for ASP.Net 1.1, even though many modules that were compiled against the .Net 1.1 framework continue to run today without any difficulty. The DotNetNuke platform as it exists today, supports the same operating systems, .Net frameworks and databases as those we supported in 2005 when DotNetNuke 4.0 was released.
We once again find ourselves at the point where supporting those old framework and database versions is hindering our ability to keep up with the state of the art in .Net development. .Net 3.0 and 3.5 added substantial improvements to the framework which we have largely been unable to take advantage of in the core platform. Not only does this hinder core development, but it also hinders our ability to help the development community apply best practices when using new technologies like Linq to Sql or Entity Framework. Equally important, module vendors are likewise held back from moving forward as long as we continue to support ASP.net 2.0. Commercial module developers have told us that they very much are constrained by the baseline framework supported by the platform. As long as a large majority of the community is running on ASP.Net 2.0, then they will continue to develop for that platform. By moving DotNetNuke forward, we enable our vendor community to follow our lead and move forward themselves after they have given the users adequate time to upgrade to the new DotNetNuke version.
Continuing to support SQL Server 2000 also means that we can’t optimize DotNetNuke for the current platforms like SQL Server 2005 or SQL Server 2008. We are increasingly having trouble maintaining environments where we can ensure backwards compatibility across all of the supported database versions. This is seen by the number of recent bugs which affected SQL Server 2000 compatibility. This is not just an issue with core developers. As an Open Source project, we rely on the community to help us identify issues and suggest fixes. As fewer and fewer members of the community are running these platforms, we have fewer and fewer resources to help identify and correct issues when they occur. As a result, a smaller and smaller segment of the community is responsible for continued testing to support an equally small segment of users.
Whenever we reach a point where we wonder whether to continue supporting a feature or a platform, the first question we always ask is how many people will this impact? Since the first day when Shaun launched DotNetNuke in 2002, we have always taken backwards compatibility very seriously. That is not to say we have been perfect in maintaining compatibility, but that it is a high priority for us. Discontinuing support for features or platforms is not a decision we make lightly. Over the past 18 months we have spent a lot of time talking with system integrators, hosters, developers and our contacts at Microsoft to find out how widely ASP.NET 3.5 has been deployed. We also asked how widely SQL Server 2000 continues to be used.
Based on the data we have collected and the people we spoke with, we know that well under 10% of sites currently running DotNetNuke do not have ASP.NET 3.5 deployed and and equally small percentage of sites are still running SQL Server 2000. As a result of this information we have made the decision to officially require ASP.NET 3.5 SP1 and SQL Server 2005 for DotNetNuke 5.2 and beyond. Those people who are unable to meet these system requirements will still be able to run DotNetNuke 4.9.5 and 5.1.2 which are both stable products.
In addition to ending support for SQL Server 2000 and officially moving to ASP.NET 3.5 SP1; with the release of DotNetNuke 4.9.5 we have stopped development of the DotNetNuke 4.x platform. We will continue to evaluate security issues on a case by case basis and will consider the release of DotNetNuke 4.9.6 if we feel a security issue is critical enough to warrant such a release. One of the things that we learned when we made the transition from the 3.x to the 4.x platforms and again when we made the transition from 4.x to 5.x, is that we spend a large amount of effort to try and keep two dissimilar codebases in sync. Bugs must be validated against two platforms, triaged, and resources assigned. The 4.x and 5.x platforms are dissimilar enough that it is not always easy to port a fix from 5.x to 4.x, and often requires a completely unique fix. Continuing to maintain the 4.x platform consumes resources that would otherwise be used to further improve the 5.x platform. Given the current state of the 5.x platform, we feel that the time is right to take our focus off the platform we first launched with the release of Visual Studio 2005 and focus our resources 100% on completing the Cambrian vision we laid out at OpenForce 2007 and further moving our platform forward.
With these changes we are confident that the DotNetNuke platform will continue to maintain it’s leadership position as the Premier Web Content Management System and Application Framework for Microsoft .Net.