13 ธันวาคม 2567

5 อันดับโครงการ .NET ที่ดีที่สุดที่นำมาห่อหุ้มสำหรับ Python โดยใช้ Cs2Python

CodePorting.Wrapper Cs2Python เป็นเครื่องมือที่ช่วยให้การเปลี่ยนโปรเจกต์ .NET ที่เขียนด้วย C# ให้เป็นโมดูลที่รองรับ Python ง่ายขึ้น ซึ่งทำให้สามารถใช้โปรเจกต์ .NET ที่มีอยู่ใน Python ได้โดยไม่จำเป็นต้องเขียนใหม่ทั้งหมดหรือแปลซอร์สโค้ด การใช้เครื่องมือนี้ช่วยประหยัดเวลาและความพยายามของนักพัฒนา ในขณะเดียวกันก็รับประกันว่าผลิตภัณฑ์จะมีประสิทธิภาพสูงใน Python ในบทความนี้ เราจะมาดู 5 โปรเจกต์ .NET ที่เป็นที่นิยมมากที่สุดที่ถูกเปลี่ยนให้ใช้ใน Python โดยใช้เครื่องมือ CodePorting.Wrapper Cs2Python

การปรับใช้ไลบรารี Aspose สำหรับ Python

Aspose เป็นบริษัทชั้นนำที่เชี่ยวชาญในการพัฒนาไลบรารีคุณภาพสูงสำหรับการทำงานกับรูปแบบไฟล์ต่าง ๆ ผลิตภัณฑ์ของพวกเขาเป็นที่รู้จักกันอย่างแพร่หลายในหมู่นักพัฒนาสำหรับความน่าเชื่อถือและความสามารถที่หลากหลาย ในตอนแรก ไลบรารีทั้งหมดเหล่านี้ถูกสร้างขึ้นด้วย C# และเมื่อเวลาผ่านไป มันกลายเป็นเครื่องมือที่ขาดไม่ได้สำหรับนักพัฒนา .NET ทั่วโลก

เพื่อรองรับ Python จึงได้ตัดสินใจที่จะสร้างโค้ด wrapper อัตโนมัติที่อนุญาตให้ใช้ assembly .NET ที่มีอยู่ภายในสภาพแวดล้อม Python ในการบรรลุนี้ ได้มีการพัฒนาเครื่องมือ CodePorting.Wrapper Cs2Python ซึ่งทำให้การปรับใช้โปรเจกต์ .NET สำหรับการใช้งานใน Python ง่ายขึ้น

เราจะพิจารณาผลิตภัณฑ์ Aspose 5 อันดับที่เป็นที่นิยมมากที่สุดสำหรับ Python โดยอ้างอิงจากจำนวนการดาวน์โหลดจาก PyPI:

ผลิตภัณฑ์ จำนวนการดาวน์โหลด
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#
4,100,000

Aspose.Words เป็นไลบรารีที่ทรงพลังสำหรับการทำงานกับเอกสาร Word โดยมีคุณสมบัติหลากหลายสำหรับการสร้าง แก้ไข แปลง และเรนเดอร์เอกสาร รองรับหลายรูปแบบ รวมถึง DOC, DOCX, PDF, HTML และอื่น ๆ Aspose.Words อนุญาตให้นักพัฒนาทำกระบวนการเอกสารโดยอัตโนมัติโดยไม่ต้องใช้ Microsoft Word หรือแอปพลิเคชันจากบุคคลที่สามอื่น ๆ

ไลบรารีที่ถูกเปลี่ยนเป็น Python รุ่นแรกได้ถูกปล่อยในปี 2021 ตั้งแต่นั้นมา ก็มีการพัฒนาร่วมกับความสามารถที่เพิ่มขึ้นของเครื่องมือ Cs2Python การใช้ Python API ทั้งหมดจะถูกสร้างโดยอัตโนมัติตาม C# API ของไลบรารี

การเปรียบเทียบ API ระหว่าง C# และ Python

  1. การสร้างเอกสารใหม่และเพิ่มข้อความ

ตัวอย่างใน C#:

using Aspose.Words;

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

ตัวอย่างใน Python:

import aspose.words as aw

doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.writeln("Hello, World!")
doc.save("HelloWorld.docx")
  1. การแปลงเอกสารจาก DOCX เป็น PDF

ตัวอย่างใน C#:

using Aspose.Words;

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

ใน Python:

import aspose.words as aw

doc = aw.Document("Document.docx")
doc.save("Document.pdf")
  1. การรวมสองเอกสารเข้าด้วยกัน

ตัวอย่างใน 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");

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

จากที่เราเห็น API ในทั้งสองภาษาเหมือนกันมาก ซึ่งทำให้นักพัฒนาสามารถเปลี่ยนระหว่าง C# และ Python ได้ง่ายขึ้น นอกจากนี้ยังทำให้การเอกสารและการบำรุงรักษาไลบรารี Aspose ง่ายขึ้น ขอบคุณเครื่องมือ CodePorting.Wrapper Cs2Python นักพัฒนาสามารถใช้ความสามารถอันทรงพลังของ Aspose.Words ในโปรเจกต์ Python ของพวกเขาได้

2. Aspose.Slides

จำนวนบรรทัดของซอร์สโค้ด C#
2,860,000

Aspose.Slides เป็นไลบรารีที่ทรงพลังสำหรับการทำงานกับพรีเซนเทชัน ซึ่งอนุญาตให้นักพัฒนาสร้าง แก้ไข แปลง และเรนเดอร์พรีเซนเทชันโดยไม่จำเป็นต้องใช้แอปพลิเคชันเช่น Microsoft PowerPoint รองรับหลายรูปแบบ รวมถึง PPT, PPTX, PDF, HTML และอื่น ๆ

ไลบรารีที่ถูกเปลี่ยนเป็น Python รุ่นแรกได้ถูกปล่อยในปี 2021 และได้รับความนิยมอย่างมากในทันที มาดูตัวอย่างโค้ดที่เปรียบเทียบระหว่าง API ของ C# และ Python กัน

ตัวอย่างโค้ด: การเปรียบเทียบ API ระหว่าง C# และ Python

  1. การสร้างพรีเซนเทชันใหม่

ใน C#:

using Aspose.Slides;

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

ใน Python:

import aspose.slides as slides

pres = slides.Presentation()
pres.save("NewPresentation.pptx", slides.SaveFormat.Pptx)
  1. การเพิ่มสไลด์

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

ใน 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. การแปลงเป็น PDF

ใน C#:

using Aspose.Slides;

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

ใน Python:

import aspose.slides as slides

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

จากที่เราเห็น ความแตกต่างอยู่ที่สไตล์การเขียนโค้ดที่เป็นเอกลักษณ์ของแต่ละภาษาการเขียนโปรแกรมเท่านั้น

3. Aspose.Cells

จำนวนบรรทัดของซอร์สโค้ด C#
600,000

Aspose.Cells เป็น API ที่ทรงพลังสำหรับการทำงานกับไฟล์ Excel ซึ่งอนุญาตให้นักพัฒนาสร้าง แก้ไข ฟอร์แมต และแปลงสเปรดชีตในแอปพลิเคชันของพวกเขา รองรับหลายรูปแบบ รวมถึง XLS, XLSX, CSV, PDF และอื่น ๆ

Aspose.Cells สามารถจัดการกับปริมาณข้อมูลมาก ๆ ในสเปรดชีต ซึ่งมีข้อกำหนดสูงในด้านประสิทธิภาพ โดยการใช้โค้ด C# ที่คอมไพล์แล้วประสิทธิภาพสูง จะคงประสิทธิภาพนี้ไว้เมื่อใช้ไลบรารีใน Python การแปลโค้ดเป็น Python อาจทำให้ความเร็วในการดำเนินการลดลงอย่างมาก

ตัวอย่างใน 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("ผลการคำนวณ: " + resultCell.Value);

ตัวอย่างใน 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("ผลการคำนวณ: ", result_cell.value)

โค้ดนี้แสดงการใช้ Aspose.Cells ในการประมวลผลปริมาณข้อมูลมาก ๆ และการคำนวณสูตรทั้งใน C# และ Python เมธอด calculate_formula ทำงานที่สำคัญเพื่อให้แน่ใจว่าการคำนวณสูตรทั้งหมดในสเปรดชีตถูกต้อง โดยไม่สูญเสียประสิทธิภาพใน Python

4. Aspose.PDF

จำนวนบรรทัดของซอร์สโค้ด C#
3,655,000

Aspose.PDF เป็นไลบรารีที่ทรงพลังสำหรับการทำงานกับเอกสาร PDF ซึ่งช่วยให้นักพัฒนาสามารถสร้าง อ่าน แก้ไข และแปลงเอกสาร PDF ได้อย่างโปรแกรมมิ่ง

ตามที่เราเห็น Aspose.PDF เป็นโปรเจกต์ขนาดใหญ่และซับซ้อนที่มีโค้ดเบสใน C# อย่างกว้างขวาง เมธอดของไลบรารีสามารถคืนค่าได้ไม่เพียงแค่ประเภทข้อมูลง่าย ๆ แต่ยังรวมถึงโครงสร้างที่ซับซ้อนเช่นคอลเลกชันและอ็อบเจ็กต์ หนึ่งในจุดแข็งของเครื่องมือ CodePorting.Wrapper Cs2Python คือความสามารถในการรองรับประเภทข้อมูลดังกล่าวใน Python

ตัวอย่างใน 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);

// ดึงภาพแรกสามภาพจากหน้าแรก
List<ImagePlacement> images = imageAbsorber.ImagePlacements.Take(3).ToList();

foreach (ImagePlacement image in images)
{
    Console.WriteLine("พบภาพที่: " + image.Rectangle);
}

ใน 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)

# ดึงภาพแรกสามภาพจากหน้าแรก
images = image_placement_absorber.image_placements[:3]

for image in images:
    print("พบภาพที่:", image.rectangle)

คอลเลกชันที่ส่งผ่านไลบรารีที่ห่อไว้กับโค้ด Python รองรับเมธอดและการดำเนินการมาตรฐานทั้งหมดของ Python สำหรับลำดับ ซึ่งรวมถึงเมธอดเช่น pop, index, count, sort, reverse, copy, append, remove, clear, contains, รวมถึงการสนับสนุนการทำซ้ำโดยใช้ __iter__ และการเข้าถึงองค์ประกอบผ่านวงเล็บเหลี่ยม ([]) ทำให้การทำงานกับคอลเลกชันจากไลบรารีที่ห่อไว้นั้นสะดวกและง่ายเหมือนการทำงานกับคอลเลกชันมาตรฐานอื่น ๆ ในภาษา

5. Aspose.Email

จำนวนบรรทัดของซอร์สโค้ด C#
397,000

Aspose.Email เป็นไลบรารีสำหรับการทำงานกับอีเมลที่รองรับการใช้งานหลากหลายสถานการณ์และโปรโตคอลเช่น SMTP, POP3, IMAP, Exchange Web Services (EWS), WebDav และอื่น ๆ

การเปรียบเทียบ API ระหว่าง C# และ Python

  1. การสร้างและส่งอีเมล

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

ใน 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. การอ่านไฟล์ PST

ใน C#:

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

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

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

ใน Python:

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

def print_folder_info(folder):
    print(f"Folder: {folder.display_name}, Message Count: {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)

ในตัวอย่างนี้ เราได้ผ่านทุกโฟลเดอร์ในไฟล์ PST โดยใช้คุณสมบัติ FolderInfo.ContentCount (ใน Python คือ FolderInfo.content_count)

จากที่เราเห็น อินเตอร์เฟส API ของ Python เหมือนกับ API ของ C# นี่เกิดจากการสร้างเลเยอร์กลางของโค้ดอัตโนมัติที่มีการทำแรปเปอร์หรือไบน์ดิ้งสำหรับคลาส เมธอด และคุณสมบัติใน Python ซึ่งทำให้การเข้าถึงฟังก์ชั่นที่เขียนด้วย C# จากสภาพแวดล้อม Python เป็นไปได้

สรุป

สรุปว่า เราต้องการเน้นถึงข้อได้เปรียบหลักที่การห่อหุ้มไลบรารี .NET สำหรับ Python โดยใช้เครื่องมือ CodePorting.Wrapper Cs2Python ให้:

  1. การรักษาฟังก์ชันการทำงาน: การห่อหุ้มช่วยให้การใช้งานฟีเจอร์และฟังก์ชันทั้งหมดของไลบรารี .NET ดั้งเดิมใน Python โดยไม่สูญเสียประสิทธิภาพและฟังก์ชัน
  2. ประหยัดเวลาและทรัพยากร: แทนที่จะเขียนโค้ดใหม่ทั้งหมด นักพัฒนาสามารถห่อหุ้มไลบรารี .NET ที่มีอยู่ได้อย่างรวดเร็วเพื่อนำไปใช้ใน Python ทำให้ลดเวลาการพัฒนาได้อย่างมาก
  3. ความเข้ากันได้ที่กว้างขวาง: ไลบรารีที่ห่อหุ้มแล้วสามารถทำงานบนหลายแพลตฟอร์ม เช่น Windows, Linux, และ macOS
  4. การสร้าง API อัตโนมัติ: Python API ทั้งหมดถูกสร้างขึ้นอัตโนมัติตาม C# API ของไลบรารี ซึ่งทำให้กระบวนการรวมง่ายขึ้นและมั่นใจในความสอดคล้องในการทำงาน

หากคุณต้องการห่อหุ้มโปรเจกต์ .NET ระดับองค์กรของคุณสำหรับการใช้งานใน Python โปรดติดต่อเรา เรายินดีที่จะช่วยคุณบรรลุเป้าหมายของคุณ

ข่าวที่เกี่ยวข้อง

บทความที่เกี่ยวข้อง