.NET幫助 dotnetify.NET(對開發者如何理解的工作) Curtis Chau 更新日期:6月 22, 2025 Download IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article DotNetify 是一个使用 .NET 和 Blazor 制作的开源框架,旨在在 .NET 平台上创建实时 Web 应用程序。 通过利用 SignalR 的强大功能实现客户端与服务器之间的实时交互,它简化了动态和交互式 Web 应用程序的构建。 DotNetify 提供了一种编程模型,将客户端视图与 服务器端脚本 数据同步,使开发人员能够快速轻松地设计丰富的、响应迅速的和性能卓越的在线界面。 相反,IronPDF PDF 生成库 是一个强大的 .NET 程序包,可帮助以编程方式创建、编辑和操作 PDF 文档。 它是创建动态、数据驱动文档(如报告、发票和表单)的优秀选择,提供直观的 API 用于将 HTML 文本转换为 PDF。 通过将 DotNetify 与 IronPDF 集成,实时 Web 互动性和强大的 PDF 生产能力在 C# 应用程序中结合。 这种集成对于需要实时数据展示和能够根据最新数据动态创建和分发 PDF 文档的应用程序特别有益。 开发人员可以通过无缝的文档生成和分发,利用 IronPDF 的多功能 PDF 生成和 DotNetify 的实时数据同步,创建满足复杂业务要求并增强用户体验的广泛、互动式在线应用程序。 什么是 DotNetify? DotNetify 是一个开源框架,旨在简化使用 .NET 和 Blazor 创建交互式、实时 Web 应用程序。 通过利用 SignalR,开发人员可以创建动态和响应迅速的用户界面,以便与服务器端数据轻松同步,实现客户端与服务器之间的实时通信。 DotNetify 使用一种反应编程方法,抽象化了实时数据绑定和事件处理的复杂性,从而简化了复杂在线应用程序的创建,需代码量极少。 dotnetify .NET(开发人员如何使用):图 1 DotNetify 允许开发人员构建能够立即传播变化到客户端的服务器端视图模型,确保用户界面始终反映应用程序的状态。 该框架在选择客户端技术方面提供灵活性,支持传统的 JavaScript 前端和 Blazor 前端。 由于易于使用和高效,特别适合需要实时更新的应用程序,如仪表板、协作工具和实时数据流。 DotNetify 的实时处理复杂交互和数据流显著提升了用户体验,实现了顺畅的数据同步和即时反馈。 总的来说,DotNetify 是一个宝贵的工具,适合 .NET 开发人员快速高效地构建响应式、前沿的、实时在线应用程序。 DotNetify 的功能 C# 中的 DotNetify 提供多种功能,简化了交互式、实时在线应用程序的创建,包括: 实时通信: 使用 SignalR 实现双向、实时客户端-服务器通信,支持交互式用户界面和即时更新。 反应编程模型: 提供反应式编程模型,自动同步客户端视图和服务器端视图模型,以保持用户界面跟上最新信息。 服务器端视图模型: 促进创建客户端组件可以绑定的服务器端视图模型,简化应用程序中的状态管理和数据流。 Blazor 和 JavaScript 支持: 支持传统 JavaScript 前端和 Blazor 前端,使开发人员能够选择最适合其要求的客户端技术。 易于集成: 无缝集成实时功能到新项目或现有项目中,并与 WebSockets 等前端 UI 组件框架配合良好,与 React Native、Vue 和 Blazor 项目兼容。 可扩展性: 继承了 SignalR 的扩展性特性,使应用程序能够有效地管理大量并发连接。 MVVM 架构: 采用模型-视图-视图模型(MVVM)架构,帮助分离责任并保持代码组织和清晰。 事件处理: 通过简化事件处理和数据绑定,减少处理 UI 交互和状态变化所需的样板代码。 可扩展和可定制: 提供扩展点和钩子供行为自定义和与其他库或框架的必要集成。 强大的基础架构: 提供一种动态路由机制,可以完全在后端定义,具备嵌套路由、基于令牌的认证等功能。 开源和社区驱动: 作为一个开源项目,DotNetify 受益于社区参与和贡献,确保持续的升级和改进。 在 C# 中创建和配置 DotNetify 要建立一个简单的项目并开始在 C# 在线应用程序中配置 DotNetify,请按以下步骤进行。 本教程演示如何使用 ASP.NET Core 和 Blazor 设置一个基本的 DotNetify 服务器和客户端。 建立一个新 ASP.NET Core Blazor 服务器项目 打开 Visual Studio:启动 Visual Studio 并创建一个新项目。 创建一个 Blazor 服务器应用程序:从项目模板中选择 Blazor 服务器应用程序模板并点击“下一步”。 配置项目:为项目提供一个名称(例如“DotNetifyWebApp”)并进行必要的配置更改。点击“创建”。 #### 通过 NuGet 安装 DotNetify 管理 NuGet 包:在解决方案资源管理器中,右键点击项目并选择“管理 NuGet 包”。 搜索 DotNetify:安装 DotNetify 和 DotNetify.Blazor 包。 配置 DotNetify 要配置 DotNetify,请打开Startup.cs并使用ConfigureServices和Configure方法。 创建一个视图模型 using DotNetify; using DotNetify.Blazor; public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddRazorPages(); services.AddServerSideBlazor(); services.AddSignalR(); services.AddDotNetify(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapBlazorHub(); endpoints.MapFallbackToPage("/_Host"); endpoints.MapHub<DotNetifyHub>("/dotnetify"); }); } } using DotNetify; using DotNetify.Blazor; public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddRazorPages(); services.AddServerSideBlazor(); services.AddSignalR(); services.AddDotNetify(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapBlazorHub(); endpoints.MapFallbackToPage("/_Host"); endpoints.MapHub<DotNetifyHub>("/dotnetify"); }); } } Imports DotNetify Imports DotNetify.Blazor Public Class Startup Public Sub ConfigureServices(ByVal services As IServiceCollection) services.AddRazorPages() services.AddServerSideBlazor() services.AddSignalR() services.AddDotNetify() End Sub Public Sub Configure(ByVal app As IApplicationBuilder, ByVal env As IWebHostEnvironment) If env.IsDevelopment() Then app.UseDeveloperExceptionPage() Else app.UseExceptionHandler("/Error") app.UseHsts() End If app.UseHttpsRedirection() app.UseStaticFiles() app.UseRouting() app.UseEndpoints(Sub(endpoints) endpoints.MapBlazorHub() endpoints.MapFallbackToPage("/_Host") endpoints.MapHub(Of DotNetifyHub)("/dotnetify") End Sub) End Sub End Class $vbLabelText $csharpLabel 在项目中创建一个新类文件 (例如 HelloWorldViewModel.cs) 并设计一个基础视图模型。 注册视图模型 using DotNetify; public class HelloWorldViewModel : BaseVM { public string Greetings => "Hello, World!"; } using DotNetify; public class HelloWorldViewModel : BaseVM { public string Greetings => "Hello, World!"; } Imports DotNetify Public Class HelloWorldViewModel Inherits BaseVM Public ReadOnly Property Greetings() As String Get Return "Hello, World!" End Get End Property End Class $vbLabelText $csharpLabel 在注册视图模型之前,打开Program.cs。 创建 Blazor 组件 using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }) .ConfigureServices(services => { services.AddTransient<HelloWorldViewModel>(); }); } using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }) .ConfigureServices(services => { services.AddTransient<HelloWorldViewModel>(); }); } Imports Microsoft.AspNetCore.Hosting Imports Microsoft.Extensions.DependencyInjection Imports Microsoft.Extensions.Hosting Public Class Program Public Shared Sub Main(ByVal args() As String) CreateHostBuilder(args).Build().Run() End Sub Public Shared Function CreateHostBuilder(ByVal args() As String) As IHostBuilder Return Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(Sub(webBuilder) webBuilder.UseStartup(Of Startup)() End Sub).ConfigureServices(Sub(services) services.AddTransient(Of HelloWorldViewModel)() End Sub}) End Function $vbLabelText $csharpLabel 在项目中添加一个新的 Blazor 组件(例如 HelloWorld.razor)并将其连接到视图模型。 设置应用程序以利用 DotNetify、Blazor、Razor Pages 和 SignalR。 @page "/" @using DotNetify @using DotNetify.Blazor @inject IDotNetifyService DotNetify <h3>@greetings</h3> @code { private string greetings; protected override async Task OnInitializedAsync() { var vm = await DotNetify.ConnectAsync<HelloWorldViewModel>(this); greetings = vm.Greetings; } } 配置 DotNetify 和 Blazor 端点以及路由。 描述一个具有返回问候信息属性的基本视图模型。 将 HelloWorldViewModel 注册为服务。 Blazor 组件建立与 HelloWorldViewModel 的连接,检索欢迎文本并将其显示在屏幕上。 dotnetify .NET(开发人员如何使用):图 2 要使用 DotNetify 和 IronPDF,需要创建一个 .NET 项目并将两个库合并到应用程序中。 入門指南 以下是一个逐步教程,帮助您入门: 功能丰富的 .NET 库 IronPDF PDF 库 使 C# 程序能够生成、阅读和编辑 PDF 文档。 什麼是 IronPDF? 使用此库,开发人员可以快速将 HTML、CSS 和 JavaScript 信息转换为高质量、准备打印的 PDF。 主要任务包括添加页眉或页脚、拆分和合并 PDF、给文档加水印以及将 HTML 转换为 PDF。 IronPDF 适用于多种应用程序,因为它支持 .NET Framework 和 .NET Core。 通过其简单易用和丰富的信息,PDF 可以轻松集成到开发者的产品中。 IronPDF 处理复杂的数据布局和格式,确保它生成的 PDF 紧贴客户端的原始 HTML 文本。 此外,IronPDF 支持跨平台应用程序,如 Windows、Web 和移动环境。 >dotnetify .NET(开发人员如何使用):图 3 HTML 到 PDF 转换:将 JavaScript、HTML 和 CSS 转换为 PDF。 IronPDF 的特點 IronPDF 支持媒体查询和响应式设计两个现代化的 Web 标准。 对于使用 HTML 和 CSS 动态装饰 PDF 发票、报告和文档,其对现代 Web 标准的支持颇具用处。 - PDF 编辑:可以为现有的 PDF 添加文本、图像和其他内容。 开发人员可以使用 IronPDF 从 PDF 文件中提取文字和图像,将多个 PDF 合并为一个文件,将 PDF 文件拆分为几份独立文件,并添加水印、注释、页眉和页脚。 - PDF 转换:将多种文件格式(包括 Word、Excel 和图片文件)转换为 PDF 格式。 IronPDF 还支持 PDF 转图像转换(PNG、JPEG 等等)。 - 性能和可靠性:在工业环境下,高性能和可靠性是期望的设计质量。 使用 IronPDF,开发人员可以轻松管理大量文档集。 要获取所需的 .NET 项目中处理 PDF 的工具,请安装 IronPDF 包。 首先,確保你的項目安裝了 IronPDF 庫。 整合 DotNetify 与 IronPDF Install-Package IronPdf 配置 DotNetify: 启动配置:打开Startup.cs并使用ConfigureServices和Configure方法配置 DotNetify。 在项目中添加一个新的类文件(例如 PdfViewModel.cs),并创建一个将生成 PDF 的视图模型。 using DotNetify; using DotNetify.Blazor; public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddRazorPages(); services.AddServerSideBlazor(); services.AddSignalR(); services.AddDotNetify(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapBlazorHub(); endpoints.MapFallbackToPage("/_Host"); endpoints.MapHub<DotNetifyHub>("/dotnetify"); }); } } using DotNetify; using DotNetify.Blazor; public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddRazorPages(); services.AddServerSideBlazor(); services.AddSignalR(); services.AddDotNetify(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapBlazorHub(); endpoints.MapFallbackToPage("/_Host"); endpoints.MapHub<DotNetifyHub>("/dotnetify"); }); } } Imports DotNetify Imports DotNetify.Blazor Public Class Startup Public Sub ConfigureServices(ByVal services As IServiceCollection) services.AddRazorPages() services.AddServerSideBlazor() services.AddSignalR() services.AddDotNetify() End Sub Public Sub Configure(ByVal app As IApplicationBuilder, ByVal env As IWebHostEnvironment) If env.IsDevelopment() Then app.UseDeveloperExceptionPage() Else app.UseExceptionHandler("/Error") app.UseHsts() End If app.UseHttpsRedirection() app.UseStaticFiles() app.UseRouting() app.UseEndpoints(Sub(endpoints) endpoints.MapBlazorHub() endpoints.MapFallbackToPage("/_Host") endpoints.MapHub(Of DotNetifyHub)("/dotnetify") End Sub) End Sub End Class $vbLabelText $csharpLabel 在项目中创建一个新类文件 (例如 HelloWorldViewModel.cs) 并设计一个基础视图模型。 通过添加新组件(如 GeneratePdf.razor)创建一个 Blazor 组件,并将其绑定到视图模型。 using DotNetify; using IronPdf; public class PdfViewModel : BaseVM { public string PdfUrl { get; set; } public void GeneratePdf() { // Create a new PDF renderer instance var Renderer = new ChromePdfRenderer(); // Render HTML as a PDF document var PdfDocument = Renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>"); // Define the output path for saving the PDF var OutputPath = "wwwroot/PdfFiles/HelloWorld.pdf"; // Save the generated PDF document PdfDocument.SaveAs(OutputPath); // Update the property for the PDF URL PdfUrl = "/PdfFiles/HelloWorld.pdf"; Changed(nameof(PdfUrl)); } } using DotNetify; using IronPdf; public class PdfViewModel : BaseVM { public string PdfUrl { get; set; } public void GeneratePdf() { // Create a new PDF renderer instance var Renderer = new ChromePdfRenderer(); // Render HTML as a PDF document var PdfDocument = Renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>"); // Define the output path for saving the PDF var OutputPath = "wwwroot/PdfFiles/HelloWorld.pdf"; // Save the generated PDF document PdfDocument.SaveAs(OutputPath); // Update the property for the PDF URL PdfUrl = "/PdfFiles/HelloWorld.pdf"; Changed(nameof(PdfUrl)); } } Imports DotNetify Imports IronPdf Public Class PdfViewModel Inherits BaseVM Public Property PdfUrl() As String Public Sub GeneratePdf() ' Create a new PDF renderer instance Dim Renderer = New ChromePdfRenderer() ' Render HTML as a PDF document Dim PdfDocument = Renderer.RenderHtmlAsPdf("<h1>Hello World!</h1>") ' Define the output path for saving the PDF Dim OutputPath = "wwwroot/PdfFiles/HelloWorld.pdf" ' Save the generated PDF document PdfDocument.SaveAs(OutputPath) ' Update the property for the PDF URL PdfUrl = "/PdfFiles/HelloWorld.pdf" Changed(NameOf(PdfUrl)) End Sub End Class $vbLabelText $csharpLabel 通过在 C# ASP.NET Core Blazor 应用程序中集成 DotNetify 和 IronPDF,实现实时数据处理和动态 PDF 生产。 @page "/" @using DotNetify @using DotNetify.Blazor @inject IDotNetifyService DotNetify <PageTitle>Generate PDF</PageTitle> <h3>Generate PDF</h3> <button @onclick="GeneratePdf">Generate PDF</button> @if (!string.IsNullOrEmpty(pdfUrl)) { <a href="@pdfUrl" target="_blank">Download PDF</a> } @code { private string pdfUrl; protected override async Task OnInitializedAsync() { var vm = await DotNetify.ConnectAsync<PdfViewModel>(this); pdfUrl = vm.PdfUrl; vm.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(vm.PdfUrl)) { pdfUrl = vm.PdfUrl; StateHasChanged(); } }; } private void GeneratePdf() { DotNetify.CallMethod("GeneratePdf"); } } 配置从在 Startup.cs 中配置项目开始,注册了 Razor Pages、Blazor 服务端、SignalR 和 DotNetify 的服务,以启用服务端 Blazor 和实时功能。 在 PdfViewModel.cs 中定义了 IronPDF 的 PDF 生成逻辑。 只需几行代码就可以生成 PDF 文件。 GeneratePdf 函数将 HTML 内容转换为 PDF,并更新 PdfUrl 属性,告知客户端新文件的位置。 此视图模型负责与 GeneratePdf.razor Blazor 组件通信。 >dotnetify .NET(开发人员如何使用):图 4 组件通过 IDotNetifyService 连接到 PdfViewModel 并绑定到其属性,使客户端能够调用GeneratePdf函数并响应属性更改。 当用户点击“生成 PDF”按钮时,视图模型的方法被调用,创建 PDF 并动态更新下载网址。 通过这种配置,Web 应用程序通过结合 IronPDF 的强大文档生成能力与 DotNetify 的实时数据同步,提供了响应和吸引人的用户体验。 >dotnetify .NET(开发人员如何使用):图 5 将 DotNetify 与 IronPDF 整合在一个 C# ASP.NET Core Blazor 应用程序中,结合彩时数据同步和动态 PDF 生成。 結論 DotNetify 实现了客户端 Blazor 组件与服务器端视图模型之间的无缝通信,导致应用程序具有互动性和响应性。 这与 IronPDF 相辅相成,后者为直接从服务器端逻辑创建和修改 PDF 提供了强大的工具。 这种强大的结合允许开发能够创建和分发定制文档和实时更新的应用程序。 这种集成利用了实时数据处理和文档生成技术,增强了用户体验,不管是用于报告、开票还是其他任何文档相关任务。 按照上述步骤,开发人员可以高效地设置和利用这些工具,激发现代 Web 应用程序开发中的新可能性。 通过 IronPDF 和 Iron Software Developer Tools,渴望探索其广泛功能的开发人员可以利用功能如 OCR、条形码扫描、PDF 生成等。 项目相关授权替代方案详尽地说明了,以便开发人员选择最适合其需求的模型。 所列优秀点推动开发者为大量挑战提供及时、协调和高效的解决方案。 The listed advantages contribute to developers delivering timely, coordinated, and effective solutions for a multitude of challenges. 常見問題解答 什麼是 DotNetify,它如何運作? DotNetify 是一個由 .NET 和 Blazor 構建的開源框架,專為開發實時 Web 應用程序而設計。它使用 SignalR 啟用客戶端和服務器之間的實時通信,從而促進創建動態、交互式 Web 應用程式。 如何將實時 Web 應用程序與 C# 中的 PDF 生成集成? 通過結合 DotNetify 用於實時 Web 應用程序和 IronPDF 用於 PDF 生成,開發人員可以創建互動式應用程序,根據實時數據輸入動態生成和分發 PDF 文檔。 IronPDF 提供了哪些 PDF 文檔處理能力? IronPDF 提供了程式化創建、編輯和轉換 PDF 文檔的功能。它允許從 HTML、CSS 和 JavaScript 轉換為 PDF,並支持各種 PDF 操作,非常適合生成報告和動態文檔。 DotNetify 如何增強實時應用程序開發? DotNetify 通過提供一個同步客戶端視圖與服務器數據的編程模型來增強實時應用程序開發,使得創建響應和互動的 Web 界面成為可能。它支持 JavaScript 和 Blazor,以提供靈活的開發環境。 在 DotNetify 中使用 SignalR 的好處是什麼? 在 DotNetify 中使用 SignalR 啟用實時客戶端-服務器通信,這是創建互動和響應快速的 Web 應用程序的核心。它促進了應用程序內的即時更新和動態交互。 IronPDF 如何幫助在 .NET 應用程序中生成動態報告? IronPDF 可以通過轉換包括 CSS 和 JavaScript 在內的 HTML 內容到高質量的 PDF 文檔中來生成動態報告。這對於需要生成數據驅動報告和發票的應用程序尤為有用。 ViewModels 在 DotNetify 中的角色是什麼? 在 DotNetify 中,ViewModels 用於處理客戶端與服務器之間的數據同步。它們通過保持一致的數據流來促進具有響應性用戶界面的應用程序的開發。 將 DotNetify 和 IronPDF 結合如何改善用戶體驗? 將 DotNetify 與 IronPDF 結合可通過允許實時數據更新和單一應用中的動態 PDF 生成來改善用戶體驗。這種整合促進了無縫的文檔生成和分發,增強了應用程序的功能性。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 更新日期 9月 4, 2025 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新日期 9月 4, 2025 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 更新日期 8月 5, 2025 C#開關模式匹配(對開發者來說是如何工作的) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 Grapevine .NET(對開發者如何理解的工作)FiddlerCore .NET(對開發者如...