Sangmado 公共基础类库
Sangmado(發音 /s??mɑ?du:/ ‘桑麻渡’)涵蓋了支撐 .NET/C# 項目開發的最基礎的公共類庫,為團隊在不斷的系統開發和演進過程中發現和積累的最公共的代碼可復用單元。
Sangmado 公共類庫設計原則:
獨立性:不與任何業務框架或業務應用耦合;
依賴性:最小化外部類庫依賴,選擇最穩定的依賴庫版本;
分離性:關注點分離,滿足 Separation of Concerns;
兼容性:通過 x.y.z 版本號控制兼容性;
易用性:發布 nuget 包,可在任意環境使用;
開源性:使用?GitHub?代碼管理,PR 開發流程;
Sangmado 公共基礎類庫功能
使用?Inka?子名稱,意為?Infrastructure,為各種項目打造公共基礎設施。
| 名空間 | 功能描述? |
?Sangmado.Inka.Caching | ?關注各種緩存公共類庫。
?依賴庫
|
?Sangmado.Inka.Configuration | ?關注各種配置,通過接口隔離配置服務。
?依賴庫
|
?Sangmado.Inka.Extensions | ?關注各種 C# 基礎類的擴展方法。
|
?Sangmado.Inka.Logging | ?日志系統的隔離接口。
|
?Sangmado.Inka.Logging.NLogIntegration | ?選擇使用 NLog 作為日志類庫。
?依賴庫
|
?Sangmado.Inka.MomBrokers | ?封裝?Message-oriented Middleware 消息中間件。
?依賴庫
|
?Sangmado.Inka.Security | ?關注安全加密算法,公私鑰簽名驗簽等。
|
?Sangmado.Inka.Serialization | ?關注對象序列化和反序列化,數據壓縮。
?依賴庫
|
?Sangmado.Inka.Serialization.ProtocolBuffers | ?封裝?Google Protocol Buffers 格式序列化。
?依賴庫
|
Sangmado 公共框架類庫功能
使用?Fida?子名稱,意為?Framework,嘗試為服務提供框架基礎。
| ? 名空間 | ?功能描述? |
?Sangmado.Fida.Http | ?封裝內部 HTTP 服務和調用接口?。
?依賴庫
|
?Sangmado.Fida.Http.Scaffolding | ?封裝內部 HTTP Service 腳手架,Server 支持 SelfHost?。
?依賴庫
|
?Sangmado.Fida.MessageExtensions? | ?為消息定義提供擴展方法。
?依賴庫
|
?Sangmado.Fida.MessageEncoding? | ?關注消息序列化和反序列化。
?依賴庫
|
?Sangmado.Fida.Messages | ?傳輸消息定義,消息信封格式。
?依賴庫
|
?Sangmado.Fida.Messaging ?(Legacy, 已被?Redola.Rpc?類庫取代) | ?消息傳輸服務封裝。
?依賴庫
|
內部服務架構設計指導原則
領域間定義明確的邊界,邊界僅提供 HTTP 或 MOM 交互,不能使用 RPC 等其他交互方式,為語言異構提供基礎,例如使用 Sangmado 中的 MomBrokers 封裝;
領域邊界對外提供 Contract 服務契約,其他領域使用該 Contract 理解該領域的模型,Contract 定義語言無關,例如使用 Sangmado 中的 Json 或 Protobuf 封裝和解析;
領域邊界?Contract 可發布至內部 nuget 服務器,供其他領域服務引用;
領域內服務可選擇任意交互機制,Socket、RPC、HTTP、MOM 無限制;
領域內 Common 類庫,如果為可復用代碼,可提升到 Sangmado 公共類庫中;
通用功能性類庫
Cowboy.Sockets?基于 TCP Socket 的通用類庫;
Cowboy.WebSockets?提供 WebSocket 支持;
Redola.Rpc?基于 TCP Socket 封裝的 RPC 通信框架;
Happer.Http?支持 Self Host 的 HTTP 服務器;
Issuna?通用業務 ID 發號器;
Logrila?抽象 Log 日志接口,與具體的 Log 框架分離;
原文地址:https://www.cnblogs.com/gaochundong/p/sangmado_common_libs.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的Sangmado 公共基础类库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11月7日邀您参加成都微软MVP圆桌之夜
- 下一篇: 微软正式发布Azure IoT Cent