2018-08-03 00:10:41 +08:00
2018-08-03 00:10:41 +08:00
2018-08-03 00:10:41 +08:00
2017-09-01 16:36:21 +08:00
2018-03-12 19:54:16 +08:00
2017-11-09 22:22:55 +08:00

OS.Common

通用基础实现,当前是以标准库的形式提供,在net46分支下有标准库和Framework 4.6的两个版本实现吧
如果有问题,也可以在公众号(osscoder)中提问:
osscoder

当前类库主要提供以下的内容:

  1. 基础用户系统设备信息实体定义。
  2. 主流加解密方案实现()
  3. 常规实体DTO转化,静态扩展方法(时间,字符串等等处理)
  4. 基础日志,缓存,配置辅助静态类及默认方案实现
  5. 全局结果,分页实体定义

Authrization

用户授权信息模块,可以在上下文中使用MemberShiper,其中主要包含两个属性:

  1. AppAuthorize
    对应的是应用授权信息主要是应用来源,客户端的类型等
  2. Identity
    对应的是当前的用户信息,用户名称 等
    MemberShiper 中提供了GetToken方法,方便加密用户Id,同时有一个对应的GetTokenDetail来从token中解密用户id信息
    使用的是加密方式为Aes加密

ComModels

系统默认实体信息如应用配置实体,分页实体,结果实体,方便全局使用
其中结果实体ResultMo包含两个属性比较重要:
ret-状态码,在ResultTypes的枚举中已经把常见的状态信息做了简单定义
其中0表示为Success,同时定义了个IsSuccess()的方法扩展,此值为快速判断返回是否正确
msg-对应状态码的消息

Encrypt

系统加密基础库,主要包含:
md5(Md5),aes(AesRijndael),sha1(Sha1),hmac(HMACSHA)-加盐sha加密方式这几种加密算法

Extention

系统扩展方法,主要包含:
字符串转化扩展,如: "0".ToInt32(),"xxx".Base64UrlEncode()等
时间转化扩展,如:DateTime.Now.ToUtcSeconds() 等
Task扩展方法,如: Task.WaitResult() 等
UrlCode扩展方法,如 "name=n&code=1".UrlEncode();
枚举扩展方法,如: typeof(Enum).ToEnumDirs();
xml序列化扩展方法, 如: "test".DeserializeXml();

Plugs

系统扩展模块和对应的默认实现,同时在Plugs目录下定义了ModuleNames类,含有系统常见模块
如果你有高级定制需求,比如在系统不同模块使用插件的不同实现,可以在程序入口处定义指定模块名称对应的插件实现,而无需修改业务代码

这里主要包含以下三种插件

一.CachePlug

缓存模块,内部定义了ICachePlug接口,和一个 DefaultCachePlug默认缓存实现
使用时,可以直接使用 CacheUtil 静态类下的方法,比如Set方法

CacheUtil.Set("key","va",TimeSpan.FromHours(1),"moduleName")

其中 modulename 是可选参数
如果传入,则在程序入口处可以给 OsConfig.CacheProvider(Func<string, ICachePlug>) 委托赋值
我们就可以根据使用频率,数据重要性,以及和其它系统的依赖情况来定义特定模块下的不同缓存实现
比如设置不同的模块分别Redis,Memcache等,又或者我们可以设置不同的模块使用Redis的不同实例。

当然,如果这个委托没有定义,或者委托返回空,就会使用默认缓存实现,如果我们希望全站换到相同的缓存实现,则直接返回对应实现即可。

二.DirConfigPlug

配置模块, 和缓存的实现形式相同,定义了一个 IDirConfigPlug 接口,和一个 DefaultDirConfigPlug 实现
使用时,直接使用 DirConfigUtil 静态类。
默认实现是利用Xml序列化的方式,保存到本地文件中,依然可以定义指定模块名称的特定数据源的配置实例。
比如项目本身的配置可以设置数据库实现,依赖其他项目的,可以通过接口实现。

三.LogPlug

日志模块,一样,内部定义了一个 ILogPlug 接口,和一个 DefaultLogPlug 默认实现
使用时,直接使用 LogUtil 静态类。
默认实现是通过保存到本地文件的形式实现,每个小时生成一个文件。
依然可以定义指定模块名称的特定数据源的配置实例,比如有些发送邮件,有些发送短信通知等。

S
Description
oss基础类库,主要涉及基础实体,加密算法,xml序列化,以及其他扩展方法等
Readme Apache-2.0 3.2 MiB
Languages
C# 100%