跳過到頁腳內容
.NET幫助

.NET Aspire(開發者的工作原理)

.NET Aspire 是一個決定性的、雲端就緒的堆疊框架,專為建立可觀察的、生產就緒的分散式應用程式而量身定制。 Aspire 透過一組NuGet套件交付,有效解決了各種雲端原生服務發現問題,並旨在提供一致的設定模式。 在.NET雲端原生應用領域,分散式應用中的常見做法是使用更小、相互關聯的元件或微服務,這與傳統的單體程式碼結構有所不同。 這些應用程式通常依賴資料庫、訊息傳遞系統、雲端資源和快取等眾多服務。

在這種情況下,分散式應用程式利用跨多個節點的運算資源,例如在不同主機上執行的容器。 跨網路邊界進行有效溝通對於這些節點協同向最終用戶提供回應至關重要。 具體來說,雲端原生分散式應用程式是分散式應用程式中的一個獨特類別,它充分利用了雲端原生應用程式基礎架構固有的可擴展性、彈性和可管理性。

本文將討論如何使用.NET Aspire元件建立 Web 應用程式。 此外,我們將使用IronPDF庫在 Aspire .NET專案元件中建立和下載 PDF 檔案。

1. .NET Aspire 簡介

.NET Aspire應用程式是一項旨在提升.NET生態系統中.NET雲端原生應用程式開發體驗的有目的的舉措。 它引入了一套連貫且具有鮮明風格的工具和設計模式,旨在簡化分散式應用程式的建置和運作。 .NET .NET入門應用程式的核心目標包括:

1.編排: .NET Aspire 編排輔助功能具有強大的功能,可用於編排多專案應用程式及其複雜的依賴關係。 此功能可確保.NET專案各個組件之間的流暢執行和無縫連接。 2.元件: .NET Aspire 編排提供的元件封裝在NuGet套件中,代表廣泛使用的服務,例如本地 Redis 容器資源或 Postgres。 這些組件的特點是採用標準化接口,從而保證與您的應用程式一致且無縫的整合。 透過利用這些預先包裝的元件,開發人員可以使用.NET Aspire 專案範本加快開發過程,並保持更高水準的互通性和可配置的雲端原生應用程式。 3.工具: .NET Aspire 入門範本包含一套全面的工具,旨在簡化開發工作流程。 專案範本和工具體驗已精心整合到 Visual Studio 和.NET CLI 中,使開發人員能夠輕鬆建立.NET Aspire 應用程式並與之互動。 這種包容性的工具框架提高了生產力,並為開發和管理.NET Aspire 應用程式配置和專案模板提供了一個統一的環境。

從本質上講, .NET Aspire 提供了一個整體解決方案,解決了特定雲端原生問題的關鍵方面,例如編排、元件整合和工具,所有這些都旨在提高建置和部署.NET雲端原生應用程式的效率和一致性。

2. .NET Aspire 入門

在使用.NET Aspire 之前,請確保已在本機安裝下列元件:

  1. .NET 8.0:請確保您的系統上已安裝.NET 8.0。
  2. .NET Aspire 工作負載:透過 VS 安裝程式或執行 dotnet workload install aspire 指令來取得.NET Aspire 工作負載。 3.整合開發環境 (IDE) 或程式碼編輯器:系統應事先安裝 Visual Studio 2022。

如果滿足所有這些要求,你就可以開始開發你的第一個用於處理應用程式的.NET Aspire 元件了。

3. 建立一個新的.NET Aspire 項目

若要建立.NET Aspire 應用程序,請依照下列步驟操作。

  1. 開啟 Visual Studio,然後按一下"建立新專案"。
  2. 將出現一個新視窗。 在這個新視窗中,在搜尋欄中搜尋"Aspire"。
  3. 以下將出現一個列表,從該列表中選擇 Aspire Starter apphost 項目和套件引用,然後按一下"下一步"。
  4. 將出現一個新視窗。 在這個新視窗中輸入項目名稱,然後按一下"下一步"。
  5. 在此視窗中選擇目標框架,然後按一下"建立"按鈕。

.NET Aspire 應用程式將在幾秒鐘內創建完成,您可以立即開始開發和自訂。

4. 運行和測試.NET Aspire 應用程式

專案建立完成後,只需點擊"執行"按鈕,建置過程需要一些時間,建置完成後,將開啟我們的 Aspire Web 應用程式主頁。

此主頁將包含我們的.NET Aspire 雲端原生應用程式堆疊,用於建立可觀察的、生產就緒的.NET Aspire 入門應用程式。

 .NET Aspire(開發人員的工作原理):圖 1 - Aspire 首頁

現在點選連結與.NET進行互動。 現在,請點選.NET Aspire Web 前端專案和套件參考。 它將開啟一個使用不同連接埠名稱的新網頁。

 .NET Aspire(開發人員的工作原理):圖 2 - 新建網頁

5. Introducing IronPDF C

IronPDF文件將其描述為一個功能強大且用途廣泛的 C# 庫,它使開發人員能夠輕鬆地將高級 PDF 生成和操作功能整合到他們的應用程式中。 該功能豐富的庫由Iron Software開發,提供了一套全面的工具,可以直接在 C# 應用程式中建立、修改和渲染 PDF 文件。

透過IronPDF,開發人員可以從各種來源(例如 HTML、圖像和現有文件)無縫生成 PDF,同時保持對格式和佈局的精確控制。 無論是建立動態報告、將 HTML 內容轉換為 PDF,或是為現有文件添加註釋, IronPDF都能簡化 PDF 處理流程,使其成為 C# 開發人員尋求可靠且高效的文件管理解決方案的寶貴資產。

5.1. 安裝IronPDF

若要無縫安裝IronPDF,請使用 Visual Studio 中的NuGet套件管理器。 指定的安裝軟體包名為IronPDF。 只需將以下命令複製並貼上到軟體包管理器控制台中,然後按回車鍵:

Install-Package IronPdf

5.2. 將IronPDF與 Aspire 組件集成

將IronPDF與 Aspire 組件整合與將 IronPDF 與Blazor Web 應用程式整合是一樣的,因為 Aspire 組件可以使用Blazor應用程式作為組件。 在這個程式碼範例中,我們將修改計數器頁面的程式碼,使其能夠建立和下載 PDF 檔案。

開啟 counter.razor 文件,並將程式碼替換為以下程式碼。

@page "/PrintPDF"
@rendermode InteractiveServer
@using IronPdf
<PageTitle>Print PDF</PageTitle>
<h1>IronPDF</h1>
<p role="status">Click on the button below to create and download the PDF file </p>
<button class="btn btn-primary" @onclick="IncrementCount">Print</button>
@code {
    private int currentCount = 0;

    /// <summary>
    /// Handles the click event of the "Print" button.
    /// This function will generate a PDF from an HTML string and prompt the user to download it.
    /// </summary>
    private void IncrementCount()
    {
        var renderer = new ChromePdfRenderer();
        // Create a PDF from an HTML string using C#
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
        // Export to a file using JavaScript Interop to initiate download
        JSRuntime.InvokeVoidAsync("saveAsFile", "output.pdf", Convert.ToBase64String(pdf.Stream.ToArray()));
    }
}
@page "/PrintPDF"
@rendermode InteractiveServer
@using IronPdf
<PageTitle>Print PDF</PageTitle>
<h1>IronPDF</h1>
<p role="status">Click on the button below to create and download the PDF file </p>
<button class="btn btn-primary" @onclick="IncrementCount">Print</button>
@code {
    private int currentCount = 0;

    /// <summary>
    /// Handles the click event of the "Print" button.
    /// This function will generate a PDF from an HTML string and prompt the user to download it.
    /// </summary>
    private void IncrementCount()
    {
        var renderer = new ChromePdfRenderer();
        // Create a PDF from an HTML string using C#
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
        // Export to a file using JavaScript Interop to initiate download
        JSRuntime.InvokeVoidAsync("saveAsFile", "output.pdf", Convert.ToBase64String(pdf.Stream.ToArray()));
    }
}
$vbLabelText   $csharpLabel

之後,編寫JavaScript程式碼以下載 PDF 檔案。將此程式碼編寫在 HTML body 標籤內的 script 標籤中。 以下是需要添加到您的專案中的程式碼。

<script type="text/javascript">
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            //Download document in Edge browser
            var data = window.atob(bytesBase64);
            var bytes = new Uint8Array(data.length);
            for (var i = 0; i < data.length; i++) {
                bytes[i] = data.charCodeAt(i);
            }
            var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
            navigator.msSaveBlob(blob, filename);
            window.navigator.msSaveOrOpenBlob(blob);
        }
        else {
            var link = document.createElement('a');
            link.download = filename;
            link.href = "data:application/octet-stream;base64," + bytesBase64;
            document.body.appendChild(link); // Needed for Firefox
            link.click();
            document.body.removeChild(link);
        }
    }
</script>
<script type="text/javascript">
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            //Download document in Edge browser
            var data = window.atob(bytesBase64);
            var bytes = new Uint8Array(data.length);
            for (var i = 0; i < data.length; i++) {
                bytes[i] = data.charCodeAt(i);
            }
            var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
            navigator.msSaveBlob(blob, filename);
            window.navigator.msSaveOrOpenBlob(blob);
        }
        else {
            var link = document.createElement('a');
            link.download = filename;
            link.href = "data:application/octet-stream;base64," + bytesBase64;
            document.body.appendChild(link); // Needed for Firefox
            link.click();
            document.body.removeChild(link);
        }
    }
</script>
JAVASCRIPT

運行程式碼後,它看起來會像下圖一樣。

 .NET Aspire(開發人員的工作原理):圖 3 - Blazor

若要建立和下載 PDF 文件,請點選"列印"按鈕。 它將會建立並下載名為 output.pdf 的 PDF 檔案。

 .NET Aspire(開發人員的工作原理):圖 4 - PDF 下載

6. 結論

.NET Aspire 作為一個關鍵框架應運而生,其設計初衷是為了在雲端環境中開發強大、可觀察和分散的應用程式。 .NET Aspire 透過提供一套統一的工具和設計模式,簡化了建構雲端原生應用程式的複雜性,提供了無縫的編排、組件整合和使用者友好的工具框架。 .NET Aspire 著重可擴展性、彈性和可管理性,符合轉型為微服務和分散式架構的典範。

當開發者開始使用.NET Aspire 時,他們將獲得一套全面的功能,從編排的多專案應用程式到封裝在NuGet套件中的標準化元件。 只要滿足先決條件並按照指南中概述的簡單步驟操作,開發人員就可以輕鬆創建、運行和測試.NET Aspire 應用程式。

此外, IronPDF與 Aspire 組件的整合展示了該框架的可擴展性和多功能性,使開發人員能夠將高級 PDF 生成和操作功能無縫地整合到他們的雲端原生應用程式中。 總體而言, .NET Aspire 憑藉其明確的目標和用戶友好的方式,成為開發人員在.NET生態系統中構建和部署雲原生應用程序時尋求高效且一致的解決方案的寶貴資產。

有關如何將IronPDF與Blazor Web 應用程式配合使用的完整教程,請造訪 IronPDF 的部落格教學。 若要取得IronPDF的免費試用版,請造訪IronPDF授權頁面以取得您的免費試用授權。

常見問題解答

怎樣在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字符串轉換為 PDF。您還可以使用 RenderHtmlFileAsPdf 將 HTML 文件轉換為 PDF。

.NET Aspire 在雲原生應用開發中的目的為何?

.NET Aspire 旨在幫助開發人員構建可觀察的、準備好量產的分散式應用程序。它提供了協作編排工具、組件整合,以及全面的設工具以管理雲原生應用程式中的微服務架構。

IronPDF 如何與 .NET Aspire 專案整合?

IronPDF 可以整合到 .NET Aspire 專案中,提供進階的 PDF 生成和操作功能。這允許開發人員在他們的雲原生應用中順利創建和管理 PDF。

IronPDF 在網頁應用中的一些常見用途是什麼?

IronPDF 常在網頁應用中用於生成 PDF 報告、將 HTML 內容轉換為 PDF,以及管理文件工作流程。它為開發人員提供了一套強大的工具來處理 .NET 應用程式中的 PDF 任務。

使用 IronPDF 在 .NET 專案中發生問題時,我該如何解決?

為了解決 IronPDF 的問題,確保 NuGet 包已正確安裝,且所有依賴項都被正確引用。檢查控制台中的任何錯誤信息,並查閱 IronPDF 文件或聯絡支援以獲取進一步指導。

.NET Aspire 框架的核心組件有哪些?

.NET Aspire 包括協作編排能力、更快捷開發的預包裝組件,以及集成於 Visual Studio 和 .NET CLI 的工具,這些都是設計來簡化雲原生應用程序的開發和管理。

.NET Aspire 在微服務架構方面有什麼優勢?

.NET Aspire 提供了一致的設定範式、強大的協作編排和無縫的組件整合,使得在雲原生環境中更容易管理和部署微服務架構。

我可以在哪裡學習更多關於將 IronPDF 用於 .NET 應用的資訊?

要學習更多關於將 IronPDF 用於 .NET 應用的資訊,您可以參閱 IronPDF 的部落格和文件,其中有教程和範例。這些資源提供了關於有效整合和使用 IronPDF 的詳細指導。

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

Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me