首页 技术 正文
技术 2022年11月21日
0 收藏 777 点赞 2,609 浏览 2026 个字

Sangmado 涵盖了支撑 .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

 依赖库

Sangmado.Inka.MessageEncoding

关注消息序列化和反序列化。

  • IMessageEncoder
  • IMessageDecoder
  • XmlMessageEncoder
  • JsonMessageEncoder
  • ProtocolBuffersMessageEncoder
  • BinaryMessageEncoder

依赖库

  • Newtonsoft.Json
  • protobuf-net

 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
  • SelfHostHttpServer

依赖库

 Sangmado.Fida.MessageExtensions 

为消息定义提供扩展方法。

  • MessageEnvelopeExtensions 

依赖库

  • protobuf-net
  • Newtonsoft.Json

 Sangmado.Fida.Messages

传输消息定义。

  • MessageEnvelope

依赖库

  • protobuf-net

 Sangmado.Fida.Messaging

 (Legacy, 已被 Redola.Rpc 类库取代)

消息传输封装。

  • Actor

依赖库

  • protobuf-net
  • Newtonsoft.Json

版权声明:本篇文章《Sangmado 公共基础类库》由作者 Dennis Gao 发表自博客园个人技术博客,未经作者本人同意禁止以任何的形式转载,任何自动的或人为的爬虫转载行为均为耍流氓。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,918
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,444
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,255
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,069
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,701
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,741