日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Sangmado 公共基础类库

發布時間:2023/12/4 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sangmado 公共基础类库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Sangmado(發音 /s??mɑ?du:/ ‘桑麻渡’)涵蓋了支撐 .NET/C# 項目開發的最基礎的公共類庫,為團隊在不斷的系統開發和演進過程中發現和積累的最公共的代碼可復用單元。

Sangmado 公共類庫設計原則:

  • 獨立性:不與任何業務框架或業務應用耦合;

  • 依賴性:最小化外部類庫依賴,選擇最穩定的依賴庫版本;

  • 分離性:關注點分離,滿足 Separation of Concerns;

  • 兼容性:通過 x.y.z 版本號控制兼容性;

  • 易用性:發布 nuget 包,可在任意環境使用;

  • 開源性:使用?GitHub?代碼管理,PR 開發流程;

Sangmado 公共基礎類庫功能

使用?Inka?子名稱,意為?Infrastructure,為各種項目打造公共基礎設施。

名空間

功能描述?

?Sangmado.Inka.Caching

?關注各種緩存公共類庫。

  • StringCache:使用 Redis 存取字符串。

  • RedisSet

  • RedisList

  • RedisDictionary

  • RedisQueue

  • RedisStack

?依賴庫

  • Newtonsoft.Json

  • StackExchange.Redis

?Sangmado.Inka.Configuration

?關注各種配置,通過接口隔離配置服務。

  • IConfiguration:配置抽象接口。

  • AppSetting:使用 app.config 配置。

?依賴庫

  • System.Configuration

?Sangmado.Inka.Extensions

?關注各種 C# 基礎類的擴展方法。

  • ThreadExtensions

  • TimeSpanExtensions

  • DateTimeExtensions

  • EnumExtensions

  • StopwatchExtensions

?Sangmado.Inka.Logging

?日志系統的隔離接口。

  • ILog

  • ILogger

?Sangmado.Inka.Logging.NLogIntegration

?選擇使用 NLog 作為日志類庫。

  • CompositeLog

  • CompositeLogger

?依賴庫

  • Logrila.Logging

  • Logrila.Logging.NLogIntegration

  • NLog

?Sangmado.Inka.MomBrokers

?封裝?Message-oriented Middleware 消息中間件。

  • IIncomingMomChannel

  • IOutgoingMomChannel

?依賴庫

  • RabbitMQ.Client

?Sangmado.Inka.Security

?關注安全加密算法,公私鑰簽名驗簽等。

  • SHA1withRSA

  • SHA256withRSA

  • SHA512withRSA

  • MD5withRSA

  • TotpSecurityStampBasedTokenProvider?

?Sangmado.Inka.Serialization

?關注對象序列化和反序列化,數據壓縮。

  • BinaryConvert

  • XmlConvert

  • JsonConvert

  • GZipCompression

?依賴庫

  • Newtonsoft.Json

?Sangmado.Inka.Serialization.ProtocolBuffers

?封裝?Google Protocol Buffers 格式序列化。

  • ProtocolBuffersConvert

?依賴庫

  • protobuf-net

Sangmado 公共框架類庫功能

使用?Fida?子名稱,意為?Framework,嘗試為服務提供框架基礎。

? 名空間

?功能描述?

?Sangmado.Fida.Http

?封裝內部 HTTP 服務和調用接口?

  • IEncodedHttpClient

  • EncodedResponse

?依賴庫

  • Happer

  • Logrila.Logging

  • protobuf-net

  • Newtonsoft.Json

?Sangmado.Fida.Http.Scaffolding

?封裝內部 HTTP Service 腳手架,Server 支持 SelfHost?

  • SelfHostHttpServer

?依賴庫

  • Happer

  • Logrila.Logging

  • Newtonsoft.Json

?Sangmado.Fida.MessageExtensions?

?為消息定義提供擴展方法。

  • MessageEnvelopeExtensions?

?依賴庫

  • protobuf-net

  • Newtonsoft.Json

?Sangmado.Fida.MessageEncoding?

?關注消息序列化和反序列化。

  • IMessageEncoder

  • IMessageDecoder

  • XmlMessageEncoder

  • JsonMessageEncoder

  • ProtocolBuffersMessageEncoder

  • BinaryMessageEncoder

?依賴庫

  • Newtonsoft.Json

  • protobuf-net

?Sangmado.Fida.Messages

?傳輸消息定義,消息信封格式。

  • MessageEnvelope

?依賴庫

  • protobuf-net

?Sangmado.Fida.Messaging

?(Legacy, 已被?Redola.Rpc?類庫取代)

?消息傳輸服務封裝。

  • Actor

?依賴庫

  • protobuf-net

  • Newtonsoft.Json

內部服務架構設計指導原則

  • 領域間定義明確的邊界,邊界僅提供 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 公共基础类库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。