.NET 帮助 dotnetify.NET(开发者用法) Curtis Chau 已更新:六月 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 集成,在 C# 应用程序中结合了实时 Web 交互性和强大的 PDF 生产能力。 这种集成对于需要实时数据展示和根据最新数据动态创建和分发 PDF 文档的应用程序特别有利。 开发人员可以通过无缝的文档生成和分发,利用 IronPDF 的多功能 PDF 生成能力和 DotNetify 的实时数据同步来创建满足复杂业务需求并增强用户体验的大型交互性在线应用程序。 什么是 DotNetify? DotNetify 是一个开源框架,旨在简化使用 .NET 和 Blazor 创建交互式实时 Web 应用程序。 开发人员可以通过利用 SignalR,创建动态和响应迅速的用户界面,使客户端和服务器之间的实时通信变得更加容易。 DotNetify 使用反应式编程方法,抽象了实时数据绑定和事件处理的复杂性,从而简化了复杂在线应用程序的创建,所需代码量最小。 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 包:在解决方案资源管理器中右键点击你的项目并选择"Manage NuGet Packages"。 搜索 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 创建一个 ViewModel 在您的项目中创建一个新的类文件(例如,HelloWorldViewModel.cs)并设计一个基本的 ViewModel。 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 注册 ViewModel 在注册 ViewModel 之前,打开 Program.cs。 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 组件 在您的项目中添加一个新的 Blazor 组件(例如,HelloWorld.razor)并将其连接到 ViewModel。 @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、Razor Pages 和 SignalR。 配置 DotNetify 和 Blazor 的终端和路由。 描述一个基本的 ViewModel,带有问候信息返回属性。 将 HelloWorldViewModel 注册为服务。 Blazor 组件与 HelloWorldViewModel 建立连接,获取欢迎文本并显示在屏幕上。 开始 要使用 DotNetify 和 IronPDF,您需要创建一个 .NET 项目并将这两个库纳入您的应用程序。 以下是入门的分步指导: 什么是 IronPDF? 功能丰富的 .NET 库 [IronPDF PDF 库](/features/) 使 C# 程序能够生成、读取和编辑 PDF 文档。 借助此库,开发人员可以快速将 HTML、CSS 和 JavaScript 信息转换为高质量的、可打印的 PDF。 关键任务包括添加页眉和页脚、拆分和合并 PDF、对文档添加水印,以及将 HTML 转换为 PDF。 IronPDF 支持 .NET Framework 和 .NET Core,因此与各种应用程序相关。 通过易用性和丰富的信息,PDF 可以轻松集成到开发人员的产品中。 IronPDF 处理复杂的数据布局和格式,确保其生成的 PDF 与客户的初始 HTML 文本非常相似。 此外,IronPDF 支持跨平台应用程序,如 Windows、网页和移动环境。  ### IronPDF的功能 - **从 HTML 生成 PDF:**将 JavaScript、HTML 和 CSS 转换为 PDF。 IronPDF 支持媒体查询和响应式设计这两个现代 Web 标准。 支持现代 Web 标准对于动态装饰 HTML 和 CSS 的 PDF 发票、报告和文档非常有用。 - **PDF 编辑:**可以向现有的 PDF 中添加文本、图像和其他内容。 开发人员可以使用 IronPDF 从 PDF 文件中提取文本和图像,将多份 PDF 合并为一个文件,将 PDF 文件分割成几份独立的文件,并包含水印、注解、页眉和页脚。 - **PDF 转换:**将Word、Excel和图片文件等多种文件格式转换为PDF格式。 IronPDF 还支持将 PDF 转换为图片格式(PNG、JPEG 等)。 - **性能与可靠性:**工业环境中期望的设计品质是高性能和可靠性。 借助 IronPDF,开发人员可以轻松管理大型文档集。 ### 安装IronPDF 要获得在 .NET 项目中使用 PDF 的所需工具,请安装 IronPDF 包。 ```shell :ProductInstall ``` #### 将 DotNetify 与 IronPDF 集成 **配置 DotNetify:** 启动配置:打开 `Startup.cs` 并使用 `ConfigureServices` 和 `Configure` 方法配置 DotNetify。 ```csharp 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("/dotnetify"); }); } } ``` #### 创建一个 ViewModel 在您的项目中添加一个新类文件(例如,PdfViewModel.cs)并创建将生成 PDF 的 ViewModel。 ```csharp 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("Hello World!"); // 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)); } } ``` 通过添加新组件(例如,GeneratePdf.razor)创建一个 Blazor 组件并将其绑定到 ViewModel。 ```razor @page "/" @using DotNetify @using DotNetify.Blazor @inject IDotNetifyService DotNetify Generate PDF Generate PDF Generate PDF @if (!string.IsNullOrEmpty(pdfUrl)) { Download PDF } @code { private string pdfUrl; protected override async Task OnInitializedAsync() { var vm = await DotNetify.ConnectAsync(this); pdfUrl = vm.PdfUrl; vm.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(vm.PdfUrl)) { pdfUrl = vm.PdfUrl; StateHasChanged(); } }; } private void GeneratePdf() { DotNetify.CallMethod("GeneratePdf"); } } ``` 通过在 C# ASP.NET Core Blazor 应用程序中集成 DotNetify 和 IronPDF,实现实时数据处理和动态 PDF 生成。 设置从在 Startup.cs 中配置项目开始,其中注册了 Razor Pages、Blazor Server、SignalR 和 DotNetify 的服务,以启用服务器端 Blazor 和实时功能。 在 PdfViewModel.cs 中,定义了 IronPDF 的 PDF 生成逻辑。 只需几行代码即可生成 PDF 文件。 `GeneratePdf` 函数将 HTML 内容转换为 PDF 并更新 PdfUrl 属性,告知客户端新文件的位置。 这个 ViewModel 负责与 GeneratePdf.razor Blazor 组件的通信。  组件通过 IDotNetifyService 连接到 PdfViewModel 并绑定到其属性上,使客户端可以调用 `GeneratePdf` 函数并响应属性更改。 用户单击“生成 PDF”按钮时,将调用 ViewModel 的方法,创建 PDF 并动态更新下载 URL。 通过这种配置,网络应用程序通过结合 IronPDF 的强大文档生成功能和 DotNetify 的实时数据同步来提供响应和吸引人的用户体验。  ## 结论 在一个 C# ASP.NET Core Blazor 应用程序中,将 DotNetify 和 IronPDF 集成融合了实时数据同步和动态 PDF 生成。 DotNetify 实现了客户端 Blazor 组件和服务器端 ViewModel 之间的无缝通信,从而实现了交互式和响应式应用程序。 这得到了通过 IronPDF 提供的强大工具的补充,可以直接从服务器端逻辑中创建和修改 PDF。 这种强大的组合允许开发具有创建和分发个性化文档以及实时更新功能的应用程序。 此集成利用了实时数据处理和文档生成技术,以增强用户体验,无论是用于报告、开票或任何其他与文档相关的任务。 通过按照概述的步骤,开发人员可以高效地设置和使用这些工具,释放现代 Web 应用程序开发的全新可能性。 使用 IronPDF 和 [Iron Software 开发者工具](https://ironsoftware.com),渴望探索其广泛功能的开发人员可以利用OCR、条码扫描、PDF生成等功能。 项目相关许可替代方案详细说明,允许开发人员选择最符合其需求的模式。 列出的优势有助于开发人员为众多挑战提供及时、协调和有效的解决方案。 常见问题解答 什么是DotNetify及其功能如何? DotNetify是一个使用.NET和Blazor构建的开源框架,旨在开发实时网络应用。它使用SignalR来启用客户端和服务器之间的实时通信,促进动态互动网络应用的创建。 我如何将实时网络应用与C#中的PDF生成集成? 通过结合用于实时网络应用的DotNetify和用于PDF生成的IronPDF,开发人员可以创建动态生成和分发基于实时数据输入的PDF文档的交互式应用程序。 IronPDF提供了哪些PDF文档操作能力? IronPDF提供创建、编辑和程序化转换PDF文档的能力。它可以将HTML、CSS和JavaScript转换成PDF,并支持各种PDF操作,使其非常适合于生成报告和动态文档。 DotNetify如何增强实时应用开发? DotNetify通过提供同步客户端视图和服务器数据的编程模型来增强实时应用开发,支持JavaScript和Blazor,为灵活的开发环境创造响应式和互动的网络界面。 在DotNetify中使用SignalR有哪些好处? 在DotNetify中,SignalR可以实现实时的客户端-服务器通信,这是创建交互式和响应式网络应用必不可少的。这促进了应用内的即时更新和动态交互。 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 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多 已更新九月 4, 2025 C# String Equals(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 已更新八月 5, 2025 C# Switch 模式匹配(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 Grapevine .NET(开发者用法)FiddlerCore .NET(开发者用法)
已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多