Blazor NuGet 套件整理 II

適用於 .NET8+ 的 Blazor 套件。有些套件已過時或出現更好的選擇乾脆重新整理。

上一版文章仍有高度參考性。

Blazor NuGet套件/插件整理適用於 .NET5 的 Blazor 插件。於 .NET Fx 可用的插件到了 .NET Core 不見得可用。

§ HTML Renderer

A library that generates HTML (e.g. for emails) from Razor Components.

把 Blazor Compnent 渲染成 html。應用上再把此 html 轉換成 pdf。或依輸入參數動態生成(靜態)網頁。

說明:已通過評估。已試用通過。

htmx gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext.

說明:雖與 React、Blazor 等完全相斥;卻意外的與 MVC View 特別互補。


§ HTML to PDF / report / 報表

應該時代改變,crystal report 已退出主要報表市場。取代替代方案之一就是用 html 製作報表再轉 pdf 送印或網頁下載。

.NET Core P/Invoke wrapper for the native wkhtmltopdf library that uses Webkit engine to convert HTML pages to PDF.

This library is forked from DinkToPdf. The main changes are to include the required native binaries in the package so they don't have to be manually installed, and renamed to a more appropriate project name. The license has also been corrected to match the license for the wkhtmltopdf parent project.

說明: 已通過試用。已應用。

說明2: 在轉換 Html to PDF 過程中不能保證原汁原味,中間有個解譯器的中介。在實務上該 html 的 layout 不可太過複雜,在實作經驗中確認 flex layout 是無效的。還好太部份是有效用的。

說明3: 在 .NET Core 平台可正常執行。但在 .NET Frameworkd 的導入經驗是失敗的!

之後為 .NET Fx 4.7.2 重新 Re-compile 套件 WkHtmlToPdf-Net472

Puppeteer Sharp is a .NET port of the official Node.JS Puppeteer API.

Puppeteer 是一個用於控制無頭瀏覽器(如 Chromium)的工具,主要用於自動化測試、網頁抓取和生成 PDF 等任務。Puppeteer Sharp 提供了與 Puppeteer 類似的功能,但它是專為 .NET 開發者設計的。

以下是 Puppeteer Sharp 的一些主要功能:

  1. 無頭瀏覽器控制:可以啟動和控制無頭瀏覽器,執行各種自動化任務。

  2. 網頁抓取:可以用來抓取網頁內容,適合用於數據收集和分析。

  3. 生成 PDF:可以將網頁渲染成 PDF 文件。

  4. 截圖:可以截取網頁的全頁或部分頁面。

  5. 表單填寫和提交:可以自動填寫和提交網頁表單。

  6. 瀏覽器事件監聽:可以監聽和處理瀏覽器中的各種事件。

說明:已通過評估。已試用在 .NET Core 與 .NET Framework 均可。但是實務上可能不實用,因為必需在該主機安裝 Chorme 或 Edge 而客戶因資安考量不允許。

HTML Renderer/HtmlRenderer.PdfSharp

有一整套不同環境相應的套件。上次更新是 2015/5/6。應該沒在維護了不過有相當多的分支。

說明:未通過評估。留存參考。

iTextSharp

除了直接生成原生 PDF 文件外也支援 HTML 轉成 PDF。版本在 4.1.6 後全面改成付費版。

說明:未通過評估。


§ Swagger API client / Codegen

說明:生成 Swagger API 的客戶端介接程式包函交換的 DTO 物件與客戶端程式模組。之前 C# DTO 類別轉成 TypeScript interface 的方法已有沒落的驅勢。客戶端程式模組雖也可以生成了但總覺得程式碼為了一般化變得成冗餘。在這個時間點本人對現在的解法並不都不滿意。

參考之前的手札 C# DTO to TypeScript

Codegen for JavaScript/TypeScript projects.

npm: https://www.npmjs.com/package/@hey-api/openapi-ts

依照 swagger.json 自動生成前端程式模組。

已通過評估,試著應用中。近二年發展算是新設計。

Convert OpenAPI 3.0/3.1 schemas to TypeScript types and create type-safe fetching.

官網:OpenAPI TypeScript

規劃了數個套件用與 Web API 通訊。為各套件拆分不同責任。

已通過評估。已通過試用。但規格有些繞學習曲線比較高。各種考慮後優先採 Hey API 這個比較直接的設計。

負責把 Swagger Server API 轉換生成 api-schema。

負責用生成的 api-schema 與 Swagger Server 通訊。

以軟體生命來說已老了。不過還是活著有在維護的工具。是本人最早使用的 gencode 工具。因為還活著就留參吧。

開始使用 NSwag 及 ASP.NET Corehttps://github.com/relyky/Net6WasmSwagLab/blob/main/README.md

npm: @openapitools/openapi-generator-cli

Swagger 官方設計。能力強大可以生成多種語言的前端與後端,但是 UX 不良不合用。且必需安裝 java runtime 才能跑。Orz

未通過評估。留參就好。

Support for OpenAPI 3.0, 2.0, JSON and YAML Generate the API Client for Fetch or Axios from an OpenAPI Specification

依照 swagger.json 自動生成前端程式模組。

已通過評估。規格舊了且多年未更新。退回留參狀態。


§ Message Bus

參考之前的紀錄。Blazor NuGet套件/插件整理 #用途:Message Bus

下面只是手札隨手記一下。現在(25-9-26)可能是最受歡迎的 message bus 方案。未評估先紀錄。

Build Robust Event Driven Architectures with Simpler Code

未評估先紀錄。

Enterprise-Grade Messaging for the Modern World

未評估先紀錄。過去有評估過一次不是很滿意,現在也許不一樣了吧?

Last updated