公司新聞

.NET 10 性能改進:Iron Software產品如何在最新的Framework中表現卓越

介紹

.NET 10 and Iron Software

Microsoft 的 .NET 10 代表了 .NET 平臺演變中的一個重要里程碑,帶來了顯著的性能改進、增強的代碼生成以及強大的新功能,開發者可以立即加以利用。 隨著 .NET 10 的發布,使用 Iron Software 產品的開發者,包括 IronPDFIronOCRIronBarcodeIronXL,可以利用這些改進來構建更快更高效的應用程式。

本文探索了 .NET 10 的主要性能改進,展示了 Iron Software 的產品系列如何與最新的框架無縫集成,並提供了這些函式庫操作的實用代碼範例。 根據最近在 Medium 和 dev.to 上的討論,使用 .NET 10 的 Visual Studio 2026 的開發者正在體驗前所未有的生產力提升,使其成為現代化開發堆棧的理想時機。

.NET 10 性能改進概述

運行時性能增強

.NET 10 引入了許多運行時性能改進,這些改進惠及所有應用程式,包括那些使用 Iron Software 產品的應用程式。 改進重點在幾個關鍵領域:

性能改進 在 .NET 10 中是廣泛的,增強了代碼生成、改進了循環反轉和先進的向量擴展。 這些改進直接轉化為使用 IronPDF 進行 PDF 生成、IronOCR 進行光學字元識別、IronXL 進行 Excel 操作及 IronBarcode 進行條碼掃描操作的應用程式運行速度更快。

擴展塊添加支持 新的編程模式,使開發者能夠撰寫更清晰、更高效的代碼。 改進的代碼生成能力意味著文檔處理函式庫中的常見操作以較少的開銷和更好的內存效率執行。

改進的代碼生成 技術在 JIT 編譯器中導致更優化的匯編代碼。 當使用 Iron Software 產品時,這轉化為更快的 PDF 渲染、更快的 OCR 處理和更響應的條碼掃描操作。

JIT 編譯器的進步

.NET 10 的即時編譯器 (JIT) 進行了重大升級:

實例擴展屬性 現在由 JIT 編譯器更有效地處理,減少了使用現代 C# 功能時的抽象懲罰。 這對於使用 IronPDF 的廣泛 API 進行 PDF 操作特別有利。

.Net core 的優化確保運行在 .NET 10 上的應用程式受益於縮短的啟動時間和減少的內存消耗。 Iron Software 產品,完全支持 .NET 10、9、8、7、6、Framework、Core 和 Azure,充分利用了這些改進。

靜態擴展方法 接受了增強的優化,使實用方法和助手功能執行得更快。 這惠及所有廣泛在其公開 API 中使用靜態方法的 Iron Software 函式庫。

後量子密碼學支持 在 .NET 10 中確保應用程式隨著計算演變保持安全。 雖然這不直接影響 Iron Software 的文件處理能力,但對結合文件生成和安全通信的應用程式來說是很重要的。

堆棧分配和內存管理

.NET 10 中最令人興奮的改進之一是增強的堆棧分配:

新功能 包括堆棧分配小型數組的能力,無論是值類型還是引用類型。這減少了垃圾回收的壓力,特別有利於使用 IronPDF 或 IronOCR 處理大量文檔的應用程式。

額外的密碼學增強 補充了內存管理改進,儘管對文件處理來說更顯著的影響來自減少的分配開銷。

自動實現的屬性 現在受益於改進的逃逸分析,允許 JIT 在對象壽命和分配策略上做出更明智的決策。

增強的循環反轉 使迭代操作的代碼佈局更好。 當使用 IronXL 處理多個文檔或使用 IronBarcode 掃描多個條碼時,這些優化會帶來明顯的性能增益。

IronPDF 在 .NET 10 中

IronPDF

IronPDF 是一個強大的 C# 函式庫,用於創建、閱讀和操作 PDF 文件。 隨著 .NET 10 的性能改進,IronPDF 操作執行得比以往更快。

使用 IronPDF 的開發者生產力

開發者生產力 的改進在 .NET 10 中直接惠及 IronPDF 用戶。 該函式庫的HTML 到 PDF 轉換,是其最受歡迎的功能之一,受益於改進的渲染性能和減少的內存分配。

using IronPdf;

// Create a PDF from HTML with .NET 10 performance optimizations
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello from .NET 10!</h1>");
pdf.SaveAs("output.pdf");
using IronPdf;

// Create a PDF from HTML with .NET 10 performance optimizations
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello from .NET 10!</h1>");
pdf.SaveAs("output.pdf");
Imports IronPdf

' Create a PDF from HTML with .NET 10 performance optimizations
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello from .NET 10!</h1>")
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

.NET 10 中的 HTML 到 PDF 輸出範例

使用 IronPDF 的 HTML 到 PDF 示例輸出

了解有關 IronPDF HTML 到 PDF 轉換的更多資訊

部分實例構造函數 在 .NET 10 中實現了更有效的對象初始化,這在內部被 IronPDF 利用以便在創建 PDF 文件時獲得更好的性能。

高級 PDF 功能

填充支持 和布局改進在 .NET 10 中得益於 IronPDF 的高級功能,如標題、頁腳和頁碼:

using IronPdf;

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    MaxHeight = 50,
    HtmlFragment = "<h1>Document Header</h1>"
};

var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
pdf.SaveAs("document-with-header.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    MaxHeight = 50,
    HtmlFragment = "<h1>Document Header</h1>"
};

var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
pdf.SaveAs("document-with-header.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .MaxHeight = 50,
    .HtmlFragment = "<h1>Document Header</h1>"
}

Dim pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
pdf.SaveAs("document-with-header.pdf")
$vbLabelText   $csharpLabel

輸出

從 URL 渲染的 PDF,其中包含自訂標頭

探索 IronPDF 的 PDF 編輯功能

高級向量擴展 在 .NET 10 中改進了圖像數據操作,這得益於 IronPDF 的 PDF 到圖像 轉換功能:

using IronPdf;

var pdf = PdfDocument.FromFile("input.pdf");
var images = pdf.ToJpegImages($"page_*.jpg");
using IronPdf;

var pdf = PdfDocument.FromFile("input.pdf");
var images = pdf.ToJpegImages($"page_*.jpg");
Imports IronPdf

Dim pdf = PdfDocument.FromFile("input.pdf")
Dim images = pdf.ToJpegImages("page_*.jpg")
$vbLabelText   $csharpLabel

從輸入 PDF 文件生成的圖像文件

PDF 到圖像的輸出文件

IronOCR 在 .NET 10 中

IronOCR

IronOCR 為 C# 開發者提供了先進的光學字元識別能力。 .NET 10 中的性能改進顯著提升了 OCR 處理速度。

OCR 性能增強

Windows 加密 API 集成確保 OCR 數據的安全處理,而 .NET 10 的性能改進使文本提取速度更快:

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("document.png");

var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("document.png");

var result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr

Dim ocr As New IronTesseract()
Using input As New OcrInput()
    input.LoadImage("document.png")

    Dim result = ocr.Read(input)
    Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

OCR 輸出

從輸入圖像中提取的輸出文本

發現 IronOCR 的文本識別功能

堆疊分配 的改進在 .NET 10 中減少了 OCR 操作期間的內存壓力,這在處理大型文檔批次時特別重要:

using IronOcr;

var ocr = new IronTesseract();
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;

var results = new List<string>();
foreach (var imagePath in Directory.GetFiles("images", "*.png"))
{
    using var input = new OcrInput();
    input.LoadImage(imagePath);
    var result = ocr.Read(input);
    results.Add(result.Text);
}
using IronOcr;

var ocr = new IronTesseract();
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;

var results = new List<string>();
foreach (var imagePath in Directory.GetFiles("images", "*.png"))
{
    using var input = new OcrInput();
    input.LoadImage(imagePath);
    var result = ocr.Read(input);
    results.Add(result.Text);
}
Imports IronOcr

Dim ocr As New IronTesseract()
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto

Dim results As New List(Of String)()
For Each imagePath In Directory.GetFiles("images", "*.png")
    Using input As New OcrInput()
        input.LoadImage(imagePath)
        Dim result = ocr.Read(input)
        results.Add(result.Text)
    End Using
Next
$vbLabelText   $csharpLabel

多語言 OCR 支持

最小 API 更新 在 .NET 10 中補充了 IronOCR 對 125+ 語言的支持。 改進的運行時性能意味著更快的語言模型加載和處理速度:

using IronOcr;

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.German;

using var input = new OcrInput();
input.LoadPdf("german-document.pdf");

var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.German;

using var input = new OcrInput();
input.LoadPdf("german-document.pdf");

var result = ocr.Read(input);
Console.WriteLine(result.Text);
Imports IronOcr

Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.German

Using input As New OcrInput()
    input.LoadPdf("german-document.pdf")

    Dim result = ocr.Read(input)
    Console.WriteLine(result.Text)
End Using
$vbLabelText   $csharpLabel

了解 IronOCR 的多語言支持

IronBarcode 在 .NET 10 中

IronBarcode

IronBarcode 使開發者可以輕鬆地讀取和寫入條碼和 QR 碼。 .NET 10 的性能改進提升了條碼檢測和生成速度。

條碼生成

部分方法 優化在 .NET 10 中改進了 IronBarcode 的生成方法的性能:

using IronBarCode;

var barcode = BarcodeWriter.CreateBarcode("12345", BarcodeEncoding.Code128);
barcode.SaveAsImage("barcode.png");
using IronBarCode;

var barcode = BarcodeWriter.CreateBarcode("12345", BarcodeEncoding.Code128);
barcode.SaveAsImage("barcode.png");
Imports IronBarCode

Dim barcode = BarcodeWriter.CreateBarcode("12345", BarcodeEncoding.Code128)
barcode.SaveAsImage("barcode.png")
$vbLabelText   $csharpLabel

條碼輸出

條碼的示例輸出

探索 IronBarcode 的條碼生成功能

Net framework 諧服確保 IronBarcode 能夠跨所有 .NET 版本無縫運行,包括最新的 .NET 10:

using IronBarCode;
using System.Drawing;

var myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com", BarcodeEncoding.QRCode);
myBarcode.AddBarcodeValueTextBelowBarcode();
myBarcode.SaveAsImage("qr-code.png");
using IronBarCode;
using System.Drawing;

var myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com", BarcodeEncoding.QRCode);
myBarcode.AddBarcodeValueTextBelowBarcode();
myBarcode.SaveAsImage("qr-code.png");
Imports IronBarCode
Imports System.Drawing

Dim myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com", BarcodeEncoding.QRCode)
myBarcode.AddBarcodeValueTextBelowBarcode()
myBarcode.SaveAsImage("qr-code.png")
$vbLabelText   $csharpLabel

生成的 QR 碼

QR 碼的示例輸出

條碼讀取

標準庫 的改進在 .NET 10 中增強了圖像處理能力,IronBarcode 利用這一能力來提高條碼檢測的準確性:

using IronBarCode;

var results = BarcodeReader.Read("barcode-image.png");
foreach (var barcode in results)
{
    Console.WriteLine($"Value: {barcode.Value}");
    Console.WriteLine($"Type: {barcode.BarcodeType}");
}
using IronBarCode;

var results = BarcodeReader.Read("barcode-image.png");
foreach (var barcode in results)
{
    Console.WriteLine($"Value: {barcode.Value}");
    Console.WriteLine($"Type: {barcode.BarcodeType}");
}
Imports IronBarCode

Dim results = BarcodeReader.Read("barcode-image.png")
For Each barcode In results
    Console.WriteLine($"Value: {barcode.Value}")
    Console.WriteLine($"Type: {barcode.BarcodeType}")
Next
$vbLabelText   $csharpLabel

了解有關使用 IronBarcode 讀取條碼的更多資訊

一流的支持 對多種條碼格式的支持意味著開發者可以一致的性能處理不同種類的條碼:

using IronBarCode;

var readOptions = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional | BarcodeEncoding.AllTwoDimensional
};

var results = BarcodeReader.Read("multi-barcode-image.png", readOptions);
Console.WriteLine($"Found {results.Count()} barcodes");
using IronBarCode;

var readOptions = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional | BarcodeEncoding.AllTwoDimensional
};

var results = BarcodeReader.Read("multi-barcode-image.png", readOptions);
Console.WriteLine($"Found {results.Count()} barcodes");
Imports IronBarCode

Dim readOptions As New BarcodeReaderOptions With {
    .ExpectMultipleBarcodes = True,
    .ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional Or BarcodeEncoding.AllTwoDimensional
}

Dim results = BarcodeReader.Read("multi-barcode-image.png", readOptions)
Console.WriteLine($"Found {results.Count()} barcodes")
$vbLabelText   $csharpLabel

IronXL 在 .NET 10 中

IronXL

IronXL 提供了操作 Excel 文件的能力而無需安裝 Microsoft Office。.NET 10 的性能改進使電子表格操作更顯著更快。

Excel 文件操作

改進的診斷工具 在 .NET 10 中幫助開發者識別使用 IronXL 操作大型 Excel 文件時的性能瓶頸:

using IronXL;

var workbook = WorkBook.Create();
var worksheet = workbook.DefaultWorkSheet;

worksheet["A1"].Value = "Product";
worksheet["B1"].Value = "Price";
worksheet["A2"].Value = "Widget";
worksheet["B2"].Value = 29.99;

workbook.SaveAs("products.xlsx");
using IronXL;

var workbook = WorkBook.Create();
var worksheet = workbook.DefaultWorkSheet;

worksheet["A1"].Value = "Product";
worksheet["B1"].Value = "Price";
worksheet["A2"].Value = "Widget";
worksheet["B2"].Value = 29.99;

workbook.SaveAs("products.xlsx");
Imports IronXL

Dim workbook = WorkBook.Create()
Dim worksheet = workbook.DefaultWorkSheet

worksheet("A1").Value = "Product"
worksheet("B1").Value = "Price"
worksheet("A2").Value = "Widget"
worksheet("B2").Value = 29.99

workbook.SaveAs("products.xlsx")
$vbLabelText   $csharpLabel

創建的 Excel 文件

Excel 文件的示例輸出

發現 IronXL 的 Excel 創建功能

主要版本 的優化在 .NET 10 中受益於 IronXL 的批量資料操作:

using IronXL;

var workbook = WorkBook.Load("financial_report.xlsx");
var worksheet = workbook.WorkSheets.First();

var dataRange = worksheet["A1:D100"];
foreach (var cell in dataRange)
{
    if (cell.IsFormula)
    {
        Console.WriteLine($"Formula: {cell.Formula}, Value: {cell.Value}");
    }
}
using IronXL;

var workbook = WorkBook.Load("financial_report.xlsx");
var worksheet = workbook.WorkSheets.First();

var dataRange = worksheet["A1:D100"];
foreach (var cell in dataRange)
{
    if (cell.IsFormula)
    {
        Console.WriteLine($"Formula: {cell.Formula}, Value: {cell.Value}");
    }
}
Imports IronXL

Dim workbook = WorkBook.Load("financial_report.xlsx")
Dim worksheet = workbook.WorkSheets.First()

Dim dataRange = worksheet("A1:D100")
For Each cell In dataRange
    If cell.IsFormula Then
        Console.WriteLine($"Formula: {cell.Formula}, Value: {cell.Value}")
    End If
Next
$vbLabelText   $csharpLabel

控制台輸出

讀取單元格的示例控制台輸出

高級 Excel 功能

擴展塊 在 .NET 10 中使使用 IronXL 時具有更具表達性的代碼:

using IronXL;

var workbook = WorkBook.Load("financial-report.xlsx");
var worksheet = workbook.WorkSheets["Q4 Results"];

// Calculate totals with .NET 10 performance
var totalRevenue = worksheet["B2:B50"].Sum();
var averageProfit = worksheet["C2:C50"].Avg();

Console.WriteLine($"Total Revenue: ${totalRevenue:N2}");
Console.WriteLine($"Average Profit: ${averageProfit:N2}");

workbook.SaveAs("updated-report.xlsx");
using IronXL;

var workbook = WorkBook.Load("financial-report.xlsx");
var worksheet = workbook.WorkSheets["Q4 Results"];

// Calculate totals with .NET 10 performance
var totalRevenue = worksheet["B2:B50"].Sum();
var averageProfit = worksheet["C2:C50"].Avg();

Console.WriteLine($"Total Revenue: ${totalRevenue:N2}");
Console.WriteLine($"Average Profit: ${averageProfit:N2}");

workbook.SaveAs("updated-report.xlsx");
Imports IronXL

Dim workbook = WorkBook.Load("financial-report.xlsx")
Dim worksheet = workbook.WorkSheets("Q4 Results")

' Calculate totals with .NET 10 performance
Dim totalRevenue = worksheet("B2:B50").Sum()
Dim averageProfit = worksheet("C2:C50").Avg()

Console.WriteLine($"Total Revenue: {totalRevenue:N2}")
Console.WriteLine($"Average Profit: {averageProfit:N2}")

workbook.SaveAs("updated-report.xlsx")
$vbLabelText   $csharpLabel

了解 IronXL 的公式支持

Windows 表單 應用程式得益於 IronXL 的同步 API,該 API 能夠有效利用 .NET 10 提升的多線程模型:

using IronXL;
using System.Data;

var workbook = WorkBook.Load("data.xlsx");
var worksheet = workbook.DefaultWorkSheet;

// Convert Excel to DataTable with enhanced performance
var dataTable = worksheet.ToDataTable(true);

foreach (DataRow row in dataTable.Rows)
{
    Console.WriteLine($"{row["Name"]}: {row["Value"]}");
}
using IronXL;
using System.Data;

var workbook = WorkBook.Load("data.xlsx");
var worksheet = workbook.DefaultWorkSheet;

// Convert Excel to DataTable with enhanced performance
var dataTable = worksheet.ToDataTable(true);

foreach (DataRow row in dataTable.Rows)
{
    Console.WriteLine($"{row["Name"]}: {row["Value"]}");
}
Imports IronXL
Imports System.Data

Dim workbook = WorkBook.Load("data.xlsx")
Dim worksheet = workbook.DefaultWorkSheet

' Convert Excel to DataTable with enhanced performance
Dim dataTable = worksheet.ToDataTable(True)

For Each row As DataRow In dataTable.Rows
    Console.WriteLine($"{row("Name")}: {row("Value")}")
Next
$vbLabelText   $csharpLabel

Visual Studio 2026 和 .NET 10 開發

Visual Studio 2026

正如在 Medium 社區討論中提到的,Visual Studio 2026 為 .NET 10 開發帶來了顯著的改進。 據開發者在 dev.to 上表示,IDE 增強的 AI 功能和改進的性能使其成為使用 Iron Software 產品的絕佳選擇。

開發環境增強

代碼生成 在 Visual Studio 2026 中的改進補充了 .NET 10 的運行時增強功能,當使用下列時創造了一個無縫的開發體驗:

  • Visual studio 2026 中改進的 IntelliSense,用於 Iron Software API 的更快代碼完成

  • Blazor 改進 使得能夠更好地調試使用 IronPDF 的 Web 應用

  • 重大增強 幫助排除復雜文檔處​​理工作流程的錯誤

遊戲開發者 和其他注重性能的開發人員特別受益於 Visual Studio 2026 中優化 Iron Software 應用的分析工具。

測試和調試

運行時性能 分析在 Visual Studio 2026 中有助於識別使用 Iron Software 產品的應用中的瓶頸:

using IronPdf;
using System.Diagnostics;

var stopwatch = Stopwatch.StartNew();

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Performance Test</h1>");

stopwatch.Stop();
Console.WriteLine($"PDF generation took {stopwatch.ElapsedMilliseconds}ms");
using IronPdf;
using System.Diagnostics;

var stopwatch = Stopwatch.StartNew();

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Performance Test</h1>");

stopwatch.Stop();
Console.WriteLine($"PDF generation took {stopwatch.ElapsedMilliseconds}ms");
Imports IronPdf
Imports System.Diagnostics

Dim stopwatch As Stopwatch = Stopwatch.StartNew()

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Performance Test</h1>")

stopwatch.Stop()
Console.WriteLine($"PDF generation took {stopwatch.ElapsedMilliseconds}ms")
$vbLabelText   $csharpLabel

Openapi 增強 在 .NET 10 中促進了構建利用 Iron Software 產品的文檔處理端點的 REST API。

其他 .NET 10 功能惠及 Iron Software 產品

內存和性能優化

Nativeaot 增強 提供了提前編譯的好處,儘管 Iron Software 產品也優化了 JIT 場景。

長期支持 的考量:雖然 .NET 10 不是 LTS 版本,但 Iron Software 產品在多個 .NET 版本上保持兼容性,確保開發者可以隨時升級。

結構參數 的優化減少了在傳遞數據結構時的內存分配,這對 IronXL 的單元格操作和 IronBarcode 的坐標處理有利。

最小 API 的改進使得創建使用 Iron Software 產品的輕量級 Web 服務更容易:

using IronPdf;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapPost("/generate-pdf", async (string html) =>
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);
    return Results.File(pdf.BinaryData, "application/pdf", "generated.pdf");
});

app.Run();
using IronPdf;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapPost("/generate-pdf", async (string html) =>
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);
    return Results.File(pdf.BinaryData, "application/pdf", "generated.pdf");
});

app.Run();
Imports IronPdf

Dim builder = WebApplication.CreateBuilder(args)
Dim app = builder.Build()

app.MapPost("/generate-pdf", Async Function(html As String)
    Dim renderer = New ChromePdfRenderer()
    Dim pdf = renderer.RenderHtmlAsPdf(html)
    Return Results.File(pdf.BinaryData, "application/pdf", "generated.pdf")
End Function)

app.Run()
$vbLabelText   $csharpLabel

語言和編譯器改進

更順暢的現代 C# 功能路線:.NET 10 支持最新的 C# 語言增強,允許開發者在使用 Iron Software API 時使用現代語法。

小數組的堆棧分配 在處理多個文檔的緊湊循環中減少了 GC 壓力:

using IronPdf;

var renderer = new ChromePdfRenderer();

ReadOnlySpan<string> htmlPages = 
[
    "<h1>Page 1</h1>",
    "<h1>Page 2</h1>",
    "<h1>Page 3</h1>"
];

foreach (var page in htmlPages)
{
    var pdf = renderer.RenderHtmlAsPdf(page);
    // Process each PDF
}
using IronPdf;

var renderer = new ChromePdfRenderer();

ReadOnlySpan<string> htmlPages = 
[
    "<h1>Page 1</h1>",
    "<h1>Page 2</h1>",
    "<h1>Page 3</h1>"
];

foreach (var page in htmlPages)
{
    var pdf = renderer.RenderHtmlAsPdf(page);
    // Process each PDF
}
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

Dim htmlPages As ReadOnlySpan(Of String) = 
{
    "<h1>Page 1</h1>",
    "<h1>Page 2</h1>",
    "<h1>Page 3</h1>"
}

For Each page In htmlPages
    Dim pdf = renderer.RenderHtmlAsPdf(page)
    ' Process each PDF
Next
$vbLabelText   $csharpLabel

空條件賦值 和其他語言功能能夠與 Iron Software 產品無縫配合,促進更安全的代碼:

using IronOcr;

string? ExtractText(string? imagePath)
{
    if (imagePath is null) return null;

    var ocr = new IronTesseract();
    using var input = new OcrInput();
    input.LoadImage(imagePath);
    return ocr.Read(input)?.Text;
}
using IronOcr;

string? ExtractText(string? imagePath)
{
    if (imagePath is null) return null;

    var ocr = new IronTesseract();
    using var input = new OcrInput();
    input.LoadImage(imagePath);
    return ocr.Read(input)?.Text;
}
Imports IronOcr

Function ExtractText(imagePath As String) As String
    If imagePath Is Nothing Then Return Nothing

    Dim ocr = New IronTesseract()
    Using input = New OcrInput()
        input.LoadImage(imagePath)
        Return ocr.Read(input)?.Text
    End Using
End Function
$vbLabelText   $csharpLabel

框架範圍內的改進

無界泛型類型 處理的改進惠及 Iron Software 產品中的泛型 API。

垃圾收集 的增強減少了停頓時間,這在處理大型文檔批量的應用中尤其明顯:

類型參數 推斷改進使得泛型方法調用更加簡潔,當在使用 Iron Software API 時。

實用集成範例

這是一個綜合範例,展示了如何在 .NET 10 應用中一起使用多個 Iron Software 產品:

using IronPdf;
using IronOcr;
using IronBarCode;
using IronXL;

// Create an Excel report
var workbook = WorkBook.Create();
var worksheet = workbook.DefaultWorkSheet;
worksheet["A1"].Value = "Product";
worksheet["B1"].Value = "Barcode";
worksheet["A2"].Value = "Item 001";

// Generate barcode
var barcode = BarcodeWriter.CreateBarcode("ITEM001", BarcodeEncoding.Code128);
barcode.SaveAsImage("barcode.png");

// Perform OCR on an invoice
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("invoice.png");
var ocrResult = ocr.Read(input);

// Generate PDF report
var renderer = new ChromePdfRenderer();
var htmlReport = $@"
    <html>
        <body>
            <h1>Report Generated with .NET 10</h1>
            <h2>OCR Results:</h2>
            <p>{ocrResult.Text}</p>
            <h2>Products:</h2>
            <p>See Excel file for details</p>
        </body>
    </html>";

var pdf = renderer.RenderHtmlAsPdf(htmlReport);
pdf.SaveAs("comprehensive-report.pdf");

workbook.SaveAs("product-data.xlsx");
using IronPdf;
using IronOcr;
using IronBarCode;
using IronXL;

// Create an Excel report
var workbook = WorkBook.Create();
var worksheet = workbook.DefaultWorkSheet;
worksheet["A1"].Value = "Product";
worksheet["B1"].Value = "Barcode";
worksheet["A2"].Value = "Item 001";

// Generate barcode
var barcode = BarcodeWriter.CreateBarcode("ITEM001", BarcodeEncoding.Code128);
barcode.SaveAsImage("barcode.png");

// Perform OCR on an invoice
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("invoice.png");
var ocrResult = ocr.Read(input);

// Generate PDF report
var renderer = new ChromePdfRenderer();
var htmlReport = $@"
    <html>
        <body>
            <h1>Report Generated with .NET 10</h1>
            <h2>OCR Results:</h2>
            <p>{ocrResult.Text}</p>
            <h2>Products:</h2>
            <p>See Excel file for details</p>
        </body>
    </html>";

var pdf = renderer.RenderHtmlAsPdf(htmlReport);
pdf.SaveAs("comprehensive-report.pdf");

workbook.SaveAs("product-data.xlsx");
Imports IronPdf
Imports IronOcr
Imports IronBarCode
Imports IronXL

' Create an Excel report
Dim workbook = WorkBook.Create()
Dim worksheet = workbook.DefaultWorkSheet
worksheet("A1").Value = "Product"
worksheet("B1").Value = "Barcode"
worksheet("A2").Value = "Item 001"

' Generate barcode
Dim barcode = BarcodeWriter.CreateBarcode("ITEM001", BarcodeEncoding.Code128)
barcode.SaveAsImage("barcode.png")

' Perform OCR on an invoice
Dim ocr = New IronTesseract()
Using input As New OcrInput()
    input.LoadImage("invoice.png")
    Dim ocrResult = ocr.Read(input)

    ' Generate PDF report
    Dim renderer = New ChromePdfRenderer()
    Dim htmlReport = $"
    <html>
        <body>
            <h1>Report Generated with .NET 10</h1>
            <h2>OCR Results:</h2>
            <p>{ocrResult.Text}</p>
            <h2>Products:</h2>
            <p>See Excel file for details</p>
        </body>
    </html>"

    Dim pdf = renderer.RenderHtmlAsPdf(htmlReport)
    pdf.SaveAs("comprehensive-report.pdf")
End Using

workbook.SaveAs("product-data.xlsx")
$vbLabelText   $csharpLabel

範例測試輸出

綜合代碼範例的輸出

此範例演示了 IronPDF、IronOCR、IronBarcode 和 IronXL 在 .NET 10 環境中的無縫集成,充分利用框架的性能改進。

結論

.NET 10 代表著運行時性能、代碼生成質量和開發者生產力的顯著進步。 Iron Software 的產品系列—IronPDFIronOCRIronBarcodeIronXL—與 .NET 10 平滑運行,允許開發者構建高性能的文件處理應用程式。

所有 Iron Software 產品已經過測試並確認可以無縫運行在 .NET 10 上,保持完全兼容性的同時受益於框架的性能增強。 無論您是從 HTML 生成 PDF使用 OCR 提取文本,生成或讀取條碼,還是操作 Excel 文件,Iron Software 產品為 .NET 10 的功能提供了可靠的高性能解決方案。

.NET 10 的運行時改進與 Iron Software 的優化函式庫的組合為構建現代、高效的應用程式創造了理想的環境。 支持擴展至 .NET 10、9、8、7、6、Framework、Core 和 Azure 的 Iron Software 產品為任何 .NET 開發場景提供了靈活性和性能。

對於使用 Visual Studio 2026 的開發者,正如在 Medium 和 dev.to 等社區資源中討論的那樣,增強的開發體驗與 .NET 10 和 Iron Software 產品的配合提供了前所未有的生產力和應用程式性能。

訪問 ironsoftware.com 探索完整的 .NET 函式庫範圍,立即使用 .NET 10 開始構建功能強大的文件處理應用程式