︿
Top

2024年4月20日 星期六

ASP.NET Core 8 Web API 使用 Oracle.EntityFrameworkCore 存取 Oracle, 並使用 Swagger/OpenAPI 工具進行測試

Access Oracle with Oracle.EntityFrameworkCore in ASP.NET Core 8 Web API, and Test by Swagger/OpenAPI Tools

由於工作上會用到 ASP.NET Core 8 Web API 存取 Oracle 資料庫. 目前查到的方式有 2 種:
1.. 利用 Dapper 作為中介, 直接下 SQL 指令.
2.. 利用 Entity Framework Core 作為中介, 由其將 Entity Framework 的物件內容, 轉為 SQL 指令.

筆者已習慣採用 Entity Framework Core + MSSQL, 所以這篇就來試試 Entity Framework Core + Oracle.

撰寫完成的 Web API 總是要測試, 本文採用 Swagger/OpenAPI 的相關套件及工具, 進行測試.

內容大綱如下:

一. 環境
二. 步驟
(一) 安裝 dotnet-ef 命令列工具 至最新版
(二) 建立 Web API 專案
(三) 加入 Microsoft.EntityFrameworkCore.Tools 套件
(四) 加入 Oracle.EntityFrameworkCore 套件
(五) 建立 Oracle 資料庫, 使用者及 Table
(六) 由 Oracle 資料庫產生 DbContext 及 Models
(七) 撰寫 Web API
(八) 將程式進行優化
(九) 利用 Swashbuckle.AspNetCore 套件產生 Web API 的說明頁面
(十) 利用 NSwag.AspNetCore 套件產生 Web API 的說明頁面
(十一) 利用 NSwagStudio 工具產生用戶端的程式碼
附錄一: Oracle.EntityFranewrokCore 安裝後的提示
附錄二: EF Core Power Tools 執行完成的提示

範例由此下載.

2024年4月6日 星期六

如何在使用者登入後, 自動執行含有 ASP.NET Core 8 Web API 的 Windows Form 應用程式 (含TrayIcon)

How to Auto-Execute Windows Form App (TrayIcon) containing ASP.NET Core 8 Web API after User Login

前一篇把背景服務整合至使用者登入後的 TrayIcon 應用程式, 且確認可在使用者登入後執行. 而 ASP.NET Core 8 Web API 其實也類似一個背景服務, 想說看看是否可以作到.

試想一個情境:
想在瀏覽器的 Javascript 存取使用者的本機資源, 例如: 讀卡機, 描描器, 印表機, 本機環境設定... 等, 受限瀏覽器安全性設計, 應該很難作到. 或許可以, 但筆者不是 Javascript 專家, 想說是否有其它的路可以走. 看到 (黑暗執行緒) 使用 .NET 6 開發 Windows Service 有人詢問瀏覽器存取本機資源的問題, 黑大回覆可以參考這篇 (Microsoft) 在 Windows 服務上裝載 ASP.NET Core.

架構設計如下圖, 但不是真的去讀 ICCard, 只是作一個小的 Web API 驗證可行性.
Architecture for ICCard

筆者的狀況是不一定要裝載在 Windows Service, 只要是登入後執行的 Windows Form App, 且自動縮小到系統匣(System Tray) 即可.

一. 建立 ASP.NET Core 8 Web API 應用程式
(一) 建立 ASP.NET Core 8 Web API 專案
(二) 加入範例 Web API
(三) 採用 Serilog 輸出至 Console 及 File
二. 發佈前述 ASP.NET Core 8 Web API 至單一執行檔
(一) 以 VS2022 進行發佈
(二) 以 Postman 測試發佈後的執行檔
三. 加入 TrayIcon 的功能
(一) 加入 icon 圖檔
(二) 建立一個 Windows Form App 作為修訂 Web API 專案的參考
(三) 修改 .csproj
(四) 修訂其它程式
四. 實際測試
(一) TrayIcon 模式
(二) Console 模式
五. 安全性議題
(一) AllowHosts 設置
(二) CORS 設置
(三) 調整後的 Program.cs
六. 注意事項

範例由此下載.