摘要:
Util UI 已經開發多年, 并在多家公司的項目使用. 不過一直以來, Util UI 存在一些缺陷, 始終未能解決. 最近幾個月, Util 團隊下定決心, 終于徹底解決了所有已知缺陷. Util 應用框架 UI 介紹 Util 應用框架 UI 建立在 Angular , Ng-Zorro, N
閱讀全文
posted @ 2024-04-28 12:31
何鎮汐
閱讀(1473)
推薦(6)
摘要:
什么是Util應用框架? Util是一個.Net平臺下的應用框架,旨在提升中小團隊的開發能力,由工具類、分層架構基類、Ui組件,配套代碼生成模板,權限等組成。 Util應用框架 7.x介紹 Util應用框架的最新版本是7.x,保持與.Net最新穩定版本同步更新。 與Util 1.x相比,最新版本代碼
閱讀全文
posted @ 2023-10-12 20:48
何鎮汐
閱讀(1059)
推薦(12)
摘要:
本節介紹Util應用框架如何操作緩存. 概述 緩存是提升性能的關鍵手段之一. 除了提升性能,緩存對系統健壯性和安全性也有影響. 不同類型的系統對緩存的依賴程度不同. 對于后臺管理系統,由于是給管理人員使用的,用戶有限,而且操作基本都需要身份認證和授權,甚至可能部署在局域網內,一般僅對耗時操作使用緩存
閱讀全文
posted @ 2023-11-21 11:30
何鎮汐
閱讀(665)
推薦(4)
摘要:
本文是Util應用框架日志記錄的第四篇,介紹安裝和寫入 Exceptionless 日志系統的配置方法. Exceptionless 是一個日志管理系統,使用 Asp.Net Core 開發,比 Seq 的模糊搜索能力弱,使用它可能需要一些技巧. Util應用框架目前主要使用 Seq 和 Excep
閱讀全文
posted @ 2023-11-12 16:22
何鎮汐
閱讀(462)
推薦(3)
摘要:
本文是Util應用框架日志記錄的第三篇,介紹安裝和寫入 Seq 日志系統的配置方法. 安裝 Seq Seq是一個日志管理系統,對結構化日志數據擁有強大的模糊搜索能力. Util應用框架目前主要使用 Seq 和 Exceptionless 管理日志. 你可以從中選擇一個合適的. 本節介紹使用 Dock
閱讀全文
posted @ 2023-11-12 10:14
何鎮汐
閱讀(519)
推薦(2)
摘要:
本文是Util應用框架日志記錄的第二篇,介紹寫入日志文件的配置方法. 概述 將日志寫入文本文件,不方便查看和管理,但在開發階段可以作為臨時查看日志的手段. 日志配置 引用Nuget包 Nuget包名: Util.Logging.Serilog AddSerilog 使用 AddSerilog 擴展方
閱讀全文
posted @ 2023-11-12 10:07
何鎮汐
閱讀(108)
推薦(0)
摘要:
本文介紹Util應用框架如何記錄日志. 日志記錄共分4篇,本文是正文,后續還有3篇分別介紹寫入不同日志接收器的安裝和配置方法. 概述 日志記錄對于了解系統執行情況非常重要. Asp.Net Core 抽象了日志基礎架構,支持使用日志提供程序進行擴展,提供控制臺日志等簡單實現. Serilog 是 .
閱讀全文
posted @ 2023-11-11 13:36
何鎮汐
閱讀(568)
推薦(0)
摘要:
本節介紹Util應用框架如何處理系統錯誤. 概述 系統在運行過程中可能發生錯誤. 系統錯誤可以簡單分為兩類: 系統異常 系統本身出現的錯誤. 業務異常 不滿足業務規則出現的錯誤. 如何處理系統異常 如果發生系統異常,大多數情況下,你除了記錄異常日志外,可能無法處理它們. 一個例外是并發異常. 當發生
閱讀全文
posted @ 2023-11-07 14:32
何鎮汐
閱讀(597)
推薦(3)
摘要:
本節介紹Util應用框架如何進行驗證. 概述 驗證是業務健壯性的基礎. .Net 提供了一套稱為 DataAnnotations 數據注解的方法,可以對屬性進行一些基本驗證,比如必填項驗證,長度驗證等. Util應用框架使用標準的數據注解作為基礎驗證,并對自定義驗證進行擴展. 基礎用法 引用Nuge
閱讀全文
posted @ 2023-11-07 08:21
何鎮汐
閱讀(638)
推薦(2)
摘要:
本節介紹Util應用框架對AspectCore AOP的使用. 概述 有些問題需要在系統中全局處理,比如記錄異常錯誤日志. 如果在每個出現問題的地方進行處理,不僅費力,還可能產生大量冗余代碼,并打斷業務邏輯的編寫. 這類跨多個業務模塊的非功能需求,被稱為橫切關注點. 我們需要把橫切關注點集中管理起來
閱讀全文
posted @ 2023-11-05 17:21
何鎮汐
閱讀(839)
推薦(2)
摘要:
本節介紹Util應用框架相似對象之間的轉換方法. 文章分為多個小節,如果對設計原理不感興趣,只需閱讀基礎用法部分即可. 概述 現代化分層架構,普遍采用了構造塊DTO(數據傳輸對象). DTO是一種參數對象,當Web API接收到請求,請求參數被裝載到DTO對象中. 我們需要把 DTO 對象轉換成實體
閱讀全文
posted @ 2023-11-03 13:33
何鎮汐
閱讀(596)
推薦(3)
摘要:
本節介紹Util應用框架依賴注入的使用和配置擴展. 文章分為多個小節,如果對設計原理不感興趣,只需閱讀基礎用法部分即可. 概述 當你想調用某個服務的方法完成特定功能時,首先需要得到這個服務的實例. 最簡單的辦法是直接 new 一個服務實例,不過這樣就把服務的實現牢牢綁死了,當你需要更換實現,除了直接
閱讀全文
posted @ 2023-11-02 11:53
何鎮汐
閱讀(659)
推薦(0)
摘要:
本節介紹服務注冊器的開發. 如果你不需要擴展Util應用框架,直接跳過. 當你把某些功能封裝到自己的類庫,并希望啟動時自動執行初始化代碼進行配置時,定義服務注冊器. 服務注冊器概述 服務注冊器是Util項目啟動時自動執行的代碼塊. Util應用框架的某些類庫使用服務注冊器進行配置,比如 Util.O
閱讀全文
posted @ 2023-10-31 19:52
何鎮汐
閱讀(488)
推薦(1)
摘要:
本節介紹 Util 項目啟動初始化過程. 文章分為多個小節,如果對設計原理不感興趣,只需閱讀基礎用法部分即可. 基礎用法 查看 Util 服務配置,范例: var builder = WebApplication.CreateBuilder( args ); builder.AsBuild() .A
閱讀全文
posted @ 2023-10-30 11:43
何鎮汐
閱讀(576)
推薦(2)
摘要:
本文介紹在項目中如何配置 Util 依賴服務. 文章分為多個小節,如果對設計原理不感興趣,只需要閱讀基礎用法部分即可. 基礎用法 Asp.Net Core 項目服務配置 調用 WebApplicationBuilder 實例的 AsBuild 方法, 并以鏈式調用Util服務擴展. 范例 var b
閱讀全文
posted @ 2023-10-29 14:16
何鎮汐
閱讀(525)
推薦(1)
摘要:
本文將引導你運行Util權限管理模塊,并對UI按鈕和API操作進行訪問控制. Util平臺介紹 Util應用框架是一組類庫,它們提供了有用的功能. 雖然Util配套代碼生成器能夠幫助你創建項目基架,但直接使用它們的成本依然高昂. 第一個擋在前面的障礙是權限功能,它是任何業務項目的基石. 為了減輕使用
閱讀全文
posted @ 2023-10-28 15:46
何鎮汐
閱讀(871)
推薦(3)
摘要:
本文演示Util應用框架開發的項目中如何編寫集成測試. 準備 完成 Web Api 快速入門,本文將在之前生成的示例項目上講解集成測試的開發. 測試概述 自動化測試對于Util應用框架的開發非常重要,它能保證基礎功能的穩定性. 對于使用 Util 開發的業務項目,自動化測試不是必須的,但掌握它可能很
閱讀全文
posted @ 2023-10-26 15:51
何鎮汐
閱讀(681)
推薦(5)
摘要:
本文是Util應用框架 Angular UI 開發快速入門教程. Util前端技術概述 Util 應用框架目前僅支持用于開發管理后臺的 UI. 本文介紹了 Util UI 的技術特點和功能支持. UI 技術選型 Js語言 TypeScript TypeScript 是 微軟開發的腳本語言, 擴展了弱
閱讀全文
posted @ 2023-10-25 20:21
何鎮汐
閱讀(671)
推薦(7)
摘要:
本文是使用Util應用框架開發 Web Api 項目快速入門教程. 前面已經詳細介紹了環境搭建,如果你還未準備好,請參考前文. 開發流程概述 創建代碼生成專用數據庫. Util應用框架需要專門用來生成代碼的數據庫,該數據庫僅用于代碼生成. 約定: 代碼生成數據庫應以 .Generator 結尾. 當
閱讀全文
posted @ 2023-10-19 15:32
何鎮汐
閱讀(681)
推薦(5)
摘要:
要使用Util應用框架開發項目,首先需要搭建合適的開發環境. 邁出第一步,對于很多.Net新人可能并不簡單. 如果你對.Net環境并不熟悉,請盡量按照本文檔進行操作. 操作系統 請安裝 Windows 10 以上版本操作系統. 你也可以使用MAC操作系統,但需要自行解決開發環境問題. 安裝 Visu
閱讀全文
posted @ 2023-10-17 14:32
何鎮汐
閱讀(1089)
推薦(10)
摘要:
前面介紹了Util是如何封裝以降低Angular應用的開發成本。 現在把關注點移到服務端,本文將介紹分層架構各構造塊及基類,并對不同層次的開發人員應如何進行業務開發提供一些建議。 Util分層架構介紹 為了控制業務邏輯復雜性,Util引入了DDD分層架構,這意味著如果你想使用DDD,Util會為你提
閱讀全文
posted @ 2019-02-27 08:11
何鎮汐
閱讀(9140)
推薦(39)
摘要:
上篇簡要介紹了Util在Angular Ts方面的封裝情況,本文介紹Angular封裝的另一個部分,即Html的封裝。 標準組件與業務組件 對于管理后臺這樣的表單系統,你通常會使用Angular Material或Ng-Zorro這樣的UI組件庫,它們提供了標準化的UI組件。 標準組件將Ts封裝起來
閱讀全文
posted @ 2018-10-12 16:26
何鎮汐
閱讀(4645)
推薦(30)
摘要:
上篇介紹了Util Angular Demo的目錄結構和運行機制,本文介紹Util封裝Angular的基本手法及背后的動機。 Angular應用由Ts和Html兩部分構成,本文介紹第一部分。 Angular Ts的封裝 Ts是Angular的代碼部分,用于編寫頁面邏輯。 依賴注入( Dependen
閱讀全文
posted @ 2018-09-28 14:40
何鎮汐
閱讀(6945)
推薦(45)
摘要:
上篇介紹了Util的開發環境,并讓你把Demo運行起來。本文將介紹該Demo的前端Angular運行機制以及目錄結構。 目錄結構 在VS上打開Util Demo,會看見如下的目錄結構。 現代前端通常采用VS Code開發,不過我們為了使用TagHelper,需要采用VS開發,這為你提供了更多的選擇。
閱讀全文
posted @ 2018-09-17 14:49
何鎮汐
閱讀(8613)
推薦(48)
摘要:
Util的開源地址 https://github.com/dotnetcore/util Util的開源協議 Util以MIT協議開源,這是目前最寬松的開源協議,你不僅可以用于商業項目,還能把Util的代碼放進你的框架,放心使用。 Util的命名 Util這個名字看上去不怎么高大上,很多人勸我換個霸
閱讀全文
posted @ 2018-09-07 13:29
何鎮汐
閱讀(10655)
推薦(75)
摘要:
距離上次發文,已經過去了三年半,這幾年技術更新節奏異常迅猛,.Net進入了跨平臺時代,前端也被革命性的顛覆。 回顧 2015年,正當我還沉迷于JQuery + EasyUi的封裝時,突然意識到技術已經過時。 JQuery在面對更加復雜的UI需求時顯得力不從心,EasyUi雖然組件比較完善,但界面風格
閱讀全文
posted @ 2018-09-04 14:06
何鎮汐
閱讀(14766)
推薦(112)
摘要:
進行項目開發的第一步,是創建出適合自己團隊習慣的VS解決方案,雖然我已經提供了項目示例,但畢竟是我創建的,你直接使用可能并不合適,另外你如果嘗試模仿重新創建該示例,中間可能碰到各種障礙,特別是項目間的依賴關系。 本文的目的是幫助.Net架構初學者能順利搭建起適合自己的VS解決方案,我會在本文演...
閱讀全文
posted @ 2015-05-26 01:45
何鎮汐
閱讀(12082)
推薦(162)
摘要:
離上一篇又過去了一個月,時間比較緊,后續估計會更緊,所以這次將放出更多公共操作類及配套的CodeSmith模板,本篇將簡要介紹新放出的重要功能,供有興趣的同學參考。重要更新 這一次對兩個VS解決方案均做了大量調整,包含項目結構及命名空間。 Util解決方案的目錄截圖如下。 除了少數需要配置...
閱讀全文
posted @ 2015-05-20 23:09
何鎮汐
閱讀(10232)
推薦(244)
摘要:
從本篇開始,本系列將進入實戰演練階段。 前面主要介紹了一些應用程序框架的概念和基類,本來想把所有概念介紹完,再把框架內部實現都講完了,再進入實戰,這樣可以讓初學者基礎牢靠。不過我的精力很有限,文章進度越來越慢,所以準備切換一下介紹順序,把實戰演練提前,以方便你閱讀代碼。實戰演練介紹 本系列實...
閱讀全文
posted @ 2015-04-19 23:20
何鎮汐
閱讀(8998)
推薦(62)
摘要:
上一篇介紹了我對幾種實體的認識,本篇將介紹幾種服務的用法。 預告一下本系列后續計劃,本篇之后,準備進入實戰演練階段,先介紹如何快速解決CRUD操作,從如何使用PD數據建模到使用CodeSmith生成代碼,先帶你感受一下,再回過來介紹框架內部元素,以免你在閱讀時昏昏欲睡。應用服務介紹 對于一個...
閱讀全文
posted @ 2015-04-08 23:02
何鎮汐
閱讀(7627)
推薦(120)
摘要:
本文將介紹DDD分層架構中廣泛使用的數據傳輸對象Dto,并且與領域實體Entity,查詢實體QueryObject,視圖實體ViewModel等幾種實體進行比較。領域實體為何不能一統江湖? 當你閱讀我或其它博主提供的示例代碼時,會發現幾種類型的實體,這幾種實體初步看上去區別不大,只是名稱不同,...
閱讀全文
posted @ 2015-03-31 01:05
何鎮汐
閱讀(12696)
推薦(66)
摘要:
最近的更新速度越來越慢,主要是項目上比較忙,封裝EasyUi也要花很多時間。不過大家請放心,本系列不會半途夭折,并且代碼干貨也會持續更新。本文繼續介紹表現層和Asp.net Mvc,我將在本篇討論一些重要的設計問題和封裝技巧。是否需要將控制器分離為獨立項目 經常有人問我,是否有必要將控制器從W...
閱讀全文
posted @ 2015-03-16 16:11
何鎮汐
閱讀(8032)
推薦(151)
摘要:
本文將介紹表現層及ASP.NET MVC的一些要點,特別是ASP.NET MVC的一些抽象和封裝技巧,如果你對MVC還不了解,可以參考《ASP.NET MVC4 高級編程》,作者Jon Galloway等,這本書由ASP.NET MVC團隊成員編寫,相當不錯。表現層的職責 表現層的職責是展示和...
閱讀全文
posted @ 2015-02-02 19:56
何鎮汐
閱讀(4232)
推薦(22)
摘要:
上文介紹了我選擇EasyUi作為前端框架的原因,并發放了最新Demo。本文將對這個Demo進行一些介紹,以方便你能夠順利運行起來。 這個Demo運行起來以后,是EasyUi的一個簡單CRUD操作,數據庫中也只有一個簡單的表,整個操作不帶任何業務邏輯。 看到這里,不少朋友難免感到失望,搞這么復...
閱讀全文
posted @ 2015-01-30 14:57
何鎮汐
閱讀(5529)
推薦(79)
摘要:
對于BS管理系統,我很長一段時間都工作在Asp.Net Web Form上,Web Form的主要優勢是可以使用服務器端控件,以類似CS的開發模式進行工作,通過拖拽控件和定義事件處理函數,極大的簡化了BS的開發。服務器端控件會在渲染階段把自身輸出為Html標簽,對我們完全透明,當需要設置相關屬性...
閱讀全文
posted @ 2015-01-27 14:59
何鎮汐
閱讀(10214)
推薦(184)
摘要:
今天在開發一個簡單查詢時,發現我的Lambda操作類的GetValue方法無法正確獲取枚舉類型值,以至查詢結果錯誤。 我增加了幾個單元測試來捕獲錯誤,代碼如下。 /// /// 測試值為枚舉 /// [TestMethod] ...
閱讀全文
posted @ 2015-01-24 02:22
何鎮汐
閱讀(3759)
推薦(11)
摘要:
信息系統的查詢需求千變萬化,在倉儲中為每個查詢需求創建一個特殊方法,將導致大量乏味而臃腫的接口。 一種更加可行的辦法是,在應用層服務中描述查詢需求,并通過倉儲執行查詢。 為了能夠更好的描述查詢需求,可以將查詢功能從倉儲中抽取出來,專門創建一個查詢對象。 查詢最復雜的部分是條件過濾,這也是查...
閱讀全文
posted @ 2015-01-20 22:24
何鎮汐
閱讀(3386)
推薦(8)
摘要:
前面已經做了一些準備工作,本篇將介紹查詢條件的封裝,它是規約模式的一個應用。 規約使用一個對象來封裝謂詞,我之前已經介紹過它在驗證方面的應用,本篇是規約模式在查詢方面的應用。 規約的強大之處在于,能夠將一堆雜亂無章的條件判斷或查詢條件封裝起來,以一個清晰的概念來表達,并使得這些謂詞具備了可復...
閱讀全文
posted @ 2015-01-20 01:26
何鎮汐
閱讀(4217)
推薦(12)
摘要:
本篇介紹的表達式生成器,用于動態創建表達式。 在Util項目Lambdas目錄中,添加ExpressionBuilder,代碼如下。using System;using System.Linq.Expressions;namespace Util.Lambdas { /// //...
閱讀全文
posted @ 2015-01-06 19:29
何鎮汐
閱讀(2197)
推薦(7)
摘要:
當你使用可空的值類型時,你會發現取值很不方便,比如Guid? obj,你要從obj中獲取值,可以使用Value屬性obj. Value,但obj可能為null,這時候就會拋出一個異常。 可空值類型提供了一個HasValue屬性,它可以識別出obj是不是一個null值,每當你獲取可空值都需要加上...
閱讀全文
posted @ 2015-01-06 19:02
何鎮汐
閱讀(1894)
推薦(5)