跳至頁尾內容
.NET幫助

WebGrease .NET Core(對開發者如何理解的工作)

WebGrease 與 IronPDF 及 .NET Core 的整合提供了一種強大的方法來生成高品質的 PDF 文件並精簡網路應用程式效能。 透過使用 JavaScript 壓縮、影像優化和 CSS 壓縮,WebGrease 是一個功能豐富的軟體包,可以讓開發人員的網站運行得更快更流暢。 開發者可以使用 IronPDF 這個用於生成和處理 PDF 文件的強大 .NET 工具包,從包括 HTML 和 MVC 檢視的多個來源輕鬆地建立動態 PDF。

透過這種整合,網路應用程式得以保持流暢且適應性強,能夠進行有效的資源管理和動態 PDF 生成。 WebGrease 和 IronPDF 完全相容 .NET Core,允許開發人員建立跨平台應用程式,這些應用程式能夠無縫運行於Linux、macOS 和 Windows。 這歸功於效能優化和卓越的文件處理,最終提升了使用者體驗。

什麼是 WebGrease?

最初作為 ASP.NET 堆疊的一部分而建立的 WebGrease 是一種工具,用於自動化處理如 JavaScript 優化、壓縮、圖片優化和 CSS 壓縮等靜態文件的流程,以提高網路效能。 這些優化有助於減少網路資源的大小,從而提高網路應用程式的效能並加速載入時間。

WebGrease .NET Core (對開發者的運作方式): 圖1

在 .NET Core 的背景下,當我們討論 WebGrease 時,我們指的是將這些優化方法應用於 .NET Core 應用程式。 Microsoft 建立了這個跨平台的開源 .NET Core 框架,讓開發者可以建立先進、可擴展且高效的程式。開發者可以透過整合 WebGrease,將傳統 ASP.NET 應用程式中的效能優化技術應用於他們的 .NET Core 專案。 通過這種方式,開發者可以確保其網路應用程式在各種平台上如 Windows、Linux 和 macOS 上保持高效和性能。

WebGrease 的功能

在 .NET Core 框架中,WebGrease 提供了多種功能,專注於提升網路應用程式的效率和速度。 顯著的特徵如下:

CSS 壓縮:

  • 刪除 CSS 文件中不必要的格式、註釋和空白。
  • 透過將多個 CSS 文件合併為單一文件來減少 HTTP 請求。
  • 改善性能並加快 CSS 的載入時間。

JavaScript 壓縮:

  • 通過刪除不必要的字元來最小化 JavaScript 文件。
  • 將多個 JavaScript 文件合併為一個。
  • 減小 JavaScript 文件大小,以加快下載和執行時間。

影像優化:

  • 在不顯著降低質量的情況下壓縮影像。
  • 在合適的情況下,將影像轉換為更有效的格式。
  • 優化影像資源以提高載入速度。

HTML 壓縮:

  • 刪除 HTML 文件中的空白和註釋。
  • 簡化 HTML 文件以便於瀏覽器更快速解析和渲染。

資源捆綁:

  • 將多個 JavaScript 和 CSS 文件合併為一個單獨的文件。
  • 減少載入頁面所需的 HTTP 請求數量,從而提升載入時間。

配置靈活性:

  • 提供配置優化過程的選項。
  • 允許開發人員選擇要優化或排除的目錄和文件。

跨平台相容性:

  • 完全相容 .NET Core,允許在 Windows、Linux 和 macOS 上使用。
  • 確保在各種環境中性能提升運行良好。

與構建過程的整合:

  • 可以整合到構建過程中,從而在部署和開發期間自動優化資源。
  • 支援自動流程,以確保在開發階段的一致性優化。

提升的性能:

  • 最大程度減少需載入的資源,從而提升整體網路應用程式效能。
  • 提升使用者體驗並加速頁面載入。

建立和配置 WebGrease

要在 .NET Core 應用程式中使用 WebGrease,請安裝必要的套件,配置構建過程,並設置優化任務。 以下步驟將幫助您在 .NET Core 應用程式中建立和設置 WebGrease:

建立 .NET Core 專案

首先,建立一個新的 .NET Core 網頁應用程式。 您可以使用 .NET CLI 來達成這個目的。

dotnet new web -n WebGreaseApp
cd WebGreaseApp
dotnet new web -n WebGreaseApp
cd WebGreaseApp
SHELL

新增必要的套件

儘管 WebGrease 沒有直接針對 .NET Core 的套件,您可以使用其他如 BundlerMinifier 的程式來實現類似的功能。 將此套件新增到您的專案。

dotnet add package BundlerMinifier.Core
dotnet add package BundlerMinifier.Core
SHELL

配置捆綁和壓縮

在專案根目錄中建立一個 bundleconfig.json 文件以提供 CSS 和 JavaScript 文件的捆綁和壓縮設置。 這是一個配置範例。

[
  {
    "outputFileName": "wwwroot/css/site.min.css",
    "inputFiles": [
      "wwwroot/css/site.css"
    ],
    "minify": {
      "enabled": true,
      "renameLocals": true
    }
  },
  {
    "outputFileName": "wwwroot/js/site.min.js",
    "inputFiles": [
      "wwwroot/js/site.js"
    ],
    "minify": {
      "enabled": true
    }
  }
]

與構建過程整合

在專案文件 (.csproj) 中新增指令,以在構建過程中執行捆綁和壓縮操作。

在 .csproj 文件中的 <Project> 元素內新增以下元素:

<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
  <Exec Command="dotnet bundle" />
</Target>
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
  <Exec Command="dotnet bundle" />
</Target>
XML

安裝和運行 BundlerMinifier

要使用 BundlerMinifier 工具,您必須安裝 .NET 實用工具。 執行以下命令:

dotnet tool install -g BundlerMinifier.Core
dotnet tool install -g BundlerMinifier.Core
SHELL

要捆綁和最小化您的文件,請執行:

dotnet bundle
dotnet bundle
SHELL

優化影像

您可以使用 ImageSharp 或其他符合 .NET Core 的影像優化工具進行影像優化。

安裝 ImageSharp

安裝 SixLabors.ImageSharp 套件:

dotnet add package SixLabors.ImageSharp
dotnet add package SixLabors.ImageSharp
SHELL

這是一個用於影像優化的程式碼片段例子:

using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
using System.IO;

public void OptimizeImage(string inputPath, string outputPath)
{
    // Load the image
    using (var image = Image.Load(inputPath))
    {
        // Resize and optimize the image
        image.Mutate(x => x.Resize(new ResizeOptions
        {
            Mode = ResizeMode.Max,
            Size = new Size(800, 600)
        }));
        // Save the image in an optimized format
        image.Save(outputPath); // Automatic encoder selected based on file extension.
    }
}
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;
using System.IO;

public void OptimizeImage(string inputPath, string outputPath)
{
    // Load the image
    using (var image = Image.Load(inputPath))
    {
        // Resize and optimize the image
        image.Mutate(x => x.Resize(new ResizeOptions
        {
            Mode = ResizeMode.Max,
            Size = new Size(800, 600)
        }));
        // Save the image in an optimized format
        image.Save(outputPath); // Automatic encoder selected based on file extension.
    }
}
Imports SixLabors.ImageSharp
Imports SixLabors.ImageSharp.Processing
Imports System.IO

Public Sub OptimizeImage(ByVal inputPath As String, ByVal outputPath As String)
	' Load the image
	Using image = System.Drawing.Image.Load(inputPath)
		' Resize and optimize the image
		image.Mutate(Function(x) x.Resize(New ResizeOptions With {
			.Mode = ResizeMode.Max,
			.Size = New Size(800, 600)
		}))
		' Save the image in an optimized format
		image.Save(outputPath) ' Automatic encoder selected based on file extension.
	End Using
End Sub
$vbLabelText   $csharpLabel

運行您的應用程式以確保捆綁和壓縮按預期運行。 在瀏覽器中打開您的應用程式,然後驗證 JavaScript 和 CSS 文件是否已壓縮。

通過遵循這些步驟,您可以使用與現有 .NET 環境相容的工具,在 .NET Core 應用程式中設置和配置類似 WebGrease 的優化。

開始使用IronPDF

在 .NET Core 應用程式中,設定網頁資源的效能優化和使用 IronPDF 來生成和操作 PDF 是整合 WebGrease 類似優化與 IronPDF 的必要步驟。 以下是分步開始的方法:

什麼是IronPDF?

功能豐富的 .NET 程式庫IronPDF允許 C# 程式生成、閱讀和編輯 PDF 文件。 透過這個程式,開發人員可以輕鬆將 HTML、CSS 和 JavaScript 資料轉換為高品質、可列印的 PDF。 最重要的任務之一包括新增頁眉和頁腳、拆分和合併 PDF、為文件新增水印、將 HTML 轉換為 PDF。

IronPDF因為支援.NET Framework和.NET Core,對多種應用來說是有用的。 由於 PDF 易於使用且包含豐富的內容,開發者可以輕鬆地將它們整合到產品中。 因為 IronPDF 可以處理複雜的数据佈局和格式化,它生成的 PDF 輸出與客戶端最初提供的 HTML 文字非常接近。

WebGrease .NET Core (對開發者的運作方式): 圖2

IronPDF 的功能

從HTML生成PDF

  • 將 JavaScript、HTML 和 CSS 轉換為 PDF。
  • 支援媒體查詢和響應式設計,符合現代網頁標準。
  • 有助於使用 HTML 和 CSS 動態裝飾 PDF 文件、報告和發票。

PDF編輯

  • 允許向現有的 PDF 中新增文字、影像和其他內容。
  • 從 PDF 文件中提取文字和影像。
  • 將多個 PDF 合併為一個。
  • 將 PDF 文件拆分為單獨的文件。
  • 包含水印、註釋、頁眉和頁腳。

PDF轉換

  • 將多種文件格式如 Word、Excel 和影像文件轉換為 PDF。
  • 允許 PDF 轉換為影像(PNG、JPEG 等)。

性能和可靠性

  • 高效能和可靠性,適合工業應用。
  • 輕鬆處理大型文件集。

安裝 IronPDF

要獲得需要的工具以在.NET專案中與PDF一起使用,請安裝IronPDF包。

dotnet add package IronPdf

配置捆綁和壓縮

確保 bundleconfig.json 配置文件已就位,以便根據需要再次提供捆綁和壓縮設置:

[
  {
    "outputFileName": "wwwroot/css/site.min.css",
    "inputFiles": [
      "wwwroot/css/site.css"
    ],
    "minify": {
      "enabled": true,
      "renameLocals": true
    }
  },
  {
    "outputFileName": "wwwroot/js/site.min.js",
    "inputFiles": [
      "wwwroot/js/site.js"
    ],
    "minify": {
      "enabled": true
    }
  }
]

連接到構建過程

確保您的 .csproj 文件包含在構建過程中執行壓縮和捆綁操作的說明。 在 <Project> 元素中新增以下 Target:

<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
  <Exec Command="dotnet bundle" />
</Target>
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
  <Exec Command="dotnet bundle" />
</Target>
XML

整合 IronPDF

using IronPDF 建立一個控制器來生成 PDF。 建立一個新的 PdfController 控制器。

using Microsoft.AspNetCore.Mvc;
using IronPdf;

namespace WebGreaseIronPdfApp.Controllers
{
    public class PdfController : Controller
    {
        public IActionResult GeneratePdf()
        {
            // Create a PDF from a simple HTML string
            var renderer = new ChromePdfRenderer();
            var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF!</h1><p>This is a generated PDF document.</p>");

            // Save the PDF to a byte array
            var pdfBytes = pdf.BinaryData;

            // Return the PDF file as a download
            return File(pdfBytes, "application/pdf", "example.pdf");
        }
    }
}
using Microsoft.AspNetCore.Mvc;
using IronPdf;

namespace WebGreaseIronPdfApp.Controllers
{
    public class PdfController : Controller
    {
        public IActionResult GeneratePdf()
        {
            // Create a PDF from a simple HTML string
            var renderer = new ChromePdfRenderer();
            var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF!</h1><p>This is a generated PDF document.</p>");

            // Save the PDF to a byte array
            var pdfBytes = pdf.BinaryData;

            // Return the PDF file as a download
            return File(pdfBytes, "application/pdf", "example.pdf");
        }
    }
}
Imports Microsoft.AspNetCore.Mvc
Imports IronPdf

Namespace WebGreaseIronPdfApp.Controllers
	Public Class PdfController
		Inherits Controller

		Public Function GeneratePdf() As IActionResult
			' Create a PDF from a simple HTML string
			Dim renderer = New ChromePdfRenderer()
			Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello, IronPDF!</h1><p>This is a generated PDF document.</p>")

			' Save the PDF to a byte array
			Dim pdfBytes = pdf.BinaryData

			' Return the PDF file as a download
			Return File(pdfBytes, "application/pdf", "example.pdf")
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

在 PdfController 程式碼中,我們首先導入所需的命名空間,這些命名空間是 Microsoft.AspNetCore.Mvc,用於 ASP.NET Core MVC 功能和 IronPDF 用於 PDF 生成。 由於 PdfController 類源於 Controller,它是 MVC 控制器。 在該類中的 GeneratePdf 方法被定義為管理 PDF 的建立。

WebGrease .NET Core (對開發者的運作方式): 圖3

為了將 HTML 資料轉換為 PDF,此功能建立了 IronPDF 的 ChromePdfRenderer 的實例。 基本的 HTML 字串可以使用 RenderHtmlAsPdf 函式轉換為 PDF 文件。 然後使用 BinaryData 屬性將此 PDF 保存為位元組陣列。 最後,使用 File 方法返回 PDF 文件作為可下載的響應,並附上要求的文件名 (example.pdf) 和正確的 MIME 型別 (application/pdf)。 感謝這種整合,該程式現在可以根據 HTML 內容動態建立和提供 PDF 文件。

生成 PDF 的路由

確保您的 Startup.cs 文件中包含 PDF 生成路由。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseRouting();
    app.UseAuthorization();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
        endpoints.MapControllerRoute(
            name: "pdf",
            pattern: "pdf",
            defaults: new { controller = "Pdf", action = "GeneratePdf" });
    });
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseRouting();
    app.UseAuthorization();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
        endpoints.MapControllerRoute(
            name: "pdf",
            pattern: "pdf",
            defaults: new { controller = "Pdf", action = "GeneratePdf" });
    });
}
Public Sub Configure(app As IApplicationBuilder, env As IWebHostEnvironment)
    If env.IsDevelopment() Then
        app.UseDeveloperExceptionPage()
    Else
        app.UseExceptionHandler("/Home/Error")
        app.UseHsts()
    End If
    app.UseHttpsRedirection()
    app.UseStaticFiles()
    app.UseRouting()
    app.UseAuthorization()
    app.UseEndpoints(Sub(endpoints)
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}")
        endpoints.MapControllerRoute(
            name: "pdf",
            pattern: "pdf",
            defaults:=New With {.controller = "Pdf", .action = "GeneratePdf"})
    End Sub)
End Sub
$vbLabelText   $csharpLabel

運行和驗證

運行您的應用程式,以確保您可以建立 PDF,並且捆綁和壓縮運作正常。

dotnet run
dotnet run
SHELL

打開瀏覽器並導航至您的應用程式。 您應該能夠導航到 /pdf 並下載 PDF 文件。

結論

IronPDF 和 WebGrease 類似的優化相結合,為提升線上性能並生成高品質 PDF 文件提供了一個強大的組合,在 .NET Core 應用程式中。 開發者可以使用如 IronPDF 之類的工具來建立 PDF 及 BundlerMinifier 來優化資源,以確保它們的應用程式既高效又靈活。 除了圖片壓縮,資源優化策略如 CSS 和 JavaScript 壓縮也有助於加快頁面載入並增強使用者體驗。 同時,IronPDF 具有從 HTML 文字動態建立 PDF 的強大功能,簡化了製作預備完善的文件如發票、報告等的過程。

這種整合提供了一個完整的解決方案,滿足 .NET Core 框架內的現代網頁開發需求,不僅提升線上應用程式性能,還新增了處理 PDF 的實用功能。

憑藉 IronPDFIron Software,您可以利用 OCR、條碼掃描、PDF 建立、Excel 連接等功能,增強您的 .NET 開發工具包,還有更多內容。 IronPDF 以具有競爭力的價格起售,為開發人員提供更多的網頁應用程式和功能存取,並透過將其核心概念與高度靈活的 Iron Software 工具箱結合,提升開發效率。

項目清晰定義的授權選項,使開發者易於選擇最佳模型,幫助快速、有條理且有效地執行廣泛問題的解決方案。

常見問題

如何在.NET Core中優化網頁應用程式的性能?

您可以通過整合WebGrease來提升.NET Core中網頁應用程式的性能。WebGrease提供JavaScript壓縮、圖像優化和CSS精簡化。這些技術減小了資源大小並加速了載入時間,從而提高效率和使用者體驗。

在.NET Core應用程式中從HTML生成PDF有哪些好處?

在.NET Core應用程式中使用IronPDF從HTML生成PDF允許開發者直接從網頁內容中建立可列印的文件。這非常適合動態生成報告、發票和其他文件,保持原始HTML的格式。

如何在.NET Core應用程式中建立動態PDF?

您可以在.NET Core應用程式中使用IronPDF建立動態PDF。它允許將HTML和MVC視圖轉換為高質量的PDF,使生成的文件能夠維持原始結構和設計。

將PDF生成整合到.NET Core應用程式中的過程是什麼?

要將PDF生成整合到.NET Core應用程式中,請安裝IronPDF包,配置應用程式中所需的設置,並使用IronPDF的方法如RenderHtmlAsPdf來將HTML內容轉換為PDF。

WebGrease如何提高.NET Core應用程式的性能?

WebGrease通過自動化CSS和JavaScript精簡化、圖像優化和資源綁定等優化過程來提高.NET Core應用程式的性能。這些過程減小了資源的大小,從而導致更快的載入時間並提高應用程式的效率。

我可以在Linux或macOS上使用WebGrease和IronPDF嗎?

是的,WebGrease和IronPDF都與.NET Core相容,允許其功能在包括Linux和macOS在內的不同操作系統上使用,以及Windows。

在.NET Core中使用IronPDF時的一些常見故障排除情況有哪些?

在.NET Core中使用IronPDF時的常見故障排除情況包括確保所有依賴項正確安裝、驗證配置設置,以及檢查與項目中的其他程式庫或包的任何衝突。

IronPDF的文件生成的主要特點是什麼?

IronPDF的主要特點包括生成、閱讀和編輯PDF文件、將HTML和各種文件格式轉換為PDF,以及保持複雜的資料佈局,確保在.NET Core應用程式中高質量的文件處理。

IronPDF如何處理HTML內容以進行PDF轉換?

IronPDF通過將HTML內容轉換為與原始HTML結構非常接近的高質量PDF,確保生成的PDF保持原始內容的佈局、樣式和格式。

如何優化.NET Core應用程式中的圖像處理?

若要優化.NET Core應用程式中的圖像處理,考慮使用如ImageSharp的圖像優化工具,其能無重大質量損失地壓縮圖像並將其轉換為效率更高的格式,增強整體應用程式性能。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

Jacob擁有曼徹斯特大學的土木工程一等榮譽學士學位(BEng),於1998-2001年之間獲得。在1999年於倫敦創辦他的第一家軟體公司並於2005年建立了他的第一批.NET元組件後,他專注於解決Microsoft生態系統中的複雜問題。

他的旗艦IronPDF和Iron Suite .NET程式庫在全球獲得了超過3000萬次NuGet安裝依據,他的基礎程式碼基繼續支援著世界各地開發者使用的工具。擁有25年的商業經驗和41年的程式設計專業知識,他仍專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話