13 Dezember 2024

Top 5 .NET-Projekte für Python mit Cs2Python umgewandelt

CodePorting.Wrapper Cs2Python ist ein Werkzeug, das das Einbinden fertiger .NET-Projekte, die in C# geschrieben wurden, in Python-kompatible Module ermöglicht. Dies vereinfacht die Nutzung bestehender .NET-Projekte in Python, ohne dass sie von Grund auf neu geschrieben oder ihr Quellcode übersetzt werden muss. Die Verwendung dieses Werkzeugs spart Entwicklern Zeit und Mühe und gewährleistet eine hohe Leistung des Produkts in Python. In diesem Artikel betrachten wir die fünf beliebtesten .NET-Projekte, die mit dem Tool CodePorting.Wrapper Cs2Python für die Verwendung in Python eingebunden wurden.

Anpassung der Aspose-Bibliotheken für Python

Aspose ist ein führendes Unternehmen, das sich auf die Entwicklung hochwertiger Bibliotheken für die Arbeit mit verschiedenen Dateiformaten spezialisiert hat. Ihre Produkte sind bei Entwicklern weithin für ihre Zuverlässigkeit und den reichen Funktionsumfang bekannt. Ursprünglich wurden all diese Bibliotheken in C# erstellt, und im Laufe der Zeit sind sie zu unverzichtbaren Werkzeugen für .NET-Entwickler weltweit geworden.

Um Python zu unterstützen, wurde beschlossen, automatisch Wrapper-Code zu generieren, der die Verwendung der vorhandenen .NET-Assembly in der Python-Umgebung ermöglicht. Dazu wurde das Tool CodePorting.Wrapper Cs2Python entwickelt, das die Anpassung von .NET-Projekten für die Nutzung in Python erleichtert.

Wir werden die fünf beliebtesten Aspose-Produkte für Python anhand der Anzahl der Downloads von PyPI überprüfen:

Produkt Anzahl der Downloads
1 Aspose.Words 1,287,268
2 Aspose.Slides 488,062
3 Aspose.Cells 286,120
4 Aspose.PDF 177,246
5 Aspose.Email 136,465

1. Aspose.Words

Anzahl der Zeilen des C#-Quellcodes
4,100,000

Aspose.Words ist eine leistungsstarke Bibliothek für die Arbeit mit Word-Dokumenten, die eine breite Palette von Funktionen für das Erstellen, Bearbeiten, Konvertieren und Rendern von Dokumenten bietet. Sie unterstützt viele Formate, darunter DOC, DOCX, PDF, HTML und mehr. Aspose.Words ermöglicht Entwicklern die Automatisierung der Dokumentenverarbeitung, ohne Microsoft Word oder andere Drittanbieteranwendungen verwenden zu müssen.

Die erste Version der für Python umgewandelten Bibliothek wurde 2021 veröffentlicht. Seitdem hat sie sich parallel zu den steigenden Fähigkeiten des Cs2Python-Umwandlungstools weiterentwickelt. Die gesamte Python-API wird automatisch auf Basis der C#-API der Bibliothek generiert.

Vergleich der C#- und Python-APIs

  1. Erstellen eines neuen Dokuments und Hinzufügen von Text

Beispiel in C#:

using Aspose.Words;

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Writeln("Hello, World!");
doc.Save("HelloWorld.docx");

Beispiel in Python:

import aspose.words as aw

doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.writeln("Hello, World!")
doc.save("HelloWorld.docx")
  1. Konvertieren eines Dokuments von DOCX in PDF

Beispiel in C#:

using Aspose.Words;

Document doc = new Document("Document.docx");
doc.Save("Document.pdf");

In Python:

import aspose.words as aw

doc = aw.Document("Document.docx")
doc.save("Document.pdf")
  1. Zusammenführen zweier Dokumente

Beispiel in C#:

using Aspose.Words;

Document doc1 = new Document("Document1.docx");
Document doc2 = new Document("Document2.docx");

DocumentBuilder builder = new DocumentBuilder(doc1);
builder.MoveToDocumentEnd();
builder.InsertDocument(doc2, ImportFormatMode.KeepSourceFormatting);

doc1.Save("MergedDocument.docx");

In Python:

import aspose.words as aw

doc1 = aw.Document("Document1.docx")
doc2 = aw.Document("Document2.docx")

builder = aw.DocumentBuilder(doc1)
builder.move_to_document_end()
builder.insert_document(doc2, aw.ImportFormatMode.KEEP_SOURCE_FORMATTING)

doc1.save("MergedDocument.docx")

Wie wir sehen können, sind die APIs in beiden Sprachen sehr ähnlich, was es Entwicklern erleichtert, zwischen C# und Python zu wechseln. Darüber hinaus vereinfacht es die Dokumentation und Wartung der Aspose-Bibliotheken. Dank des CodePorting.Wrapper Cs2Python-Tools können Entwickler nun die leistungsstarken Funktionen von Aspose.Words in ihren Python-Projekten nutzen.

2. Aspose.Slides

Anzahl der Zeilen des C#-Quellcodes
2,860,000

Aspose.Slides ist eine leistungsstarke Bibliothek für die Arbeit mit Präsentationen, die es Entwicklern ermöglicht, Präsentationen zu erstellen, zu ändern, zu konvertieren und darzustellen, ohne Anwendungen wie Microsoft PowerPoint verwenden zu müssen. Sie unterstützt eine Vielzahl von Formaten, darunter PPT, PPTX, PDF, HTML und mehr.

Die erste Version der für Python umgewandelten Bibliothek wurde 2021 veröffentlicht und sofort von den Nutzern gut angenommen. Lassen Sie uns die ursprüngliche C#-API und die automatisch generierte Python-API vergleichen.

Codebeispiele: Vergleich der C#- und Python-APIs

  1. Erstellen einer neuen Präsentation

In C#:

using Aspose.Slides;

Presentation pres = new Presentation();
pres.Save("NewPresentation.pptx", SaveFormat.Pptx);

In Python:

import aspose.slides as slides

pres = slides.Presentation()
pres.save("NewPresentation.pptx", slides.SaveFormat.Pptx)
  1. Hinzufügen einer Folie

In C#:

using Aspose.Slides;

Presentation pres = new Presentation("ExistingPresentation.pptx");

ISlide slide = pres.Slides.AddEmptySlide(pres.LayoutSlides[0]);
IAutoShape textbox = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 500, 200);
textbox.TextFrame.Text = "Hello, Aspose.Slides!";

pres.Save("UpdatedPresentation.pptx", SaveFormat.Pptx);

In Python:

import aspose.slides as slides

pres = slides.Presentation("ExistingPresentation.pptx")

slide = pres.slides.add_empty_slide(pres.layout_slides[0])
textbox = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 50, 50, 500, 200)
textbox.text_frame.text = "Hello, Aspose.Slides!"

pres.save("UpdatedPresentation.pptx", slides.SaveFormat.Pptx)
  1. Konvertieren in PDF

In C#:

using Aspose.Slides;

Presentation pres = new Presentation("ExistingPresentation.pptx");
pres.Save("ConvertedPresentation.pdf", SaveFormat.Pdf);

In Python:

import aspose.slides as slides

pres = slides.Presentation("ExistingPresentation.pptx")
pres.save("ConvertedPresentation.pdf", slides.SaveFormat.Pdf)

Wie wir sehen können, liegt der Unterschied nur im Codierungsstil, der für jede Programmiersprache einzigartig ist.

3. Aspose.Cells

Anzahl der Zeilen des C#-Quellcodes
600,000

Aspose.Cells ist eine leistungsstarke API für die Arbeit mit Excel-Dateien, die es Entwicklern ermöglicht, Tabellenkalkulationen in ihren Anwendungen zu erstellen, zu bearbeiten, zu formatieren und zu konvertieren. Sie unterstützt eine breite Palette von Formaten, darunter XLS, XLSX, CSV, PDF und mehr.

Aspose.Cells kann große Datenmengen in Tabellenkalkulationen verarbeiten, was hohe Anforderungen an die Leistung stellt. Durch das Einbinden des hochleistungsfähigen kompilierten C#-Codes bleibt diese Leistung auch bei der Verwendung der Bibliothek in Python erhalten. Die Übersetzung des Codes in Python könnte die Ausführungsgeschwindigkeit erheblich reduzieren.

Beispiel in C#:

using Aspose.Cells;
using System;

Workbook workbook = new Workbook("HugeDataWithComplexFormulas.xlsx");
workbook.CalculateFormula();

Worksheet sheet = workbook.Worksheets[0];
Cell resultCell = sheet.Cells["A1"];
Console.WriteLine("Berechnungsergebnis: " + resultCell.Value);

Beispiel in Python:

import aspose.cells as cells

workbook = cells.Workbook("HugeDataWithComplexFormulas.xlsx")
workbook.calculate_formula()

sheet = workbook.worksheets[0]
result_cell = sheet.cells.get("A1")
print("Berechnungsergebnis: ", result_cell.value)

Dieser Code illustriert die Verwendung von Aspose.Cells zur Verarbeitung großer Datenmengen und zur Berechnung von Formeln in sowohl C# als auch Python. Die calculate_formula-Methode leistet erhebliche Arbeit und stellt sicher, dass alle Formeln in der Tabelle korrekt berechnet werden, ohne dass die Leistung in Python verloren geht.

4. Aspose.PDF

Anzahl der Zeilen des C#-Quellcodes
3,655,000

Aspose.PDF ist eine leistungsstarke Bibliothek für die Arbeit mit PDF-Dokumenten, die es Entwicklern ermöglicht, PDF-Dokumente programmgesteuert zu erstellen, zu lesen, zu bearbeiten und zu konvertieren.

Wie wir sehen können, ist Aspose.PDF ein großes und komplexes Projekt mit einer umfangreichen Codebasis in C#. Die Bibliotheksmethoden können nicht nur einfache Datentypen, sondern auch komplexe Strukturen wie Sammlungen und Objekte zurückgeben. Einer der starken Punkte des CodePorting.Wrapper Cs2Python-Tools ist die Fähigkeit, solche Datentypen in Python zu unterstützen.

Beispiel in C#:

using Aspose.Pdf;
using Aspose.Pdf.Text;
using System;
using System.Collections.Generic;

Document document = new Document("Sample.pdf");
Page page = document.Pages[1];

ImagePlacementAbsorber imageAbsorber = new ImagePlacementAbsorber();
page.Accept(imageAbsorber);

// Die ersten drei Bilder von der aktuellen Seite abrufen
List<ImagePlacement> images = imageAbsorber.ImagePlacements.Take(3).ToList();

foreach (ImagePlacement image in images)
{
    Console.WriteLine("Bild gefunden bei: " + image.Rectangle);
}

In Python:

import aspose.pdf as pdf

document = pdf.Document("Sample.pdf")
page = document.pages[1]

image_placement_absorber = pdf.ImagePlacementAbsorber()
page.accept(image_placement_absorber)

# Die ersten drei Bilder von der aktuellen Seite abrufen
images = image_placement_absorber.image_placements[:3]

for image in images:
    print("Bild gefunden bei:", image.rectangle)

Zwischen der eingebundenen Bibliothek und dem Python-Code ausgetauschte Sammlungen unterstützen alle Standard-Python-Methoden und -Operationen für Sequenzen. Dazu gehören Methoden wie pop, index, count, sort, reverse, copy, append, remove, clear, contains sowie die Unterstützung der Iteration mittels __iter__ und der Zugriff auf Elemente über eckige Klammern ([]). Dies macht die Interaktion mit Sammlungen aus den eingebundenen Bibliotheken genauso komfortabel und intuitiv wie die Arbeit mit anderen Standard-Sammlungen in der Sprache.

5. Aspose.Email

Anzahl der Zeilen des C#-Quellcodes
397,000

Aspose.Email ist eine Bibliothek für die Arbeit mit E-Mails, die eine Vielzahl von Nutzungsszenarien und Protokollen wie SMTP, POP3, IMAP, Exchange Web Services (EWS), WebDav und andere unterstützt.

Vergleich der C#- und Python-APIs

  1. Erstellen und Senden einer E-Mail

In C#:

using Aspose.Email;
using Aspose.Email.Clients.Smtp;

var message = new MailMessage();
message.From = new MailAddress("sender@example.com");
message.To.Add(new MailAddress("receiver@example.com"));
message.Subject = "Test Email";
message.Body = "This is a test email sent using Aspose.Email.";

var client = new SmtpClient("smtp.server.com", 25, "username", "password");
client.Send(message);

In Python:

import aspose.email as ae

message = ae.MailMessage()
message.from_address = ae.MailAddress("sender@example.com")
message.to.append(ae.MailAddress("receiver@example.com"))
message.subject = "Test Email"
message.body = "This is a test email sent using Aspose.Email."

client = ae.SmtpClient("smtp.server.com", 25, "username", "password")
client.send(message)
  1. Lesen einer PST-Datei

In C#:

using Aspose.Email;
using Aspose.Email.Storage.Pst;
using System;

void PrintFolderInfo(FolderInfo folder)
{
    Console.WriteLine($"Ordner: {folder.DisplayName}, Nachrichtenanzahl: {folder.ContentCount}");
    foreach (var subFolder in folder.GetSubFolders())
    {
        PrintFolderInfo(subFolder);
    }
}

var personalStorage = PersonalStorage.FromFile("path/to/file.pst");
PrintFolderInfo(personalStorage.RootFolder);

In Python:

import aspose.email as ae
import aspose.email.storage.pst as pst

def print_folder_info(folder):
    print(f"Ordner: {folder.display_name}, Nachrichtenanzahl: {folder.content_count}")
    for sub_folder in folder.get_sub_folders():
        print_folder_info(sub_folder)

personal_storage = pst.PersonalStorage.from_file("path/to/file.pst")
print_folder_info(personal_storage.root_folder)

In diesem Beispiel durchlaufen wir rekursiv alle Ordner in der PST-Datei und geben die Anzahl der Nachrichten in jedem Ordner mithilfe der FolderInfo.ContentCount-Eigenschaft (FolderInfo.content_count in Python) aus.

Wie wir sehen können, ist die Python-API-Schnittstelle erneut identisch mit der C#-API-Schnittstelle. Dies wird durch die automatische Erstellung einer Zwischenschicht erreicht, die Wrapper oder Bindungen für Klassen, Methoden und Eigenschaften in Python implementiert. Diese Bindungen ermöglichen den Zugriff auf die in C# geschriebene Funktionalität aus der Python-Umgebung.

Fazit

Abschließend möchten wir die wichtigsten Vorteile hervorheben, die das Einbinden von .NET-Bibliotheken für Python mit dem Tool CodePorting.Wrapper Cs2Python bietet:

  1. Erhaltung der Funktionalität: Durch das Einbinden können alle Funktionen und Merkmale der ursprünglichen .NET-Bibliothek in Python genutzt werden, ohne dass die Leistung und Funktionalität verloren gehen.
  2. Zeit- und Ressourceneinsparungen: Anstatt den Code von Grund auf neu zu schreiben, können Entwickler bestehende .NET-Bibliotheken schnell für die Verwendung in Python einbinden, was die Entwicklungszeit erheblich verkürzt.
  3. Breite Kompatibilität: Eingebundene Bibliotheken können auf verschiedenen Plattformen wie Windows, Linux und macOS laufen.
  4. Automatische API-Generierung: Die gesamte Python-API wird automatisch auf Basis der C#-API der Bibliothek generiert, was den Integrationsprozess vereinfacht und funktionale Konsistenz gewährleistet.

Wenn Sie Ihr Unternehmensprojekt auf .NET-Basis erfolgreich für die Verwendung in Python einbinden möchten, kontaktieren Sie uns bitte. Wir helfen Ihnen gerne dabei, Ihre Ziele zu erreichen!

Verwandte Nachrichten

In Verbindung stehende Artikel