13 ธันวาคม 2567
CodePorting.Wrapper Cs2Python เป็นเครื่องมือที่ช่วยให้การเปลี่ยนโปรเจกต์ .NET ที่เขียนด้วย C# ให้เป็นโมดูลที่รองรับ Python ง่ายขึ้น ซึ่งทำให้สามารถใช้โปรเจกต์ .NET ที่มีอยู่ใน Python ได้โดยไม่จำเป็นต้องเขียนใหม่ทั้งหมดหรือแปลซอร์สโค้ด การใช้เครื่องมือนี้ช่วยประหยัดเวลาและความพยายามของนักพัฒนา ในขณะเดียวกันก็รับประกันว่าผลิตภัณฑ์จะมีประสิทธิภาพสูงใน Python ในบทความนี้ เราจะมาดู 5 โปรเจกต์ .NET ที่เป็นที่นิยมมากที่สุดที่ถูกเปลี่ยนให้ใช้ใน Python โดยใช้เครื่องมือ CodePorting.Wrapper Cs2Python
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 |
จำนวนบรรทัดของซอร์สโค้ด C# |
---|
4,100,000 |
Aspose.Words เป็นไลบรารีที่ทรงพลังสำหรับการทำงานกับเอกสาร Word โดยมีคุณสมบัติหลากหลายสำหรับการสร้าง แก้ไข แปลง และเรนเดอร์เอกสาร รองรับหลายรูปแบบ รวมถึง DOC, DOCX, PDF, HTML และอื่น ๆ Aspose.Words อนุญาตให้นักพัฒนาทำกระบวนการเอกสารโดยอัตโนมัติโดยไม่ต้องใช้ Microsoft Word หรือแอปพลิเคชันจากบุคคลที่สามอื่น ๆ
ไลบรารีที่ถูกเปลี่ยนเป็น Python รุ่นแรกได้ถูกปล่อยในปี 2021 ตั้งแต่นั้นมา ก็มีการพัฒนาร่วมกับความสามารถที่เพิ่มขึ้นของเครื่องมือ Cs2Python การใช้ Python API ทั้งหมดจะถูกสร้างโดยอัตโนมัติตาม C# API ของไลบรารี
ตัวอย่างใน 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")
ตัวอย่างใน 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")
ตัวอย่างใน 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 ของพวกเขาได้
จำนวนบรรทัดของซอร์สโค้ด C# |
---|
2,860,000 |
Aspose.Slides เป็นไลบรารีที่ทรงพลังสำหรับการทำงานกับพรีเซนเทชัน ซึ่งอนุญาตให้นักพัฒนาสร้าง แก้ไข แปลง และเรนเดอร์พรีเซนเทชันโดยไม่จำเป็นต้องใช้แอปพลิเคชันเช่น Microsoft PowerPoint รองรับหลายรูปแบบ รวมถึง PPT, PPTX, PDF, HTML และอื่น ๆ
ไลบรารีที่ถูกเปลี่ยนเป็น Python รุ่นแรกได้ถูกปล่อยในปี 2021 และได้รับความนิยมอย่างมากในทันที มาดูตัวอย่างโค้ดที่เปรียบเทียบระหว่าง API ของ C# และ Python กัน
ใน 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)
ใน 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)
ใน 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)
จากที่เราเห็น ความแตกต่างอยู่ที่สไตล์การเขียนโค้ดที่เป็นเอกลักษณ์ของแต่ละภาษาการเขียนโปรแกรมเท่านั้น
จำนวนบรรทัดของซอร์สโค้ด 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
จำนวนบรรทัดของซอร์สโค้ด 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__
และการเข้าถึงองค์ประกอบผ่านวงเล็บเหลี่ยม ([]
) ทำให้การทำงานกับคอลเลกชันจากไลบรารีที่ห่อไว้นั้นสะดวกและง่ายเหมือนการทำงานกับคอลเลกชันมาตรฐานอื่น ๆ ในภาษา
จำนวนบรรทัดของซอร์สโค้ด C# |
---|
397,000 |
Aspose.Email เป็นไลบรารีสำหรับการทำงานกับอีเมลที่รองรับการใช้งานหลากหลายสถานการณ์และโปรโตคอลเช่น SMTP, POP3, IMAP, Exchange Web Services (EWS), WebDav และอื่น ๆ
ใน 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)
ใน 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 ให้:
หากคุณต้องการห่อหุ้มโปรเจกต์ .NET ระดับองค์กรของคุณสำหรับการใช้งานใน Python โปรดติดต่อเรา เรายินดีที่จะช่วยคุณบรรลุเป้าหมายของคุณ