Pensando en el futuro de DNN.Platform, creo que tenemos una plataforma magnífica, que ya lleva creciendo durante más de 15 años. Con estos 15 años de vida, tenemos una serie de cosas que han aparecido y evolucionado pero que son "no precisamente perfectas". Sin embargo, a medida que avanzamos hacia el futuro, tenemos otras cosas asombrosas frente a nosotros: .NET Core, Blazor,... Digamos que tenemos muchas nuevas tecnologías que podrían implementarse y que ayudarán a que la plataforma crezca. Pero este crecimiento no se producirá sin algunos inconvenientes, por lo que merece la pena revisarlo periódicamente, para que todos estemos al día. Uno de estos problemas crecientes es la permanente administración de API que puede causar problemas de actualización; queremos planificar con anticipación, así que profundicemos en lo que viene.
Política de versiones
Todos recordamos la versión 9.2.0 y los bruscos cambios que introducía, con potencial para romper muchas instalaciones de DNN. Una de las primeras tareas en las que trabajé como líder del grupo tecnológico fue ayudar a crear la Política de Versiones que se usará para describir cómo, cuándo y por qué haremos algunos de estos cambios más dolorosos en la plataforma de DNN.
Nunca queremos hacer este tipo de cambios; sin embargo, es algo que es muy importante para el futuro a largo plazo de DNN. Cuanto más "desorden" podamos eliminar, mejor será el rendimiento de la plataforma y más fácil será actualizar a las nuevas tecnologías.
¿Que viene con la versión 10.0?
La hoja de ruta actual prevé el lanzamiento de la versión 10.0 este próximo otoño. Como parte de este esfuerzo, seguiremos con los pasos necesarios para eliminar todo el código marcado como obsoleto en versiones anteriores; para los desarrolladores que no hayan tenido en cuenta estas advertencias, insistimos en que será otra tanda de cambios muy drásticos, similar a la de 9.2.0 .
En cuanto al código base de DNN Platform, aún tenemos API activas que estaban señaladas para ser eliminadas en la versión 6.0, allá por 2009, y aún esperan ser eliminadas. Tal y como señalamos en el proceso de control de versiones, estos elementos deberían haberse eliminado antes de la versión 8.0.0. Tenemos otra gran cantidad de API que se marcaron para su eliminación en 7.x y 8.x que aún no se han eliminado. Todo este código heredado se va acumulando en el código base de DNN Platform, y continuará limitando nuestra capacidad de progreso técnico; por lo tanto, otra importante tanda de drásticos cambios se llevará a cabo con la versión 10.0 y queremos comunicar esto con antelación.
Actualización de API con la Versión de Borrado
Cuando se implementó la política de control de versiones, se estableció la estrategia de eliminado de componentes en +2 versiones principales. Es decir, algo marcado para eliminación en DNN 7 se eliminará en DNN 9, o los elementos marcados para eliminación en DNN 9 se eliminarían en DNN 11. Este proceso ha vuelto a revisarse completamente, y se han marcado todos los elementos para ser eliminados en DNN 8.x o anteriores para que incluyan una nota de "Eliminación programada en v10.0.0.".
Magnitud del cambio
Atendiendo a los números, tenemos un total de 336 métodos o clases en la API de la plataforma DNN que se eliminarán como parte de la versión 10.0. Puede encontrar fácilmente estos métodos utilizando la búsqueda "Buscar en archivos" de Visual Studio, o mediante una búsqueda de código GitHub buscando la frase "Scheduled removal in v10.0.0.".
Soporte para programación en 10.x
Espero que con la comunicación adecuada y el soporte mejorado para desarrolladores, podamos hacer que la versión 10.x sea un éxito y no un mal trago para quienes deseen actualizar. Hasta ahora, tenemos algunas sugerencias para desarrolladores que pueden ser tenidas en cuenta, así como una serie de tareas que se completarán para facilitar la transición.
Recomendaciones de mejores prácticas: evite los avisos al compilar
El cambio más sencillo posible para los desarrolladores es garantizar que no existan avisos de compilación al usar un método obsoleto. Si su código puede compilarse sobre las versiones DNN 9.3.2 o 9.4.0 sin avisos de compilación, entonces puede estar seguro de que lo hará para 10.x. Si ve errores, este sería el momento de cambiar a nuevas implementaciones. La mayoría de los métodos que se eliminan tienen una guía sobre el nuevo método API que se debe utilizar.
Publicación de 10.0 Alpha
Una vez que se complete la versión 9.4.0, a principios de junio, el grupo TAG cambiará de marcha, y apuntará hacia el desarrollo de 9.4.1 y 10.0.0. Una vez que ocurra este cambio, se procesará una solicitud de procesamiento (pull request) para eliminar TODOS los métodos obsoletos que deben ser borrados, y se publicará una versión Alpha en GitHub para que los desarrolladores la descarguen, instalen y prueben utilizando sus soluciones con la API reducida. Sin una publicación programada hasta el cuarto trimestre, esto garantizará que los desarrolladores tengan al menos 3-4 meses para probar las nuevas API y debe permitir un tiempo adecuado para que el soporte de 10.0 sea más fácil.
Paquetes NuGet 10.0 Alpha
Para aquellos desarrolladores que buscan una validación programática de la compatibilidad con la nueva API, también publicaremos los paquetes NuGet de versión preliminar para la versión 10.0.0. Los desarrolladores pueden actualizar rápidamente sus referencias de NuGet para reflejar la versión 10.0.0 y validar también esta funcionalidad así.
El futuro es radiante
A medida que continuamos mejorando la plataforma DNN, el futuro es brillante. Con el cuidado y la administración adecuados, podemos continuar evolucionando la plataforma DNN para adaptarnos a los tiempos y continuar brindando una funcionalidad de primera clase a todos los usuarios. Mi objetivo es continuar comunicando este tipo de cambios con la mayor antelación posible, y así garantizar que todos los miembros del ecosistema DNN tengan tiempo suficiente para reaccionar.
Traducción del original de Mitchel Sellers: Moving Forward DNN Platform 10.0: Growing Pains Lead To Improvement