Prise en charge .NET 6

Introduction

À partir de Aspose.Slides 23.2, la prise en charge de .NET6 a été implémentée. La particularité de cette prise en charge est que .NET6 ne supporte plus System.Drawing.Common sous Linux (breaking change) et Slides implémente ce sous‑système graphique lui‑même en tant que composant C++.

Aspose.Slides for .NET fonctionne désormais sans dépendances sur GDI/libgdiplus sur :

  • Windows
  • Linux

Le support MacOS est en cours.

Utilisation de Slides pour .NET 6 sur AWS et Azure

.NET6 est la version préférée pour Aspose.Slides utilisé dans le cloud (AWS, Azure ou d’autres solutions cloud).

Auparavant, lorsqu’Aspose.Slides était utilisé sur un hôte Linux, des dépendances supplémentaires (libgdiplus) devaient être installées, ce qui était souvent gênant ou impraticable (par exemple lors de l’utilisation de AWS Lambda). Avec Slides pour .NET6, ces dépendances ne sont plus nécessaires, ce qui rend le déploiement beaucoup plus simple.

Une autre considération concerne les problèmes survenus lorsqu’Aspose.Slides était utilisé sur une solution cloud avec un hôte Windows. Par exemple, Azure Functions ont des limitations pour le processus et entraînent des problèmes lors d’une opération d’exportation PDF (voir this). L’utilisation d’Aspose.Slides pour .NET6 résout ce problème.

Utilisation du package System.Drawing.Common et des classes Slides pour .NET 6 (CS0433 : L’erreur Type existe à la fois dans Slides et System.Drawing.Common)

Parfois, les dépendances System.Drawing et Slides pour .NET6 doivent être utilisées dans un même projet (par exemple, lorsque le projet .NET6 dépend d’autres packages qui, à leur tour, dépendent de System.Drawing). Cela peut entraîner des erreurs de compilation comme celles‑ci :

  • CS0433: The type ‘Image’ exists in both ‘Aspose.Slides, Version=23.2.0.0, Culture=neutral, PublicKeyToken=716fcc553a201e56’ and ‘System.Drawing.Common, Version=6.0.0.0
  • CS0433: The type ‘Graphics’ exists in both ‘Aspose.Slides, Version=23.2.0.0, Culture=neutral, PublicKeyToken=716fcc553a201e56’ and ‘System.Drawing.Common, Version=6.0.0.0

Dans ce cas, vous pouvez utiliser extern alias pour Aspose.Slides (version inférieure à 24.8) :

  1. Sélectionnez l’assembly Aspose.Slides parmi les dépendances du projet, puis cliquez sur Properties. Aspose Slides package properties
  2. Définissez un alias (par exemple, “Slides”). Aspose Slides alias

Désormais, les types provenant de System.Drawing.Common seront utilisés par défaut. L’alias d’assembly externe doit être spécifié là où les types Aspose.Slides sont nécessaires.

extern alias Slides;
using Slides::Aspise.Slides;

Exemple complet :

extern alias Slides;
using Slides::Aspose.Slides;

static Slides::System.Drawing.Image GetThumbnail(Presentation pres)
{
    return pres.Slides[0].GetThumbnail();
}

À partir de la version 24.8, l’API publique dépréciée avec des dépendances sur System.Drawing a été supprimée. Concernant l’exemple de code ci‑dessus, vous pouvez obtenir l’image de la diapositive comme indiqué ci‑après.

static Aspose.Slides.IImage GetThumbnail(Presentation presentation)
{
    return presentation.Slides[0].GetImage();
}

La nouvelle API est décrite plus en détail dans Modern API.