在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
.NET Aspire 是一個決定性的雲端準備棧架構,專為構建可觀測、生產就緒的分散式應用程式而定制。 透過一組 NuGet 套件交付,Aspire 有效解決了各種雲原生服務發現的考量,並旨在提供一致的配置模式。 在 .NET 雲原生應用程序的領域,通常涉及較小的、相互關聯的組件或分布式應用程序中的微服務,這有別於傳統的單體代碼結構。 這些應用程式通常依賴於許多服務,如資料庫、訊息系統、雲端資源和快取。
在此情境中,分佈式應用程式利用分佈於多個節點(例如在多個主機上運行的容器)的計算資源。 跨網路邊界的有效溝通對於這些節點協作向最終用戶提供回應至關重要。 具體而言,雲原生分散式應用程序是在分散式應用程序中的一個特殊類別,利用了雲原生應用程序基礎設施中固有的可擴展性、韌性和可管理性。
在本文中,我們將討論.NET Aspire用來建立網路應用程式的元件。 此外,我們將使用IronPDF 庫在Aspire .NET專案元件中創建並下載PDF檔案。
.NET Aspire應用程式作為一項有目的的倡議,旨在提升 .NET 生態系統內的 .NET 雲原生應用程式的開發體驗。 它介紹了一套一致且有見地的工具和設計模式,旨在促進分佈式應用程式的無縫構建和運行。.NET Aspire 起始應用程式的核心目標包括:
編排: .NET Aspire編排具有強大的功能,用於編排多項目應用程序及其複雜的依賴關係。 此功能確保 .NET 專案的各種元件之間的順利執行和無縫連接。
元件: .NET Aspire 管理提供的元件封裝在 NuGet 套件中,代表了廣泛使用的服務,例如本地 Redis 容器資源或 Postgres。 這些組件以標準化的介面為特徵,確保與您的應用程式能夠一致且無縫地整合。 通過利用這些預先打包的組件,開發人員可以加快開發流程,並使用.NET Aspire項目模板維持較高水平的互操作性和可配置的雲原生應用程式。
工具: .NET Aspire 入門模板包含一套完整的工具,專為簡化開發工作流程而設計。 專案模板和工具體驗巧妙地整合到 Visual Studio 和 .NET CLI 中,讓開發者能夠輕鬆地創建和互動 .NET Aspire 應用程式。 這個包容性的工具框架提升了生產力,並為開發和管理 .NET Aspire 應用配置和項目模板提供了一個凝聚的環境。
本質上,.NET Aspire 作為一個全面的解決方案,旨在解決特定雲原生問題的關鍵方面,如編排、組件集成和工具,所有這些都旨在提升構建和部署 .NET 雲原生應用程序的效率和一致性。
在使用 .NET Aspire 之前,請確保已在本地安裝以下組件:
.NET 8.0: 確保在您的系統上安裝 .NET 8.0。
.NET Aspire 工作負載: 可通過使用 VS 安裝程序或執行 "dotnet workload install aspire" 命令來獲取 .NET Aspire 工作負載。
整合開發環境(集成開發環境)或代碼編輯器:**系統中應事先安裝 Visual Studio 2022。
如果滿足所有這些要求,您就可以開始開發您的第一個處理應用程式的 .NET Aspire 元件。
要創建 .NET Aspire 應用,請按照以下步驟操作。
開啟 Visual Studio 並點擊「建立新專案」。
將會出現一個新視窗。 在此新窗口中,在搜索欄中搜索 Aspire。
在下面的列表中選擇 Aspire Starter apphost 專案及封裝引用,然後點擊下一步。
將會出現一個新視窗。 在此新窗口中輸入專案名稱,然後點擊下一步。
在此窗口中選擇目標框架,然後點擊「建立」按鈕。
.NET Aspire 應用程式將在幾秒內建立,然後您就可以開始開發和自訂。
建立專案後,只需點擊執行按鈕,這會花一些時間來建立建置,之後就會開啟我們的Aspire網頁應用程式首頁。
此首頁將包含我們的 .NET Aspire 雲原生應用程式堆疊,用於構建可觀測的生產就緒 .NET Aspire 起始應用程式。
現在點擊這些連結以與 .NET 互動。 現在,點擊.NET Aspire網頁前端專案和套件引用。 它將使用不同的埠名稱開啟新網頁。
IronPDF 文件說明描述它是一個強大且多功能的C#程式庫,使開發人員能夠輕鬆將先進的PDF生成和操作功能集成到他們的應用程式中。 由 Iron Software 開發,這個功能豐富的庫提供了一套完整的工具,可以直接在 C# 應用程式中創建、修改和渲染 PDF 文件。
使用 IronPDF,開發者可以無縫地從各種來源(如 HTML、圖像和現有文件)生成 PDF,同時精確控制格式和佈局。 無論是建立動態報告、將 HTML 內容轉換為 PDF,還是在現有文件中添加註釋,IronPDF 都簡化了 PDF 處理過程,對於尋求可靠且高效的文件管理解決方案的 C# 開發者來說,它是一項寶貴的資產。
要無縫安裝IronPDF,請在Visual Studio中利用NuGet套件管理器。 用於安裝的指定套件名為IronPDF。 只需將以下命令複製並貼上到套件管理器主控台,然後按下 Enter 鍵:
Install-Package IronPdf
將IronPDF與Aspire元件整合的方式與Blazor網頁應用程式的整合相同,因為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;
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 or Stream
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;
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 or Stream
JSRuntime.InvokeVoidAsync("saveAsFile", "output.pdf", Convert.ToBase64String(pdf.Stream.ToArray()));
}
}
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: @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
"btn btn-primary" onclick="IncrementCount"> Print</button> code
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Friend @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
"status"> Click on the button below [to] create [and] download the PDF file </p> <button Class="btn btn-primary" onclick
Private Private Friend page "/PrintPDF" rendermode InteractiveServer [using] IronPdf (Of PageTitle) Print PDF</PageTitle> (Of h1) IronPDF</h1> <p role="status"> Click on the button below [to] create [and] download the PDF file </p> <button Class
Private currentCount As Integer = 0
Private Sub IncrementCount()
Dim renderer = New ChromePdfRenderer()
' Create a PDF from an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
' Export to a file or Stream
JSRuntime.InvokeVoidAsync("saveAsFile", "output.pdf", Convert.ToBase64String(pdf.Stream.ToArray()))
End Sub
End Class
接下來,編寫 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>
運行代碼後,它將看起來像下圖所示。
若要建立和下載 PDF 檔案,請點擊「列印」按鈕。 它將創建並下載名為 output.pdf 的 PDF 檔案。
.NET Aspire 成為關鍵框架,專為在雲環境中開發強大、可觀察和分散的應用程式而設計。 透過提供一套統一的工具和設計模式,.NET Aspire 簡化了構建雲原生應用程式相關的複雜性,提供無縫的協同處理、組件整合和易於使用的工具框架。 專注於可擴展性、韌性和可管理性,.NET Aspire 與向微服務和分散式架構的範式轉變保持一致。
隨著開發人員開始使用 .NET Aspire,他們即可獲得一整套完整的功能,涵蓋了從協同多專案應用程式到標準化組件封裝在 NuGet 套件中的各個方面。 通過遵循先決條件並按照指南中列出的簡單步驟,開發人員可以輕鬆創建、運行和測試 .NET Aspire 應用程式。
此外,將IronPDF整合到Aspire元件中展示了該框架的可擴展性和多功能性,使開發人員能夠無縫地將先進的PDF生成和操作功能融入到其雲原生應用程式中。 總體而言,.NET Aspire 以其明確的目標和使用者友好的方法,成為尋求高效且一致方案的開發者寶貴資產,用於在 .NET 生態系統中構建和部署雲原生應用程式。
使用完整教程IronPDF with Blazor網路應用程式請參閱 IronPDF 的部落格教程。 要獲取 IronPDF 的免費試用版,請訪問IronPDF 授權頁面以獲取您的免費試用許可證。