13 Aralık 2024

Python için Cs2Python Kullanılarak Hazırlanan En İyi 5 .NET Projesi

CodePorting.Wrapper Cs2Python, C# ile yazılmış hazır .NET projelerini Python ile uyumlu modüllere dönüştüren bir araçtır. Bu araç, mevcut .NET projelerinin Python'da kullanımı kolaylaştırır ve projeleri baştan yazma veya kaynak kodunu çevirme gereksinimini ortadan kaldırır. Bu aracı kullanmak, geliştiricilere zaman ve emek tasarrufu sağlar, aynı zamanda Python'da ürünün yüksek performansını garanti eder. Bu makalede, CodePorting.Wrapper Cs2Python aracını kullanarak Python'da kullanılmak üzere dönüştürülmüş en popüler beş .NET projesine göz atacağız.

Python İçin Aspose Kütüphanelerinin Uyarlanması

Aspose, çeşitli dosya formatlarıyla çalışmak için yüksek kaliteli kütüphaneler geliştirme konusunda uzmanlaşmış lider bir şirkettir. Ürünleri, geliştiriciler arasında güvenilirlikleri ve zengin işlevsellikleri ile tanınır. Başlangıçta, tüm bu kütüphaneler C# ile oluşturuldu ve zamanla dünya genelindeki .NET geliştiricileri için vazgeçilmez araçlar haline geldi.

Python'u desteklemek için, mevcut .NET derlemesinin Python ortamında kullanılmasını sağlayan otomatik olarak oluşturulmuş bir sarıcı kod üretmeye karar verildi. Bunu başarmak için, .NET projelerinin Python'da kullanımını kolaylaştıran CodePorting.Wrapper Cs2Python aracı geliştirildi.

PyPI üzerindeki indirme sayısına göre Python için en popüler beş Aspose ürününü inceleyeceğiz:

Ürün İndirme Sayısı
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

C# Kaynak Kodu Satır Sayısı
4,100,000

Aspose.Words, Word belgeleriyle çalışmak için güçlü bir kütüphanedir ve belgeleri oluşturma, düzenleme, dönüştürme ve işleme gibi geniş bir özellik yelpazesi sunar. DOC, DOCX, PDF, HTML ve daha birçok formatı destekler. Aspose.Words, geliştiricilerin Microsoft Word veya diğer üçüncü taraf uygulamaları kullanmadan belge işlemlerini otomatikleştirmelerini sağlar.

Python için sarılmış kütüphanenin ilk sürümü 2021'de piyasaya sürüldü. O zamandan beri, Cs2Python sarma aracının artan yetenekleriyle birlikte gelişmeye devam etti. Kütüphanenin tüm Python API'si, C# API'si temel alınarak otomatik olarak oluşturulmaktadır.

C# ve Python API'lerinin Karşılaştırılması

  1. Yeni Bir Belge Oluşturma ve Metin Ekleme

C# Örneği:

using Aspose.Words;

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

Python Örneği:

import aspose.words as aw

doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.writeln("Hello, World!")
doc.save("HelloWorld.docx")
  1. DOCX'ten PDF'ye Belge Dönüştürme

C# Örneği:

using Aspose.Words;

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

Python'da:

import aspose.words as aw

doc = aw.Document("Document.docx")
doc.save("Document.pdf")
  1. İki Belgeyi Birleştirme

C# Örneği:

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");

Python'da:

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")

Gördüğümüz gibi, her iki dildeki API'ler çok benzerdir ve geliştiricilerin C# ve Python arasında geçiş yapmalarını kolaylaştırır. Ayrıca, Aspose kütüphanelerinin belgelenmesini ve bakımını da basitleştirir. Artık CodePorting.Wrapper Cs2Python aracı sayesinde, geliştiriciler Python projelerinde Aspose.Words'ün güçlü özelliklerini kullanabilirler.

2. Aspose.Slides

C# kaynak kodu satır sayısı
2,860,000

Aspose.Slides, sunumlarla çalışmak için güçlü bir kütüphanedir. Geliştiricilerin Microsoft PowerPoint gibi uygulamalara ihtiyaç duymadan sunumlar oluşturmasına, değiştirmesine, dönüştürmesine ve sunmasına olanak tanır. PPT, PPTX, PDF, HTML ve daha birçok formatı destekler.

Python için sarılmış kütüphanenin ilk sürümü 2021'de piyasaya sürüldü ve hemen kullanıcılar tarafından beğenildi. Şimdi, orijinal C# API ile otomatik olarak oluşturulan Python API'yi karşılaştıralım.

Kod Örnekleri: C# ve Python API'lerinin Karşılaştırılması

  1. Yeni Bir Sunum Oluşturma

C#'ta:

using Aspose.Slides;

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

Python'da:

import aspose.slides as slides

pres = slides.Presentation()
pres.save("NewPresentation.pptx", slides.SaveFormat.Pptx)
  1. Bir Slayt Ekleme

C#'ta:

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);

Python'da:

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. PDF'ye Dönüştürme

C#'ta:

using Aspose.Slides;

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

Python'da:

import aspose.slides as slides

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

Gördüğümüz gibi, fark sadece her programlama diline özgü kodlama stilinde yatmaktadır.

3. Aspose.Cells

C# kaynak kodu satır sayısı
600,000

Aspose.Cells, Excel dosyalarıyla çalışmak için güçlü bir API'dir. Geliştiricilerin uygulamalarında elektronik tablolar oluşturmasını, düzenlemesini, biçimlendirmesini ve dönüştürmesini sağlar ve XLS, XLSX, CSV, PDF ve daha birçok formatı destekler.

Aspose.Cells, elektronik tablolarda büyük miktarda veriyi işleyebilir ve bu da performans üzerinde yüksek talepler oluşturur. Derlenmiş yüksek performanslı C# kodunu sararak, bu performans Python'da da korunur. Kodun Python'a çevrilmesi operasyon hızını önemli ölçüde azaltabilir.

C# Örneği:

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("Hesaplama sonucu: " + resultCell.Value);

Python Örneği:

import aspose.cells as cells

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

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

Bu kod, hem C# hem de Python'da büyük veri hacimlerini işlemek ve formülleri hesaplamak için Aspose.Cells'in kullanımını göstermektedir. calculate_formula yöntemi, Python'da performans kaybı olmadan elektronik tablodaki tüm formüllerin doğru hesaplanmasını sağlar.

4. Aspose.PDF

C# kaynak kodu satır sayısı
3,655,000

Aspose.PDF, PDF belgeleriyle çalışmak için güçlü bir kütüphanedir ve geliştiricilerin PDF belgelerini programlı olarak oluşturmasına, okumasına, düzenlemesine ve dönüştürmesine olanak tanır.

Gördüğümüz gibi, Aspose.PDF geniş ve karmaşık bir projedir ve kapsamlı bir C# kod tabanına sahiptir. Kütüphane yöntemleri yalnızca basit veri türlerini değil, aynı zamanda koleksiyonlar ve nesneler gibi karmaşık yapıları da döndürebilir. CodePorting.Wrapper Cs2Python aracının güçlü yönlerinden biri, bu tür veri yapılarını Python'da destekleme yeteneğidir.

C# Örneği:

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);

// Mevcut sayfadaki ilk üç resmi alın
List<ImagePlacement> images = imageAbsorber.ImagePlacements.Take(3).ToList();

foreach (ImagePlacement image in images)
{
    Console.WriteLine("Resim bulundu: " + image.Rectangle);
}

Python'da:

import aspose.pdf as pdf

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

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

# Mevcut sayfadaki ilk üç resmi alın
images = image_placement_absorber.image_placements[:3]

for image in images:
    print("Resim bulundu:", image.rectangle)

Kütüphane ile Python kodu arasında geçen koleksiyonlar, sıralamalar için tüm standart Python yöntemlerini ve işlemlerini destekler. Bu, pop, index, count, sort, reverse, copy, append, remove, clear, contains gibi yöntemlerin yanı sıra __iter__ kullanarak yineleme ve köşeli parantezler ([]) ile elemanlara erişimi içerir. Bu, kütüphaneden gelen koleksiyonlarla etkileşimi, dildeki diğer standart koleksiyonlarla çalışmak kadar kolay ve sezgisel hale getirir.

5. Aspose.Email

C# kaynak kodu satır sayısı
397,000

Aspose.Email, e-posta ile çalışmak için bir kütüphanedir ve SMTP, POP3, IMAP, Exchange Web Services (EWS), WebDav gibi çeşitli kullanım senaryoları ve protokollerini destekler.

C# ve Python API'lerinin Karşılaştırılması

  1. Bir E-posta Oluşturma ve Gönderme

C#'ta:

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);

Python'da:

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. Bir PST Dosyasını Okuma

C#'ta:

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

void PrintFolderInfo(FolderInfo folder)
{
    Console.WriteLine($"Klasör: {folder.DisplayName}, Mesaj Sayısı: {folder.ContentCount}");
    foreach (var subFolder in folder.GetSubFolders())
    {
        PrintFolderInfo(subFolder);
    }
}

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

Python'da:

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

def print_folder_info(folder):
    print(f"Klasör: {folder.display_name}, Mesaj Sayısı: {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)

Bu örnekte, PST dosyasındaki tüm klasörleri yineleyerek her klasördeki mesaj sayısını FolderInfo.ContentCount özelliğini (Python'da FolderInfo.content_count) kullanarak çıkarıyoruz.

Gördüğümüz gibi, Python API arayüzü bir kez daha C# API arayüzü ile aynıdır. Bu, Python'da sınıflar, yöntemler ve özellikler için sarmalayıcılar veya bağlamalar uygulayan bir ara katman kodunun otomatik oluşturulması yoluyla elde edilir. Bu bağlamalar, Python ortamından C# ile yazılmış işlevselliğe erişim sağlar.

Sonuç

Sonuç olarak, CodePorting.Wrapper Cs2Python aracını kullanarak .NET kütüphanelerini Python için sarmanın sağladığı başlıca avantajları vurgulamak istiyoruz:

  1. İşlevselliğin Korunması: Sarma, orijinal .NET kütüphanesinin tüm özelliklerini ve işlevlerini Python'da performans ve işlevsellik kaybı olmadan kullanmanıza olanak tanır.
  2. Zaman ve Kaynak Tasarrufu: Kodun sıfırdan yeniden yazılması yerine, mevcut .NET kütüphanelerini hızla sararak Python'da kullanıma hazır hale getirerek geliştirme süresini önemli ölçüde azaltabilirsiniz.
  3. Geniş Uyumluluk: Sarılmış kütüphaneler Windows, Linux ve macOS gibi çeşitli platformlarda çalışabilir.
  4. Otomatik API Oluşturma: Kütüphanenin tüm Python API'si, C# API'si temel alınarak otomatik olarak oluşturulur, bu da entegrasyon sürecini basitleştirir ve işlevsellik tutarlılığını sağlar.

Kurumsal düzeydeki .NET projenizi Python için başarıyla sarmak istiyorsanız, bizimle iletişime geçin ve hedeflerinize ulaşmanıza yardımcı olmaktan mutluluk duyarız.

İlgili Haberler

İlgili makaleler