Organización de un proyecto para admitir .NET Framework y .NET

Puede crear una solución que se compile para .NET Framework y .NET en paralelo. En este artículo se tratan varias opciones de organización del proyecto para ayudarlo a lograr este objetivo. Estos son algunos escenarios típicos que se deben tener en cuenta a la hora de decidir cómo configurar el diseño del proyecto con .NET. Es posible que la lista no cubra todo lo que quiere.

  • Combinar los proyectos existentes y los de .NET en un solo proyecto

    Ventajas

    • Simplifica el proceso de compilación mediante la compilación de un proyecto único en lugar de varios proyectos, donde cada uno de ellos tiene como destino una plataforma o versión distinta de .NET Framework.
    • Simplifica la administración de archivos de origen en proyectos con compatibilidad con múltiples versiones, porque debe administrar un solo archivo de proyecto. Al agregar o quitar archivos de origen, las alternativas exigen que los sincronice manualmente con los otros proyectos.
    • Para generar fácilmente un paquete NuGet para consumo.
    • Permite escribir código para una versión de .NET Framework específica mediante directivas del compilador.

    Desventaja:

  • Mantener todos los proyectos separados

    Ventajas

    • Permite el desarrollo en proyectos existentes por parte de desarrolladores y colaboradores que podrían no tener Visual Studio 2019 o una versión posterior.
    • Reduce la posibilidad de crear nuevos errores en proyectos existentes porque estos no requieren renovación de código.

Tenga en cuenta este repositorio de GitHub de ejemplo. En la ilustración siguiente se muestra cómo está dispuesto este repositorio:

Existing project structure diagram

En las secciones siguientes se explican varias maneras de agregar compatibilidad con .NET en función del repositorio de ejemplo.

Reemplazo de proyectos existentes por un proyecto de .NET con varios destinos

Reorganice el repositorio de manera que se quite cualquier archivo *.csproj existente y se cree un archivo *.csproj único que establezca varios marcos de trabajo como destino. Esta es una opción excelente, porque un proyecto único se puede compilar para distintos marcos. También tiene la capacidad de controlar distintas dependencias y opciones de compilación por cada marco de trabajo de destino.

project that targets multiple frameworks diagram

Para obtener un ejemplo de código, vea GitHub.

Los cambios que debe tener en cuenta son los siguientes:

  • Reemplazo de packages.config y *.csproj por un nuevo *.csproj de .NET. Los paquetes NuGet se especifican con <PackageReference> ItemGroup.

Mantenimiento de los proyectos existentes y creación de un proyecto de .NET

Si hay proyectos existentes que tienen como destino marcos anteriores, se recomienda dejarlos intactos y usar un proyecto de .NET para establecer como destino marcos futuros.

.NET project with existing projects in a different folder diagram

Para obtener un ejemplo de código, vea GitHub.

Los proyectos existentes y el de .NET se mantienen en carpetas independientes. El mantenimiento de los proyectos en carpetas independientes evita que sea necesario tener Visual Studio 2019 o versiones posteriores. Puede crear una solución independiente que solo abra los proyectos anteriores.

Consulte también