.NET Aspire (Jak to działa dla programistów)
.NET Aspire stands as a decisive, cloud-ready stack framework tailored for constructing observable, production-ready, distributed applications. Delivered through a set of NuGet packages, Aspire efficiently addresses various cloud-native service discovery considerations and aims to provide consistent setup patterns. In the realm of .NET cloud-native apps, the norm involves smaller, interlinked components or microservices in distributed apps, departing from the traditional monolithic code structure. These applications typically rely on numerous services like databases, messaging systems, cloud resources, and caching.
Distributed applications, in this context, leverage computational resources spanning multiple nodes, such as containers operating on diverse hosts. Effective communication across network boundaries is essential for these nodes to collaboratively deliver responses to end users. Specifically, a cloud-native distributed application, is a distinct category within distributed applications, capitalizing on the scalability, resilience, and manageability inherent in cloud-native app infrastructures.
In this article, we will discuss the .NET Aspire components to create a web application. Also, we will use the IronPDF library to create and download PDF files in the Aspire .NET project component.
1. Introduction to .NET Aspire
.NET Aspire application stands as a purposeful initiative aimed at enhancing the development experience dla .NET cloud-native apps within the .NET ecosystem. It introduces a cohesive and opinionated suite of tools and design patterns crafted to facilitate the seamless construction and operation of distributed apps. The core objectives of .NET Aspire starter application encompass:
- Orchestration: .NET Aspire orchestration assists features robust capabilities for orchestrating multi-project applications and their intricate dependencies. This functionality ensures smooth execution and seamless connectivity between diverse components of .NET projects.
- Components: The components offered by .NET Aspire orchestration are encapsulated within NuGet packages, representing widely utilized services like local Redis container resource or Postgres. These components are characterized by standardized interfaces, guaranteeing consistent and seamless integration with your application. By leveraging these pre-packaged components, developers can expedite the development process and maintain a higher level of interoperability and configurable cloud-native applications using .NET Aspire project templates.
- Tooling: .NET Aspire starter templates incorporate a comprehensive set of tools tailored to streamline the development workflow. Project templates and tooling experiences are thoughtfully integrated into Visual Studio and the .NET CLI, empowering developers to create and interact with .NET Aspire apps effortlessly. This inclusive tooling framework enhances productivity and provides a cohesive environment for developing and managing .NET Aspire app configurations and project templates.
In essence, .NET Aspire serves as a holistic solution, addressing key aspects of specific cloud-native concerns such as orchestration, component integration, and tooling, all aimed at elevating the efficiency and consistency of building and deploying .NET cloud-native applications.
2. Getting Started with .NET Aspire
Before engaging with .NET Aspire, ensure that the following components are locally installed:
- .NET 8.0: Make sure to have .NET 8.0 installed on your system.
- .NET Aspire Workload: Acquire the .NET Aspire workload by either utilizing the VS installer or executing the
dotnet workload install aspirecommand. - Integrated Developer Environment (IDE) or Code Editor: Visual Studio 2022 should be installed on the system beforehand.
If all these requirements are met, you are good to go with the development of your first .NET Aspire components that handle apps.
3. Create a New .NET Aspire Project
Aby utworzyć aplikacje .NET Aspire, wykonaj poniższe kroki.
- Otwórz Visual Studio i kliknij "Utwórz nowy projekt".
- Pojawi się nowe okno. W tym oknie wyszukaj "Aspire" na pasku wyszukiwania.
- Poniżej pojawi się lista — wybierz z niej projekt startowy Aspire Starter apphost i odwołania do pakietów, a następnie kliknij "Dalej".
- Pojawi się nowe okno. W tym oknie wpisz nazwę projektu i kliknij "Dalej".
- W tym oknie wybierz docelowy framework i kliknij przycisk "Utwórz".
Aplikacja .NET Aspire zostanie utworzona w ciągu kilku sekund i będziesz gotowy do rozpoczęcia pracy z nią.
4. Uruchamianie i testowanie aplikacji .NET Aspire
Po utworzeniu projektu kliknij przycisk Uruchom — po pewnym czasie skompilowany zostanie projekt, a następnie otworzy się strona główna naszej aplikacji webowej Aspire.
Na tej stronie głównej znajdzie się stos .NET Aspire Cloud-native służący do tworzenia obserwowalnych, gotowych do produkcji aplikacji startowych .NET Aspire.

Teraz kliknij łącza, aby wejść w interakcję z .NET. Kliknij projekt frontend .NET Aspire i odwołania do pakietów. Otworzy się nowa strona internetowa z inną nazwą portu.

5. Wprowadzenie do IronPDF dla C
Dokumentacja IronPDF opisuje go jako potężną i wszechstronną bibliotekę C#, która umożliwia programistom łatwe integrowanie zaawansowanych możliwości generowania i manipulowania dokumentami PDF w ich aplikacjach. Opracowana przez Iron Software, ta bogata w funkcje biblioteka oferuje kompleksowy zestaw narzędzi do tworzenia, modyfikowania i renderowania dokumentów PDF bezpośrednio w aplikacjach C#.
Dzięki IronPDF programiści mogą płynnie generować pliki PDF z różnych źródeł, takich jak HTML, obrazy i istniejące dokumenty, zachowując przy tym precyzyjną kontrolę nad formatowaniem i układem. Niezależnie od tego, czy chodzi o tworzenie dynamicznych raportów, konwersję treści HTML do PDF, czy dodawanie adnotacji do istniejących dokumentów, IronPDF upraszcza obsługę plików PDF, stanowiąc nieocenione wsparcie dla programistów C# poszukujących niezawodnego rozwiązania do zarządzania dokumentami.
5.1. Instalacja IronPDF
Aby zainstalować IronPDF, skorzystaj z menedżera pakietów NuGet w Visual Studio. Pakiet do instalacji nosi nazwę IronPDF. Skopiuj i wklej poniższe polecenie do konsoli menedżera pakietów, a następnie naciśnij Enter:
Install-Package IronPdf
5.2. Integracja IronPDF z komponentem Aspire
Integracja IronPDF z komponentem Aspire przebiega tak samo jak integracja z aplikacją internetową Blazor, ponieważ komponenty Aspire mogą korzystać z aplikacji Blazor jako komponentu. W tym przykładzie kodu zmienimy kod strony Counter, aby tworzyć i pobierać plik PDF.
Otwórz plik counter.razor i zastąp jego kod poniższym kodem.
@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()));
}
}
'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
''' <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 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 using JavaScript Interop to initiate download
JSRuntime.InvokeVoidAsync("saveAsFile", "output.pdf", Convert.ToBase64String(pdf.Stream.ToArray()))
End Sub
End Class
Następnie napisz kod JavaScript do pobierania pliku PDF. Umieść ten kod w tagu script w zakresie tagu HTML body. Poniżej znajduje się kod do dodania do projektu.
<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>
Po uruchomieniu kodu wynik będzie wyglądał mniej więcej jak na poniższym obrazku.

Aby utworzyć i pobrać plik PDF, kliknij przycisk Drukuj. Spowoduje to utworzenie i pobranie pliku PDF o nazwie output.pdf.

6. Podsumowanie
.NET Aspire staje się kluczowym frameworkiem, zaprojektowanym specjalnie do tworzenia solidnych, obserwowalnych i rozproszonych aplikacji w środowisku chmury. Dzięki spójnemu zestawowi narzędzi i wzorców projektowych .NET Aspire upraszcza złożoność związaną z tworzeniem aplikacji natywnych dla chmury, oferując płynną koordynację, integrację komponentów oraz przyjazną dla użytkownika platformę narzędziową. Koncentrując się na skalowalności, odporności i łatwości zarządzania, .NET Aspire wpisuje się w zmianę paradygmatu w kierunku mikrousług i architektur rozproszonych.
Rozpoczynając pracę z .NET Aspire, programiści zyskują dostęp do kompleksowego zestawu funkcji, od skoordynowanych aplikacji wieloprojektowych po standardowe komponenty zawarte w pakietach NuGet. Przestrzegając wymagań wstępnych i postępując zgodnie z prostymi krokami opisanymi w przewodniku, programiści mogą bez wysiłku tworzyć, uruchamiać i testować aplikacje .NET Aspire.
Ponadto integracja IronPDF z komponentami Aspire podkreśla rozszerzalność i wszechstronność frameworka, umożliwiając programistom płynne włączanie zaawansowanych funkcji generowania i manipulacji plikami PDF do ich aplikacji natywnych dla chmury. Ogólnie rzecz biorąc, .NET Aspire, dzięki jasno określonym celom i przyjaznemu dla użytkownika podejściu, stanowi cenne narzędzie dla programistów poszukujących wydajnego i spójnego rozwiązania do tworzenia i wdrażania aplikacji natywnych dla chmury w ekosystemie .NET.
Pełny samouczek dotyczący korzystania z IronPDF w aplikacjach internetowych Blazor można znaleźć na blogu IronPDF. Aby uzyskać bezpłatną wersję próbną IronPDF, odwiedź stronę licencyjną IronPDF i pobierz bezpłatną licencję probną.
Często Zadawane Pytania
Jak mogę przekonwertować HTML na PDF w języku C#?
Możesz użyć metody RenderHtmlAsPdf biblioteki IronPDF do konwersji ciągów HTML na pliki PDF. Możesz również konwertować pliki HTML na pliki PDF za pomocą metody RenderHtmlFileAsPdf.
Jaki jest cel .NET Aspire w tworzeniu aplikacji natywnych dla chmury?
.NET Aspire zostało zaprojektowane, aby pomóc programistom w tworzeniu obserwowalnych, gotowych do produkcji aplikacji rozproszonych. Zapewnia narzędzia do orkiestracji, integrację komponentów oraz kompleksowy zestaw narzędzi do zarządzania architekturami mikrousług w aplikacjach natywnych dla chmury.
W jaki sposób IronPDF integruje się z projektami .NET Aspire?
IronPDF można zintegrować z projektami .NET Aspire, aby zapewnić zaawansowane możliwości generowania i edycji plików PDF. Pozwala to programistom na płynne tworzenie plików PDF i zarządzanie nimi w ramach aplikacji natywnych dla chmury.
Jakie są typowe zastosowania IronPDF w aplikacjach internetowych?
IronPDF jest często używany w aplikacjach internetowych do generowania raportów PDF, konwersji treści HTML do formatu PDF oraz zarządzania przepływem dokumentów. Zapewnia programistom solidny zestaw narzędzi do obsługi zadań związanych z plikami PDF w aplikacjach .NET.
Jak mogę rozwiązywać problemy podczas korzystania z IronPDF w projekcie .NET?
Aby rozwiązać problemy związane z IronPDF, upewnij się, że pakiet NuGet jest poprawnie zainstalowany, a wszystkie zależności są prawidłowo odwołane. Sprawdź, czy w konsoli nie ma komunikatów o błędach, a w razie potrzeby zapoznaj się z dokumentacją IronPDF lub skontaktuj się z pomocą techniczną w celu uzyskania dalszych wskazówek.
Jakie są kluczowe komponenty frameworka .NET Aspire?
.NET Aspire oferuje funkcje koordynacji, gotowe komponenty przyspieszające tworzenie oprogramowania oraz zintegrowane narzędzia w ramach Visual Studio i .NET CLI — wszystko to zaprojektowano w celu usprawnienia tworzenia aplikacji natywnych dla chmury i zarządzania nimi.
Jakie zalety oferuje .NET Aspire dla architektury mikrousług?
.NET Aspire oferuje spójny wzorzec konfiguracji, solidną koordynację i płynną integrację komponentów, co ułatwia zarządzanie i wdrażanie architektur mikrousług w środowisku natywnym dla chmury.
Gdzie mogę dowiedzieć się więcej o korzystaniu z IronPDF w aplikacjach .NET?
Aby dowiedzieć się więcej o korzystaniu z IronPDF w aplikacjach .NET, odwiedź blog IronPDF oraz dokumentację, gdzie znajdziesz samouczki i przykłady. Zasoby te zawierają szczegółowe wskazówki dotyczące integracji i efektywnego wykorzystania IronPDF.




