Skip to content

Releases: CatLib/Core

CatLib.Core 2.0

05 Dec 05:11
Compare
Choose a tag to compare

Documentioncatlib.io
QQ Group150371044

Added

  • Inject allowed to be set to optional.(#253 )
  • Arr.Test can get matched value of the first match(#280 )

Changed

  • Comments translated from Chinese into English(#133 )
  • Defined Container.Build as a virtual function(#210 )
  • Optimizes the constructor of MethodContainer(#218 )
  • The default project uses the .net standard 2.0(#225 )
  • Rename Util helper class to Helper class Change access level to internal.(#230 )
  • Application.IsRegisted changed(rename) to IsRegistered(#226 )
  • Use VariantAttribute to mark variable types instead of IVariant(#232 )
  • Guard Will be expandable with Guard.That(#233 )
  • Fixed the problem of container exception stack loss(#234 )
  • Adjusted the internal file structure to make it clearer(#236 ).
  • Add code analyzers (#206 )
  • Refactoring event system (#177 )
  • Refactoring RingBuffer make it inherit from Stream.(#238 )
  • Namespace structure adjustment(optimization).(#241 )
  • App can be extended by That (Handler rename to that) and removed HasHandler API (#242 )
  • Unnecessary inheritance: WrappedStream(#247 )
  • Clean up useless comment(#249 ).
  • Guard.Require can set error messages and internal exceptions(#250).
  • Exception class implementation support: SerializationInfo build(#252 ).
  • Refactoring unit test, import moq.(#255 )
  • CodeStandardException replaces to LogicException(#257 )
  • Exception move to namespace CatLib.Exception(#258 )
  • Facade<>.Instance changed to Facade<>.That(#259 )
  • Application.StartProcess migrate to StartProcess(#260 )
  • Arr optimization, lifting some unnecessary restrictions (#263)
  • Str optimization, lifting some unnecessary restrictions (#264)
  • Refactoring SortSet(#265 )
  • Removed global params in application constructor. use Application.New() instead.(#267 )
  • Containers are no longer thread-safe by default(#270 )

Fixed

  • Fixed a bug that caused Arr.Fill to not work properly under special circumstances. (#255 )

Removed

  • Removed ExcludeFromCodeCoverageAttribute (#229 )
  • Removed unnecessary interface design ISortSet(#211 ).
  • Removed Version classes and Application.Compare method.(#212).
  • Removed Template supported(#213 ).
  • Removed FilterChain supported(#214 ).
  • Removed Enum supported(#215 ).
  • Removed IAwait interface(#217 ).
  • Removed Container.Flash api(#219 ).
  • Removed Arr.Flash method(#220 ).
  • Removed Dict helper class(#221 ).
  • Removed ThreadStatic helper class(#223 ).
  • Removed QuickList supported(#224 ).
  • Removed Storage supported(#228 )
  • Removed SystemTime class(#235 ).
  • Removed ICoroutineInit feature from core library(#243 ).
  • Removed the priority attribute, depending on the loading order(#244 ).
  • Removed Util.Encoding (#245 ).
  • Removed Str.Encoding(#246 )
  • Removed IServiceProviderType feature in core library(#246 ).
  • Removed unnecessary extension functions(#247 ).
  • Removed PipelineStream stream.(#256 )
  • Removed all Obsolete method and clean code.(#261 )
  • Removed App.Version.(#266 )

CatLib Core 1.4.0 Beta

20 Mar 01:50
4bbf47f
Compare
Choose a tag to compare

中文文档catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.4.0

Added

  • Arr增加Test函数,支持对数组进行自定义检查(#178 )
  • Arr增加Set函数,允许替换匹配值或者在尾部增加替换值(#190 )
  • Str增加Is重载,允许对于数组类型的模式进行匹配(#179 )
  • Str增加JoinList函数,允许顺序组合给定的字符串数组(#195 )
  • Str增加Levenshtein函数,允许计算两个字符串之间的近似度(#194 )
  • Str增加Space常量代表一个含有空格的空字符串(#197 )
  • Application.Register增加强制注册支持,允许在已注册服务提供者的基础上强制注册(#184 )
  • 增加CHANGELOG(#185 )

Changed

  • 代码标准规范调整:只有在引导流程完成后才能进行容器构建(#180 )
  • Application代码优化(#181 )
  • Arr中的Filter函数,允许传入一个期望值来决定结果集(#196 )
  • IContainer.Flash 标记将会在2.0版本中被移除(#193 )
  • Str中的Pad函数增加拓展并且标记旧的格式为已过时(#198 )
  • 单元测试项目升级到4.0 framework(#191 )

CatLib Core 1.3.2 Beta

02 Feb 02:53
Compare
Choose a tag to compare

中文文档catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.3.2
  • 修复无法对Nullable对象注入的问题(#175 )
  • StreamExtension中的AppendTo应该使用参数为空异常而不是空引用异常(#182 )

CatLib Core 1.3.1 Beta

14 Jan 08:52
Compare
Choose a tag to compare

中文文档catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.3.1
  • RegisterCoreAlias 中应该使用IApplication作为服务名(#167 )
  • Alias的服务名不能以别名的形式来确定(#170 )
  • 修复以源码形式使用的情况下在终止框架时会引发异常的bug(#171 )
  • 增加package.json允许通过包管理系统分发(#174 )

CatLib Core 1.3.0 Beta

04 Jan 09:45
95ebf46
Compare
Choose a tag to compare

中文文档catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.3.0

框架相关

  • 修复Terminate()框架时会释放不属于自己的全局句柄(#131 )
  • Arr.Map函数的返回值会根据闭包的返回值来决定(#138 )
  • Arr.Map允许传入null元素将会转意为:new object[0] (#140 )
  • 修复OnNewApplication给定新的事件时导致关注该事件的全部事件都生效的bug(#144 )
  • App.cs缺失的接口补全(#152 )
  • Application的部分函数调整为protected(#153 )

容器相关

  • WrapperTypeBuilder 中给定的服务名无需在进行格式化处理,服务名在传入之前就应该被处理(#139 )
  • 调整GetBindFillable由private变更为protected(#141 )
  • 调整容器Extend函数,允许进行全局监控(#142 )
  • IBindable接口增加Container属性允许获取绑定数据的容器信息(#145 )
  • 为IGivenData的泛型类增加IBindable的约束(#146 )
  • 修复容器未能解决时,错误指向的类型关系不正确的问题(#150 )
  • 完善Extend扩展函数(#154 )
  • Bind和Singleton增加写法语法糖(#156 )
  • BindIf和SingletonIf增加写法语法糖(#158 )
  • Watch接口调整(#163 )

即将被移除

  • 自定义枚举类,被标记为已过时,这个类将会在2.0版本中被移除(#134 )

内部调整

  • 代码风格优化(#135 )
  • 将类名调整为风格指南建议的类名 (#148 )
  • 修正App.Factory没有扩展函数提供的Factory的问题(#159 )
  • 统一ContainerExtend的模版名转换函数(#137 )
  • 引用增加System.Core(#155 )
  • 对一些可能为空的逻辑代码进行空判断检查(#149 )
  • 泛型命名优化(#151 )
  • Facade性能优化(#162 )

CatLib Core 1.3.0 Aplha.3

20 Dec 09:02
6e73c28
Compare
Choose a tag to compare
Pre-release

中文文档catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.3.0-alpha.3

框架相关

  • 修复初始化顺序不正确的异常,不同运行时环境不一致(#102 )
  • copyright 名称变更为 CatLib(#106 )
  • 为Type增加ToService扩展函数(#105 )
  • 注释中的文档地址更新为 https(#108 )
  • DebugLevels允许在Register中被使用(#109
  • 提示内容优化(#117 )
  • App门面增加IsResolved(string service)的支持(#118 )
  • 移除实验的属性App.AutoInstance; 如果全局实例没有被构建则引发一个异常(#129
  • 如果在构建CatLib实例时,允许传入一个bool值决定是否应用到全局(#128

服务容器

  • 将IContainer接口缩减,缩减的接口将会被移动到扩展方法(#111 )
  • 语意行为变更:Bind和Singleton相关(#112 )
  • IContainer.Release接口参数由string变更为object,允许通过对象实例来进行释放(#115 )
  • 优化UnresolvableException的异常提示消息 (#120
  • 允许在Needs时提供需求的变量名,以支持变量名需求,改善变量名上下文关系的流程 (#122 )
  • 服务容器的构建策略可以通过虚函数覆写(#124
  • 移除了Inject的别名支持 (#126

其他

  • 清理了无用代码(#119 )

CatLib Core 1.3.0 Aplha.2

05 Dec 02:51
c4e6974
Compare
Choose a tag to compare
Pre-release

中文文档catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.3.0-alpha.2
  • Type2Service 将不允许为虚方法。(#96 )
  • 服务提供者的传入顺序为初始化顺序(#97 )
  • Given 允许返回一个闭包 (#98 )

CatLib Core 1.3.0 Aplha.1

03 Dec 07:17
6c75a79
Compare
Choose a tag to compare
Pre-release

中文文档catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.3.0-alpha.1

框架

  • 升级为 c# 7.0 语法(#64 )
  • 增加LogicException逻辑错误异常(#80 )
  • 增加CodeStandardException代码规范异常(#62 )
  • ServiceProvider.Register不再是abstract
  • 增加了ICoroutineInit 协同初始化接口(默认的迭代器为同步迭代器和Init没有本质区别,在其他环境下可能受到环境影响)
  • ApplicationEvents.OnIniting被标记为已过时,使用:ApplicationEvents.OnProviderInit替换
  • 新增了ApplicationEvents.OnProviderInit 服务提供者初始化之前
  • 新增了ApplicationEvents.OnProviderInited 服务提供者初始化完成
  • Application Version现在是静态化的了(#90 )

代码规范性检查

  • 如果尝试为同一个单例化的实例注册不同的服务名,则会异常发一个异常(#62)
  • 如果尝试在注册流程中Make服务,那么会引发一个异常。 (#59)
  • 通过容器Watch一个对象时,只有当对象时可以被构建时才允许被watch。因为我们认为观察的只能是一个已经被确定的服务,而不是一个未知服务。 (#59)
  • 如果尝试在注册流程中Invoke函数,那么会引发一个异常。(#62)

容器服务

  • 服务容器增加了解决事件和释放事件的条件筛选(#84 )
  • 服务容器增加OnAfterResolving的支持。(#83 )
  • 使用this[] set对象时会进行隐式的对象绑定(bind)(#82 )
  • 增加Extend函数,用于处理服务的覆盖及拓展关系,OnResolving不再允许覆盖对象。(#79)
  • 服务容器Watch接口从容器实现转移至扩展函数(#81)
  • 增加服务特殊字符@,$:识别,如果包含则不允许注册。(#61)
  • 增加变量标签$@一样,具备相同的变量映射作用。(#61)
  • 容器在flush对象时将会按照构建顺序的相反顺序释放服务(之前是需要通过辅助组件来完成)(#55)
  • 服务容器增加App.Alias<TService, TAlias>()的拓展方法支持(#57)

支持库

  • 增加 SegmentStream 分片流(#74)
  • 增加 WrapperStream 包装流(#69)
  • 增加 CombineStream 组合流(#70)
  • Arr.Filter 支持迭代器(#67)
  • Arr.Map 支持迭代器(#66)
  • 增加了SortSet.ReverseIterator(bool forward)指定反转方向的接口(#56)
  • StreamExtension.ToText() 加入对不能读取流的判断(#75)
  • 管理器模版支持OnAfterResolving(#92 )

CatLib Core 1.2.12 Beta

02 Nov 08:30
dc79e8a
Compare
Choose a tag to compare

中文文档catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.2.12
  • 增加模版方法的门面静态类
  • 修复Dict.Modify的bug,这个bug导致不必要的字典实例 #52
  • DebugLevels 枚举命名调整
    -- Prod标记为已过时
    -- Dev标记为已过时
    -- 增加 Production
    -- 增加 Development
  • 尝试重复调用引导(Bootstrap)时会引发一个RuntimeException而不是静默忽略。
  • 尝试重复调用初始化(Init)时会引发一个RuntimeException而不是静默忽略。
  • 增加了ApplicationEvents.OnBootstrap在引导开始之前
  • 增加了ApplicationEvents.Bootstrapping在引导进行中
  • 增加了ApplicationEvents.OnInit在初始化开始之前
  • 增加了ApplicationEvents.OnInited在初始化完成之后
  • 增加了ApplicationEvents.OnRegisterProvider注册服务提供者事件
  • 允许ApplicationEvents.Bootstrapping返回一个不为null的值(一般是false)来终止当前引导激活。
  • 允许ApplicationEvents.OnRegisterProvider返回一个不为null的值(一般是false)来终止服务提供者注册。

CatLib Core 1.2.11 Beta

12 Oct 10:43
922a6b6
Compare
Choose a tag to compare

中文文档catlib.io
技术支持QQ群150371044

通过Nuget安装CatLib Core

Install-Package CatLib.Core -Version 1.2.11
  • PipelineStream支持SetLength
  • 增加ToStream();