河南工程建设 协会网站,做网站开发 用什么软件,网页设计代码大全html制作表单,西安网站建设gjSangmado#xff08;发音 /sɔŋmɑːdu:/ ‘桑麻渡’#xff09;涵盖了支撑 .NET/C# 项目开发的最基础的公共类库#xff0c;为团队在不断的系统开发和演进过程中发现和积累的最公共的代码可复用单元。Sangmado 公共类库设计原则#xff1a;独立性#xff1a;不与任何业务… Sangmado发音 /sɔŋmɑːdu:/ ‘桑麻渡’涵盖了支撑 .NET/C# 项目开发的最基础的公共类库为团队在不断的系统开发和演进过程中发现和积累的最公共的代码可复用单元。Sangmado 公共类库设计原则独立性不与任何业务框架或业务应用耦合依赖性最小化外部类库依赖选择最稳定的依赖库版本分离性关注点分离满足 Separation of Concerns兼容性通过 x.y.z 版本号控制兼容性易用性发布 nuget 包可在任意环境使用开源性使用 GitHub 代码管理PR 开发流程Sangmado 公共基础类库功能使用 Inka 子名称意为 Infrastructure为各种项目打造公共基础设施。名空间功能描述 Sangmado.Inka.Caching 关注各种缓存公共类库。StringCache使用 Redis 存取字符串。RedisSetRedisListRedisDictionaryRedisQueueRedisStack 依赖库Newtonsoft.JsonStackExchange.Redis Sangmado.Inka.Configuration 关注各种配置通过接口隔离配置服务。IConfiguration配置抽象接口。AppSetting使用 app.config 配置。 依赖库System.Configuration Sangmado.Inka.Extensions 关注各种 C# 基础类的扩展方法。ThreadExtensionsTimeSpanExtensionsDateTimeExtensionsEnumExtensionsStopwatchExtensions Sangmado.Inka.Logging 日志系统的隔离接口。ILogILogger Sangmado.Inka.Logging.NLogIntegration 选择使用 NLog 作为日志类库。CompositeLogCompositeLogger 依赖库Logrila.LoggingLogrila.Logging.NLogIntegrationNLog Sangmado.Inka.MomBrokers 封装 Message-oriented Middleware 消息中间件。IIncomingMomChannelIOutgoingMomChannel 依赖库RabbitMQ.Client Sangmado.Inka.Security 关注安全加密算法公私钥签名验签等。SHA1withRSASHA256withRSASHA512withRSAMD5withRSATotpSecurityStampBasedTokenProvider Sangmado.Inka.Serialization 关注对象序列化和反序列化数据压缩。BinaryConvertXmlConvertJsonConvertGZipCompression 依赖库Newtonsoft.Json Sangmado.Inka.Serialization.ProtocolBuffers 封装 Google Protocol Buffers 格式序列化。ProtocolBuffersConvert 依赖库protobuf-netSangmado 公共框架类库功能使用 Fida 子名称意为 Framework尝试为服务提供框架基础。 名空间 功能描述 Sangmado.Fida.Http 封装内部 HTTP 服务和调用接口 。IEncodedHttpClientEncodedResponse 依赖库HapperLogrila.Loggingprotobuf-netNewtonsoft.Json Sangmado.Fida.Http.Scaffolding 封装内部 HTTP Service 脚手架Server 支持 SelfHost 。SelfHostHttpServer 依赖库HapperLogrila.LoggingNewtonsoft.Json Sangmado.Fida.MessageExtensions 为消息定义提供扩展方法。MessageEnvelopeExtensions 依赖库protobuf-netNewtonsoft.Json Sangmado.Fida.MessageEncoding 关注消息序列化和反序列化。IMessageEncoderIMessageDecoderXmlMessageEncoderJsonMessageEncoderProtocolBuffersMessageEncoderBinaryMessageEncoder 依赖库Newtonsoft.Jsonprotobuf-net Sangmado.Fida.Messages 传输消息定义消息信封格式。MessageEnvelope 依赖库protobuf-net Sangmado.Fida.Messaging (Legacy, 已被 Redola.Rpc 类库取代) 消息传输服务封装。Actor 依赖库protobuf-netNewtonsoft.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